mirror of
https://github.com/LukeHagar/plexswift.git
synced 2025-12-06 12:47:44 +00:00
ci: regenerated with OpenAPI Doc 0.0.3, Speakeasy CLI 1.156.0
This commit is contained in:
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# This allows generated code to be indexed correctly
|
||||
*.swift linguist-generated=false
|
||||
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
.DS_Store
|
||||
/.build
|
||||
/Packages
|
||||
/*.xcodeproj
|
||||
xcuserdata/
|
||||
DerivedData/
|
||||
.swiftpm/config/registries.json
|
||||
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
|
||||
.netrc
|
||||
499
.speakeasy/gen.lock
Executable file
499
.speakeasy/gen.lock
Executable file
@@ -0,0 +1,499 @@
|
||||
lockVersion: 2.0.0
|
||||
id: 728b17ee-6e64-4947-9695-94354690294f
|
||||
management:
|
||||
docChecksum: 95d4ac4070b7f9db42126fc81b258e02
|
||||
docVersion: 0.0.3
|
||||
speakeasyVersion: internal
|
||||
generationVersion: 2.239.4
|
||||
releaseVersion: 0.0.1
|
||||
configChecksum: 0f72c87f28cb51159fc4b1d1446e9f3b
|
||||
repoURL: https://github.com/LukeHagar/plexswift.git
|
||||
repoSubDirectory: .
|
||||
published: true
|
||||
features:
|
||||
swift:
|
||||
core: 3.2.0
|
||||
globalSecurity: 2.81.2
|
||||
globalServerURLs: 2.82.1
|
||||
nameOverrides: 2.81.1
|
||||
unions: 2.81.3
|
||||
generatedFiles:
|
||||
- Sources/Plexswift/internal/api/_ServerAPI.swift
|
||||
- Sources/Plexswift/internal/api/_MediaAPI.swift
|
||||
- Sources/Plexswift/internal/api/_ActivitiesAPI.swift
|
||||
- Sources/Plexswift/internal/api/_ButlerAPI.swift
|
||||
- Sources/Plexswift/internal/api/_HubsAPI.swift
|
||||
- Sources/Plexswift/internal/api/_SearchAPI.swift
|
||||
- Sources/Plexswift/internal/api/_LibraryAPI.swift
|
||||
- Sources/Plexswift/internal/api/_LogAPI.swift
|
||||
- Sources/Plexswift/internal/api/_PlaylistsAPI.swift
|
||||
- Sources/Plexswift/internal/api/_SecurityAPI.swift
|
||||
- Sources/Plexswift/internal/api/_SessionsAPI.swift
|
||||
- Sources/Plexswift/internal/api/_UpdaterAPI.swift
|
||||
- Sources/Plexswift/internal/api/_VideoAPI.swift
|
||||
- Sources/Plexswift/configuration/GlobalServer.swift
|
||||
- Sources/Plexswift/Client.swift
|
||||
- Package.swift
|
||||
- Sources/plexswift/AnyValue.swift
|
||||
- Sources/plexswift/internal/api/Client+PlexswiftAPI.swift
|
||||
- Sources/plexswift/internal/client/Response.swift
|
||||
- Sources/plexswift/internal/client/Servers.swift
|
||||
- Sources/plexswift/internal/client/URLRequestBuilder.swift
|
||||
- Sources/plexswift/internal/client/URLRequestConfiguration.swift
|
||||
- Sources/plexswift/internal/extensions/HTTPURLResponse+ContentType.swift
|
||||
- Sources/plexswift/internal/extensions/String+ContentType.swift
|
||||
- Sources/plexswift/internal/extensions/String+ParameterSubstitution.swift
|
||||
- Sources/plexswift/internal/serialization/Form.swift
|
||||
- Sources/plexswift/internal/serialization/JSON.swift
|
||||
- Sources/plexswift/internal/serialization/Maps.swift
|
||||
- Sources/plexswift/internal/serialization/Parameters.swift
|
||||
- Sources/plexswift/internal/serialization/PropertyWrappers.swift
|
||||
- Sources/plexswift/internal/serialization/QueryParameters.swift
|
||||
- Sources/plexswift/internal/serialization/SecurityParameters.swift
|
||||
- Sources/plexswift/internal/serialization/Serializable.swift
|
||||
- Sources/plexswift/PlexswiftError.swift
|
||||
- Sources/plexswift/PlexswiftAPI.swift
|
||||
- Sources/Plexswift/models/ModelScopes.swift
|
||||
- Sources/Plexswift/models/operations/Activity.swift
|
||||
- Sources/Plexswift/models/operations/AddPlaylistContentsErrors.swift
|
||||
- Sources/Plexswift/models/operations/AddPlaylistContentsMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/AddPlaylistContentsMetadata.swift
|
||||
- Sources/Plexswift/models/operations/AddPlaylistContentsPlaylistsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/AddPlaylistContentsRequest.swift
|
||||
- Sources/Plexswift/internal/models/AddPlaylistContentsRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/AddPlaylistContentsResponse.swift
|
||||
- Sources/Plexswift/models/operations/AddPlaylistContentsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/ApplyUpdatesErrors.swift
|
||||
- Sources/Plexswift/models/operations/ApplyUpdatesRequest.swift
|
||||
- Sources/Plexswift/internal/models/ApplyUpdatesRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/ApplyUpdatesResponse.swift
|
||||
- Sources/Plexswift/models/operations/ApplyUpdatesResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/ButlerTask.swift
|
||||
- Sources/Plexswift/models/operations/ButlerTasks.swift
|
||||
- Sources/Plexswift/models/operations/CancelServerActivitiesErrors.swift
|
||||
- Sources/Plexswift/models/operations/CancelServerActivitiesRequest.swift
|
||||
- Sources/Plexswift/internal/models/CancelServerActivitiesRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/CancelServerActivitiesResponse.swift
|
||||
- Sources/Plexswift/models/operations/CancelServerActivitiesResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/CheckForUpdatesErrors.swift
|
||||
- Sources/Plexswift/models/operations/CheckForUpdatesRequest.swift
|
||||
- Sources/Plexswift/internal/models/CheckForUpdatesRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/CheckForUpdatesResponse.swift
|
||||
- Sources/Plexswift/models/operations/CheckForUpdatesResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/ClearPlaylistContentsErrors.swift
|
||||
- Sources/Plexswift/models/operations/ClearPlaylistContentsRequest.swift
|
||||
- Sources/Plexswift/internal/models/ClearPlaylistContentsRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/ClearPlaylistContentsResponse.swift
|
||||
- Sources/Plexswift/models/operations/ClearPlaylistContentsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/Context.swift
|
||||
- Sources/Plexswift/models/operations/Country.swift
|
||||
- Sources/Plexswift/models/operations/CreatePlaylistErrors.swift
|
||||
- Sources/Plexswift/models/operations/CreatePlaylistMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/CreatePlaylistMetadata.swift
|
||||
- Sources/Plexswift/models/operations/CreatePlaylistPlaylistsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/CreatePlaylistRequest.swift
|
||||
- Sources/Plexswift/internal/models/CreatePlaylistRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/CreatePlaylistResponse.swift
|
||||
- Sources/Plexswift/models/operations/CreatePlaylistResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/DeleteLibraryErrors.swift
|
||||
- Sources/Plexswift/models/operations/DeleteLibraryRequest.swift
|
||||
- Sources/Plexswift/internal/models/DeleteLibraryRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/DeleteLibraryResponse.swift
|
||||
- Sources/Plexswift/models/operations/DeleteLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/DeletePlaylistErrors.swift
|
||||
- Sources/Plexswift/models/operations/DeletePlaylistRequest.swift
|
||||
- Sources/Plexswift/internal/models/DeletePlaylistRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/DeletePlaylistResponse.swift
|
||||
- Sources/Plexswift/models/operations/DeletePlaylistResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/Device.swift
|
||||
- Sources/Plexswift/models/operations/Director.swift
|
||||
- Sources/Plexswift/models/operations/Directory.swift
|
||||
- Sources/Plexswift/models/operations/Download.swift
|
||||
- Sources/Plexswift/internal/models/Download+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/EnablePaperTrailErrors.swift
|
||||
- Sources/Plexswift/models/operations/EnablePaperTrailResponse.swift
|
||||
- Sources/Plexswift/models/operations/EnablePaperTrailResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/Errors.swift
|
||||
- Sources/Plexswift/models/operations/Field.swift
|
||||
- Sources/Plexswift/models/operations/FieldType.swift
|
||||
- Sources/Plexswift/models/operations/Filter.swift
|
||||
- Sources/Plexswift/models/operations/Force.swift
|
||||
- Sources/Plexswift/internal/models/Force+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/Genre.swift
|
||||
- Sources/Plexswift/models/operations/GetAvailableClientsErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetAvailableClientsMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetAvailableClientsResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetAvailableClientsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetAvailableClientsServerResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetButlerTasksButlerResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetButlerTasksErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetButlerTasksResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetButlerTasksResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetDevicesErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetDevicesMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetDevicesResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetDevicesResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetDevicesServerResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetFileHashErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetFileHashRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetFileHashRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetFileHashResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetFileHashResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetGlobalHubsErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetGlobalHubsHubsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetGlobalHubsMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetGlobalHubsMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetGlobalHubsRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetGlobalHubsRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetGlobalHubsResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetGlobalHubsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetLibrariesDirectory.swift
|
||||
- Sources/Plexswift/models/operations/GetLibrariesErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetLibrariesLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetLibrariesMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetLibrariesResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetLibrariesResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryDirectory.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsCountry.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsDirector.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsGenre.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsHub.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsHubsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsMedia.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsPart.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetLibraryHubsRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryHubsResponse.swift
|
||||
- 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
|
||||
- Sources/Plexswift/internal/models/GetLibraryRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetLibraryType.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataChildrenDirectory.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataChildrenErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataChildrenLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataChildrenMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataChildrenMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataChildrenRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetMetadataChildrenRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataChildrenResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataChildrenResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataCountry.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataDirector.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataGenre.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataMedia.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataPart.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetMetadataRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataRole.swift
|
||||
- Sources/Plexswift/models/operations/GetMetadataWriter.swift
|
||||
- Sources/Plexswift/models/operations/GetMyPlexAccountErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetMyPlexAccountResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetMyPlexAccountResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetMyPlexAccountServerResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetOnDeckErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetOnDeckGuids.swift
|
||||
- Sources/Plexswift/models/operations/GetOnDeckLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetOnDeckMedia.swift
|
||||
- Sources/Plexswift/models/operations/GetOnDeckMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetOnDeckMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetOnDeckPart.swift
|
||||
- Sources/Plexswift/models/operations/GetOnDeckResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetOnDeckResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetOnDeckStream.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsCountry.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsDirector.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsGenre.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsMedia.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsPart.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsPlaylistsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetPlaylistContentsRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsRole.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistContentsWriter.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistPlaylistsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetPlaylistRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistsErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistsMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistsMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistsPlaylistsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistsRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetPlaylistsRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistsResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetPlaylistsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetRecentlyAddedErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetRecentlyAddedLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetRecentlyAddedMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetRecentlyAddedResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetRecentlyAddedResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetResizedPhotoErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetResizedPhotoRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetResizedPhotoRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetResizedPhotoResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetResizedPhotoResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsCountry.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsDirector.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsGenre.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsMedia.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsPart.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetSearchResultsRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsRole.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsSearchResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetSearchResultsWriter.swift
|
||||
- Sources/Plexswift/models/operations/GetServerActivitiesActivitiesResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetServerActivitiesErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetServerActivitiesMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetServerActivitiesResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetServerActivitiesResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetServerCapabilitiesResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetServerCapabilitiesResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetServerCapabilitiesServerResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetServerIdentityErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetServerIdentityMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetServerIdentityResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetServerIdentityResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetServerIdentityServerResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetServerListErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetServerListMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetServerListResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetServerListResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetServerListServer.swift
|
||||
- Sources/Plexswift/models/operations/GetServerListServerResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetServerPreferencesErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetServerPreferencesMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetServerPreferencesResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetServerPreferencesResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetServerPreferencesServerResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionHistoryErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionHistoryMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionHistoryMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionHistoryResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionHistoryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionHistorySessionsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionsErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionsMedia.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionsMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionsMetadata.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionsPart.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionsResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionsSessionsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetSessionsStream.swift
|
||||
- Sources/Plexswift/models/operations/GetSourceConnectionInformationErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetSourceConnectionInformationRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetSourceConnectionInformationRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetSourceConnectionInformationResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetSourceConnectionInformationResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetTimelineErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetTimelineRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetTimelineRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetTimelineResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetTimelineResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetTranscodeSessionsErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetTranscodeSessionsMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetTranscodeSessionsResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetTranscodeSessionsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetTranscodeSessionsSessionsResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetTransientTokenErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetTransientTokenQueryParamType.swift
|
||||
- Sources/Plexswift/internal/models/GetTransientTokenQueryParamType+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetTransientTokenRequest.swift
|
||||
- Sources/Plexswift/internal/models/GetTransientTokenRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/GetTransientTokenResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetTransientTokenResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetUpdateStatusErrors.swift
|
||||
- Sources/Plexswift/models/operations/GetUpdateStatusMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/GetUpdateStatusResponse.swift
|
||||
- Sources/Plexswift/models/operations/GetUpdateStatusResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/GetUpdateStatusUpdaterResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/Guids.swift
|
||||
- Sources/Plexswift/models/operations/Hub.swift
|
||||
- Sources/Plexswift/models/operations/IncludeDetails.swift
|
||||
- Sources/Plexswift/internal/models/IncludeDetails+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/Level.swift
|
||||
- Sources/Plexswift/internal/models/Level+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/Location.swift
|
||||
- Sources/Plexswift/models/operations/LogLineErrors.swift
|
||||
- Sources/Plexswift/models/operations/LogLineRequest.swift
|
||||
- Sources/Plexswift/internal/models/LogLineRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/LogLineResponse.swift
|
||||
- Sources/Plexswift/models/operations/LogLineResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/LogMultiLineErrors.swift
|
||||
- Sources/Plexswift/models/operations/LogMultiLineResponse.swift
|
||||
- Sources/Plexswift/models/operations/LogMultiLineResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/MarkPlayedErrors.swift
|
||||
- Sources/Plexswift/models/operations/MarkPlayedRequest.swift
|
||||
- Sources/Plexswift/internal/models/MarkPlayedRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/MarkPlayedResponse.swift
|
||||
- Sources/Plexswift/models/operations/MarkPlayedResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/MarkUnplayedErrors.swift
|
||||
- Sources/Plexswift/models/operations/MarkUnplayedRequest.swift
|
||||
- Sources/Plexswift/internal/models/MarkUnplayedRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/MarkUnplayedResponse.swift
|
||||
- Sources/Plexswift/models/operations/MarkUnplayedResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/Media.swift
|
||||
- Sources/Plexswift/models/operations/MediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/Metadata.swift
|
||||
- Sources/Plexswift/models/operations/MinSize.swift
|
||||
- Sources/Plexswift/internal/models/MinSize+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/MyPlex.swift
|
||||
- Sources/Plexswift/models/operations/One.swift
|
||||
- Sources/Plexswift/models/operations/OnlyTransient.swift
|
||||
- Sources/Plexswift/internal/models/OnlyTransient+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/Operator.swift
|
||||
- Sources/Plexswift/models/operations/Part.swift
|
||||
- Sources/Plexswift/models/operations/PathParamTaskName.swift
|
||||
- Sources/Plexswift/internal/models/PathParamTaskName+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/PerformSearchErrors.swift
|
||||
- Sources/Plexswift/models/operations/PerformSearchRequest.swift
|
||||
- Sources/Plexswift/internal/models/PerformSearchRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/PerformSearchResponse.swift
|
||||
- Sources/Plexswift/models/operations/PerformSearchResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/PerformVoiceSearchErrors.swift
|
||||
- Sources/Plexswift/models/operations/PerformVoiceSearchRequest.swift
|
||||
- Sources/Plexswift/internal/models/PerformVoiceSearchRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/PerformVoiceSearchResponse.swift
|
||||
- Sources/Plexswift/models/operations/PerformVoiceSearchResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/Player.swift
|
||||
- Sources/Plexswift/models/operations/PlaylistType.swift
|
||||
- Sources/Plexswift/internal/models/PlaylistType+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/Producer.swift
|
||||
- Sources/Plexswift/models/operations/Provider.swift
|
||||
- Sources/Plexswift/models/operations/QueryParamOnlyTransient.swift
|
||||
- Sources/Plexswift/internal/models/QueryParamOnlyTransient+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/QueryParamSmart.swift
|
||||
- Sources/Plexswift/internal/models/QueryParamSmart+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/QueryParamType.swift
|
||||
- Sources/Plexswift/internal/models/QueryParamType+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/Ratings.swift
|
||||
- Sources/Plexswift/models/operations/RefreshLibraryErrors.swift
|
||||
- Sources/Plexswift/models/operations/RefreshLibraryRequest.swift
|
||||
- Sources/Plexswift/internal/models/RefreshLibraryRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/RefreshLibraryResponse.swift
|
||||
- Sources/Plexswift/models/operations/RefreshLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/Release.swift
|
||||
- Sources/Plexswift/models/operations/Role.swift
|
||||
- Sources/Plexswift/models/operations/Scope.swift
|
||||
- Sources/Plexswift/internal/models/Scope+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/SearchLibraryMediaContainer.swift
|
||||
- Sources/Plexswift/models/operations/SearchLibraryMetadata.swift
|
||||
- Sources/Plexswift/models/operations/SearchLibraryRequest.swift
|
||||
- Sources/Plexswift/internal/models/SearchLibraryRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/SearchLibraryResponse.swift
|
||||
- Sources/Plexswift/models/operations/SearchLibraryResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/Server.swift
|
||||
- Sources/Plexswift/models/operations/Session.swift
|
||||
- Sources/Plexswift/models/operations/Setting.swift
|
||||
- Sources/Plexswift/models/operations/Skip.swift
|
||||
- Sources/Plexswift/internal/models/Skip+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/Smart.swift
|
||||
- Sources/Plexswift/internal/models/Smart+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/Sort.swift
|
||||
- Sources/Plexswift/models/operations/StartAllTasksErrors.swift
|
||||
- Sources/Plexswift/models/operations/StartAllTasksResponse.swift
|
||||
- Sources/Plexswift/models/operations/StartAllTasksResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/StartTaskErrors.swift
|
||||
- Sources/Plexswift/models/operations/StartTaskRequest.swift
|
||||
- Sources/Plexswift/internal/models/StartTaskRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/StartTaskResponse.swift
|
||||
- Sources/Plexswift/models/operations/StartTaskResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/StartUniversalTranscodeErrors.swift
|
||||
- Sources/Plexswift/models/operations/StartUniversalTranscodeRequest.swift
|
||||
- Sources/Plexswift/internal/models/StartUniversalTranscodeRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/StartUniversalTranscodeResponse.swift
|
||||
- Sources/Plexswift/models/operations/StartUniversalTranscodeResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/State.swift
|
||||
- Sources/Plexswift/internal/models/State+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/StopAllTasksErrors.swift
|
||||
- Sources/Plexswift/models/operations/StopAllTasksResponse.swift
|
||||
- Sources/Plexswift/models/operations/StopAllTasksResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/StopTaskErrors.swift
|
||||
- Sources/Plexswift/models/operations/StopTaskRequest.swift
|
||||
- Sources/Plexswift/internal/models/StopTaskRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/StopTaskResponse.swift
|
||||
- Sources/Plexswift/models/operations/StopTaskResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/StopTranscodeSessionErrors.swift
|
||||
- Sources/Plexswift/models/operations/StopTranscodeSessionRequest.swift
|
||||
- Sources/Plexswift/internal/models/StopTranscodeSessionRequest+Serialization.swift
|
||||
- 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
|
||||
- Sources/Plexswift/internal/models/Tonight+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/TranscodeSession.swift
|
||||
- Sources/Plexswift/models/operations/Two.swift
|
||||
- Sources/Plexswift/models/operations/TypeModel.swift
|
||||
- Sources/Plexswift/internal/models/TypeModel+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/UpdatePlayProgressErrors.swift
|
||||
- Sources/Plexswift/models/operations/UpdatePlayProgressRequest.swift
|
||||
- Sources/Plexswift/internal/models/UpdatePlayProgressRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/UpdatePlayProgressResponse.swift
|
||||
- Sources/Plexswift/models/operations/UpdatePlayProgressResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/UpdatePlaylistErrors.swift
|
||||
- Sources/Plexswift/models/operations/UpdatePlaylistRequest.swift
|
||||
- Sources/Plexswift/internal/models/UpdatePlaylistRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/UpdatePlaylistResponse.swift
|
||||
- Sources/Plexswift/models/operations/UpdatePlaylistResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/UploadPlaylistErrors.swift
|
||||
- Sources/Plexswift/models/operations/UploadPlaylistRequest.swift
|
||||
- Sources/Plexswift/internal/models/UploadPlaylistRequest+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/UploadPlaylistResponse.swift
|
||||
- Sources/Plexswift/models/operations/UploadPlaylistResponseBody.swift
|
||||
- Sources/Plexswift/models/operations/Upscale.swift
|
||||
- Sources/Plexswift/internal/models/Upscale+Serialization.swift
|
||||
- Sources/Plexswift/models/operations/User.swift
|
||||
- Sources/Plexswift/models/operations/Writer.swift
|
||||
- Sources/Plexswift/models/shared/Security.swift
|
||||
- Sources/Plexswift/internal/models/Security+Serialization.swift
|
||||
- USAGE.md
|
||||
- Sources/Plexswift/Plexswift.docc/Plexswift.md
|
||||
- .gitattributes
|
||||
22
Package.swift
Normal file
22
Package.swift
Normal file
@@ -0,0 +1,22 @@
|
||||
// swift-tools-version: 5.6
|
||||
import PackageDescription
|
||||
|
||||
let package = Package(
|
||||
name: "Plexswift",
|
||||
platforms: [
|
||||
.iOS(.v13)
|
||||
],
|
||||
products: [
|
||||
.library(
|
||||
name: "Plexswift",
|
||||
targets: ["Plexswift"]
|
||||
)
|
||||
],
|
||||
dependencies: [],
|
||||
targets: [
|
||||
.target(
|
||||
name: "Plexswift",
|
||||
dependencies: []
|
||||
)
|
||||
]
|
||||
)
|
||||
124
README.md
Normal file
124
README.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# plexswift
|
||||
|
||||
<a href="https://speakeasyapi.dev/"><img src="https://custom-icon-badges.demolab.com/badge/-Built%20By%20Speakeasy-212015?style=for-the-badge&logoColor=FBE331&logo=speakeasy&labelColor=545454" /></a>
|
||||
<a href="https://opensource.org/licenses/MIT">
|
||||
<img src="https://img.shields.io/badge/License-MIT-blue.svg" style="width: 100px; height: 28px;" />
|
||||
</a>
|
||||

|
||||

|
||||
|
||||
An Open API Spec for interacting with Plex.tv and Plex Servers
|
||||
|
||||
## Requirements
|
||||
|
||||
The SDK supports iOS 13 and later.
|
||||
|
||||
|
||||
## 🏗 **Welcome to your new SDK!** 🏗
|
||||
|
||||
It has been generated successfully based on your OpenAPI spec. However, it is not yet ready for production use. Here are some next steps:
|
||||
- [ ] 🛠 Make your SDK feel handcrafted by [customizing it](https://www.speakeasyapi.dev/docs/customize-sdks)
|
||||
- [ ] ♻️ Refine your SDK quickly by iterating locally with the [Speakeasy CLI](https://github.com/speakeasy-api/speakeasy)
|
||||
- [ ] 🎁 Publish your SDK to package managers by [configuring automatic publishing](https://www.speakeasyapi.dev/docs/productionize-sdks/publish-sdks)
|
||||
- [ ] ✨ When ready to productionize, delete this section from the README
|
||||
|
||||
<!-- Start SDK Installation [installation] -->
|
||||
## SDK Installation
|
||||
|
||||
### Swift Package Manager
|
||||
|
||||
You can add `plexswift` to your project directly in Xcode `(File > Add Packages...)` or by adding it to your project's Package.swift file:
|
||||
|
||||
```bash
|
||||
dependencies: [
|
||||
.package(url: "https://github.com/LukeHagar/plexswift.git", .upToNextMajor(from: "0.0.1"))
|
||||
]
|
||||
```
|
||||
<!-- End SDK Installation [installation] -->
|
||||
|
||||
<!-- Start SDK Example Usage [usage] -->
|
||||
## SDK Example Usage
|
||||
|
||||
### Example
|
||||
|
||||
```swift
|
||||
import Foundation
|
||||
import Plexswift
|
||||
|
||||
let client = Client(security: .accessToken("<YOUR_API_KEY_HERE>"))
|
||||
|
||||
let response = try await client.server.getServerCapabilities()
|
||||
|
||||
switch response.data {
|
||||
case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):
|
||||
// Handle response
|
||||
break
|
||||
case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):
|
||||
// Handle response
|
||||
break
|
||||
case .empty:
|
||||
// Handle empty response
|
||||
break
|
||||
}
|
||||
|
||||
```
|
||||
<!-- End SDK Example Usage [usage] -->
|
||||
|
||||
<!-- Start Available Resources and Operations [operations] -->
|
||||
## Available Resources and Operations
|
||||
|
||||
|
||||
<!-- End Available Resources and Operations [operations] -->
|
||||
|
||||
<!-- Start Authentication [security] -->
|
||||
## Authentication
|
||||
|
||||
### Global Security Schemes
|
||||
|
||||
The SDK supports the following security scheme globally through the `Shared.Security` type:
|
||||
|
||||
| Name | Type | Scheme |
|
||||
| -------------- | -------------- | -------------- |
|
||||
| `.accessToken` | apiKey | API key |
|
||||
|
||||
You can set the appropriate security parameters by passing a `Shared.Security` value for the `security` parameter when initializing the `Client` instance. For example:
|
||||
|
||||
```swift
|
||||
import Foundation
|
||||
import Plexswift
|
||||
|
||||
let client = Client(security: .accessToken("<YOUR_API_KEY_HERE>"))
|
||||
|
||||
let response = try await client.server.getServerCapabilities()
|
||||
|
||||
switch response.data {
|
||||
case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):
|
||||
// Handle response
|
||||
break
|
||||
case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):
|
||||
// Handle response
|
||||
break
|
||||
case .empty:
|
||||
// Handle empty response
|
||||
break
|
||||
}
|
||||
|
||||
```
|
||||
<!-- End Authentication [security] -->
|
||||
|
||||
<!-- Placeholder for Future Speakeasy SDK Sections -->
|
||||
|
||||
# Development
|
||||
|
||||
## Maturity
|
||||
|
||||
This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
|
||||
to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
|
||||
looking for the latest version.
|
||||
|
||||
## Contributions
|
||||
|
||||
While we value open-source contributions to this SDK, this library is generated programmatically.
|
||||
Feel free to open a PR or a Github issue as a proof of concept and we'll do our best to include it in a future release!
|
||||
|
||||
### SDK Created by [Speakeasy](https://docs.speakeasyapi.dev/docs/using-speakeasy/client-sdks)
|
||||
11
RELEASES.md
Normal file
11
RELEASES.md
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
|
||||
## 2024-01-31 00:53:56
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc 0.0.3
|
||||
- Speakeasy CLI 1.156.0 (2.239.4) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [swift v0.0.1] .
|
||||
### Releases
|
||||
- [Swift Package Manager v0.0.1] https://github.com/LukeHagar/plexswift/releases/tag/v0.0.1 - .
|
||||
209
Sources/Plexswift/Client.swift
Normal file
209
Sources/Plexswift/Client.swift
Normal file
@@ -0,0 +1,209 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
#if os(Linux)
|
||||
import FoundationNetworking
|
||||
#endif
|
||||
|
||||
/// An object used to make API calls.
|
||||
///
|
||||
/// ``Client`` is the main object that you interact with to communicate with the API, and is responsible for making the underlying HTTP requests for each API operation and handling the resulting responses. It implements the ``PlexswiftAPI`` protocol to support the available API operations.
|
||||
///
|
||||
/// ### API calls
|
||||
///
|
||||
/// Each API endpoint (or *operation*) is exposed as a method. For instance, the 'getResizedPhoto' operation is exposed as:
|
||||
///
|
||||
/// ```swift
|
||||
/// func getResizedPhoto(request: Operations.GetResizedPhotoRequest) async throws -> Response<Operations.GetResizedPhotoResponse>
|
||||
/// ```
|
||||
///
|
||||
/// ### Request and response objects
|
||||
///
|
||||
/// If an API operation has input parameters, the corresponding API method takes a `request` object, describing these parameters. The request object can either be a primitive value like a `String` or `[String]`, or a Swift `struct` describing the parameters.
|
||||
///
|
||||
/// Each API method also returns a ``Response`` object, which provides information about the result of making the API request. It is generic and parameterised by the resulting data — stored in the ``Response/data`` property — which is determined by each API operation.
|
||||
///
|
||||
/// The ``Response/data`` property defined by each API operation is an enum, and you can `switch` on this value to extract the corresponding value from the response. For example, the 'getResizedPhoto' operation returns a ``Operations/GetResizedPhotoResponse`` value:
|
||||
///
|
||||
/// ```swift
|
||||
/// let response: Response<Operations.GetResizedPhotoResponse> = ... // Response from API call
|
||||
/// switch response.data {
|
||||
/// case .object(let object):
|
||||
/// // Handle response
|
||||
/// case .empty:
|
||||
/// // Handle empty response
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
/// In addition to any data returned by a given API operation, each ``Response`` value contains information about the network request, including:
|
||||
/// - The `contentType` returned by the server.
|
||||
/// - The `statusCode` representing the HTTP status code returned by making the request
|
||||
/// - A `httpResponse` value which is the raw [HTTPURLResponse](https://developer.apple.com/documentation/foundation/httpurlresponse) returned from making the underlying network request.
|
||||
///
|
||||
/// These values can be used to debug and/or react to responses returned from executing a given API operation.
|
||||
///
|
||||
/// ### Authentication
|
||||
///
|
||||
/// Calls to the API must be authenticated, and ``Client`` must be initialized with a configured ``Shared/Security`` object to authenticate requests.
|
||||
///
|
||||
/// ## Topics
|
||||
///
|
||||
/// ### Initializers
|
||||
///
|
||||
/// - ``init(security:)``
|
||||
///
|
||||
/// ### API calls
|
||||
///
|
||||
/// These methods allow you to make requests to the API.
|
||||
///
|
||||
///
|
||||
/// ### Scoped API calls
|
||||
///
|
||||
/// These properties logically group other parts of the API.
|
||||
///
|
||||
/// - ``server``
|
||||
/// - ``media``
|
||||
/// - ``activities``
|
||||
/// - ``butler``
|
||||
/// - ``hubs``
|
||||
/// - ``search``
|
||||
/// - ``library``
|
||||
/// - ``log``
|
||||
/// - ``playlists``
|
||||
/// - ``security``
|
||||
/// - ``sessions``
|
||||
/// - ``updater``
|
||||
/// - ``video``
|
||||
///
|
||||
public final class Client {
|
||||
internal struct APIResponse {
|
||||
let httpResponse: HTTPURLResponse
|
||||
let data: Data?
|
||||
}
|
||||
|
||||
internal typealias ConfigureURLRequest = (_ configuration: URLRequestConfiguration) throws -> Void
|
||||
internal typealias ResponseHandler<ResponseObject> = (_ apiResponse: APIResponse) throws -> ResponseObject
|
||||
|
||||
// Underscore-prefix properties so these do not potentially conflict with any operation namespaces.
|
||||
private lazy var _session = URLSession(configuration: .default)
|
||||
private var _security: Shared.Security
|
||||
|
||||
private var _selectedServer: GlobalServers?
|
||||
|
||||
/// Creates an API client object with the specified parameters.
|
||||
public init(security: Shared.Security) {
|
||||
self._security = security
|
||||
}
|
||||
|
||||
// MARK: - Internal
|
||||
|
||||
internal func makeRequest<ResponseType: ResponseFields, ResponseObject>(
|
||||
with server: Server? = nil,
|
||||
configureRequest: @escaping ConfigureURLRequest,
|
||||
handleResponse responseHandler: @escaping ResponseHandler<ResponseObject>
|
||||
) async throws -> ResponseType where ResponseType.T == ResponseObject {
|
||||
return try await withCheckedThrowingContinuation { continuation in
|
||||
_makeRequest(with: server, configureRequest: configureRequest) { result in
|
||||
do {
|
||||
let apiResponse = try result.get()
|
||||
let responseObject = try responseHandler(apiResponse)
|
||||
continuation.resume(returning: ResponseType(httpResponse: apiResponse.httpResponse, data: responseObject))
|
||||
} catch let error as ServerConversionError {
|
||||
switch error {
|
||||
case .internal:
|
||||
continuation.resume(throwing: PlexswiftError.internalError(error: nil))
|
||||
case .missingDefaultServer(let serverType):
|
||||
continuation.resume(throwing: PlexswiftError.failedToConstructRequestURL(.missingDefaultServer(serverType: serverType)))
|
||||
case .invalidServerIndex(let serverType, let index):
|
||||
continuation.resume(throwing: PlexswiftError.failedToConstructRequestURL(.invalidServerIndex(serverType: serverType, index: index)))
|
||||
case .missingServerParameterSubstitutionKey(let key, let serverString):
|
||||
continuation.resume(throwing: PlexswiftError.failedToSerializeRequestParameters(.missingServerParameterSubstitutionKey(key, serverString: serverString)))
|
||||
}
|
||||
} catch let error as URLRequestBuilderError {
|
||||
switch error {
|
||||
case .internalError:
|
||||
continuation.resume(throwing: PlexswiftError.internalError(error: nil))
|
||||
case .invalidURL(let urlString):
|
||||
continuation.resume(throwing: PlexswiftError.failedToConstructRequestURL(.invalidRequestURL(string: urlString)))
|
||||
case .missingPathParameterSubstitutionKey(let key, let path):
|
||||
continuation.resume(throwing: PlexswiftError.failedToSerializeRequestParameters(.missingPathParameterSubstitutionKey(key, path: path)))
|
||||
}
|
||||
} catch let error as SerializationError {
|
||||
switch error {
|
||||
case .failedToSerializeData:
|
||||
continuation.resume(throwing: PlexswiftError.failedToSerializeRequestParameters(.failedToSerializeData))
|
||||
case .missingRequiredRequestBody:
|
||||
continuation.resume(throwing: PlexswiftError.failedToConstructRequest(.missingRequiredRequestBody))
|
||||
case .invalidSerializationParameter(let type, let format):
|
||||
continuation.resume(throwing: PlexswiftError.failedToSerializeRequestParameters(.invalidSerializationParameter(type: type, format: format)))
|
||||
}
|
||||
} catch let error as ResponseHandlerError {
|
||||
switch error {
|
||||
case .failedToDecodeResponse:
|
||||
continuation.resume(throwing: PlexswiftError.failedToHandleResponse(.failedToDecodeResponse))
|
||||
case .failedToDecodeJSON(let error):
|
||||
continuation.resume(throwing: PlexswiftError.failedToHandleResponse(.failedToDeserializeJSON(error)))
|
||||
}
|
||||
} catch let error as PlexswiftError {
|
||||
continuation.resume(throwing: error)
|
||||
} catch {
|
||||
continuation.resume(throwing: PlexswiftError.internalError(error: error))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal func _makeRequest(
|
||||
with server: Server? = nil,
|
||||
configureRequest: ConfigureURLRequest,
|
||||
completion: @escaping (Result<APIResponse, Swift.Error>) -> Void
|
||||
) {
|
||||
do {
|
||||
let builder = URLRequestBuilder(
|
||||
baseURL: try baseURL(serverOverride: server),
|
||||
parameterDefaults: nil,
|
||||
defaultSecurityParameterProviding: _security
|
||||
)
|
||||
try configureRequest(builder)
|
||||
return makeDataRequest(with: try builder.build(), completion: completion)
|
||||
} catch {
|
||||
completion(.failure(error))
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private func baseURL(serverOverride: Server? = nil) throws -> URL {
|
||||
let server: Server
|
||||
if let serverOverride {
|
||||
server = serverOverride
|
||||
} else if let selectedServer = _selectedServer {
|
||||
server = try selectedServer.server()
|
||||
} else {
|
||||
server = try GlobalServers.default()
|
||||
}
|
||||
|
||||
guard let url = URL(string: server.urlString) else {
|
||||
throw PlexswiftError.failedToConstructRequestURL(.invalidServerURL(string: server.urlString))
|
||||
}
|
||||
return url
|
||||
}
|
||||
|
||||
private func makeDataRequest(with urlRequest: URLRequest, completion: @escaping (Result<APIResponse, Swift.Error>) -> Void) {
|
||||
let task = _session.dataTask(with: urlRequest) { data, response, error in
|
||||
if let error {
|
||||
completion(.failure(PlexswiftError.failedToMakeNetworkRequest(error: error)))
|
||||
} else if let httpResponse = response as? HTTPURLResponse {
|
||||
completion(.success(APIResponse(httpResponse: httpResponse, data: data)))
|
||||
} else {
|
||||
completion(.failure(PlexswiftError.internalError(error: nil)))
|
||||
}
|
||||
}
|
||||
task.resume()
|
||||
}
|
||||
}
|
||||
|
||||
enum ResponseHandlerError: Swift.Error {
|
||||
case failedToDecodeJSON(_ error: Swift.Error)
|
||||
case failedToDecodeResponse
|
||||
}
|
||||
472
Sources/Plexswift/Plexswift.docc/Plexswift.md
Normal file
472
Sources/Plexswift/Plexswift.docc/Plexswift.md
Normal file
@@ -0,0 +1,472 @@
|
||||
# ``plexswift``
|
||||
|
||||
An Open API Spec for interacting with Plex.tv and Plex Servers
|
||||
|
||||
`plexswift` is a Swift library which provides functionality for making requests to the API using a modern, easy-to-use Swift API:
|
||||
|
||||
### SDK Example Usage
|
||||
|
||||
```swift
|
||||
import Foundation
|
||||
import Plexswift
|
||||
|
||||
let client = Client(security: .accessToken("<YOUR_API_KEY_HERE>"))
|
||||
|
||||
let response = try await client.server.getServerCapabilities()
|
||||
|
||||
switch response.data {
|
||||
case .twoHundredApplicationJsonObject(let twoHundredApplicationJsonObject):
|
||||
// Handle response
|
||||
break
|
||||
case .fourHundredAndOneApplicationJsonObject(let fourHundredAndOneApplicationJsonObject):
|
||||
// Handle response
|
||||
break
|
||||
case .empty:
|
||||
// Handle empty response
|
||||
break
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
### Getting started
|
||||
- ``PlexswiftAPI`` defines the available API operations, including operations which are logically grouped by name (for example under ``PlexswiftAPI/server``).
|
||||
- ``Client`` is the main object used when making requests to the API, and implements ``PlexswiftAPI`` to provide this functionality. Each available API method is exposed as an `async` function, which you can call and `await` its response and handle any errors that are thrown.
|
||||
- API methods that require input data take a *request object* describing these parameters, and each method returns a *response object* containing information about the response. You can read more about these in <doc:Client#Request-and-response-objects>.
|
||||
- Requests to the API must be authenticated. You can provide authentication credentials by initializing ``Client`` with a ``Shared/Security`` value.
|
||||
- If an error occurs when making a request to the API, a ``PlexswiftError`` error is thrown with more information about what went wrong.
|
||||
|
||||
## Topics
|
||||
|
||||
### Connecting to the API
|
||||
|
||||
- ``Client``
|
||||
- ``Shared/Security``
|
||||
- ``Response``
|
||||
- ``ResponseWithHeaders``
|
||||
- ``ResponseFields``
|
||||
- ``ResponseHeaders``
|
||||
- ``PlexswiftError``
|
||||
|
||||
### API operations
|
||||
|
||||
- ``plexswift/PlexswiftAPI``
|
||||
- ``ServerAPI``
|
||||
- ``MediaAPI``
|
||||
- ``ActivitiesAPI``
|
||||
- ``ButlerAPI``
|
||||
- ``HubsAPI``
|
||||
- ``SearchAPI``
|
||||
- ``LibraryAPI``
|
||||
- ``LogAPI``
|
||||
- ``PlaylistsAPI``
|
||||
- ``SecurityAPI``
|
||||
- ``SessionsAPI``
|
||||
- ``UpdaterAPI``
|
||||
- ``VideoAPI``
|
||||
|
||||
### Server configuration
|
||||
|
||||
### Shared models
|
||||
|
||||
### Request objects
|
||||
|
||||
### Response objects
|
||||
- ``Operations/AddPlaylistContentsResponse``
|
||||
- ``Operations/ApplyUpdatesResponse``
|
||||
- ``Operations/CancelServerActivitiesResponse``
|
||||
- ``Operations/CheckForUpdatesResponse``
|
||||
- ``Operations/ClearPlaylistContentsResponse``
|
||||
- ``Operations/CreatePlaylistResponse``
|
||||
- ``Operations/DeleteLibraryResponse``
|
||||
- ``Operations/DeletePlaylistResponse``
|
||||
- ``Operations/EnablePaperTrailResponse``
|
||||
- ``Operations/GetAvailableClientsResponse``
|
||||
- ``Operations/GetButlerTasksResponse``
|
||||
- ``Operations/GetDevicesResponse``
|
||||
- ``Operations/GetFileHashResponse``
|
||||
- ``Operations/GetGlobalHubsResponse``
|
||||
- ``Operations/GetLibrariesResponse``
|
||||
- ``Operations/GetLibraryResponse``
|
||||
- ``Operations/GetLibraryHubsResponse``
|
||||
- ``Operations/GetLibraryItemsResponse``
|
||||
- ``Operations/GetMetadataResponse``
|
||||
- ``Operations/GetMetadataChildrenResponse``
|
||||
- ``Operations/GetMyPlexAccountResponse``
|
||||
- ``Operations/GetOnDeckResponse``
|
||||
- ``Operations/GetPlaylistResponse``
|
||||
- ``Operations/GetPlaylistContentsResponse``
|
||||
- ``Operations/GetPlaylistsResponse``
|
||||
- ``Operations/GetRecentlyAddedResponse``
|
||||
- ``Operations/GetResizedPhotoResponse``
|
||||
- ``Operations/GetSearchResultsResponse``
|
||||
- ``Operations/GetServerActivitiesResponse``
|
||||
- ``Operations/GetServerCapabilitiesResponse``
|
||||
- ``Operations/GetServerIdentityResponse``
|
||||
- ``Operations/GetServerListResponse``
|
||||
- ``Operations/GetServerPreferencesResponse``
|
||||
- ``Operations/GetSessionHistoryResponse``
|
||||
- ``Operations/GetSessionsResponse``
|
||||
- ``Operations/GetSourceConnectionInformationResponse``
|
||||
- ``Operations/GetTimelineResponse``
|
||||
- ``Operations/GetTranscodeSessionsResponse``
|
||||
- ``Operations/GetTransientTokenResponse``
|
||||
- ``Operations/GetUpdateStatusResponse``
|
||||
- ``Operations/LogLineResponse``
|
||||
- ``Operations/LogMultiLineResponse``
|
||||
- ``Operations/MarkPlayedResponse``
|
||||
- ``Operations/MarkUnplayedResponse``
|
||||
- ``Operations/PerformSearchResponse``
|
||||
- ``Operations/PerformVoiceSearchResponse``
|
||||
- ``Operations/RefreshLibraryResponse``
|
||||
- ``Operations/SearchLibraryResponse``
|
||||
- ``Operations/StartAllTasksResponse``
|
||||
- ``Operations/StartTaskResponse``
|
||||
- ``Operations/StartUniversalTranscodeResponse``
|
||||
- ``Operations/StopAllTasksResponse``
|
||||
- ``Operations/StopTaskResponse``
|
||||
- ``Operations/StopTranscodeSessionResponse``
|
||||
- ``Operations/UpdatePlaylistResponse``
|
||||
- ``Operations/UpdatePlayProgressResponse``
|
||||
- ``Operations/UploadPlaylistResponse``
|
||||
|
||||
### Other models
|
||||
- ``Operations/One``
|
||||
- ``Operations/Two``
|
||||
- ``Operations/Activity``
|
||||
- ``Operations/AddPlaylistContentsErrors``
|
||||
- ``Operations/AddPlaylistContentsMediaContainer``
|
||||
- ``Operations/AddPlaylistContentsMetadata``
|
||||
- ``Operations/AddPlaylistContentsPlaylistsResponseBody``
|
||||
- ``Operations/AddPlaylistContentsRequest``
|
||||
- ``Operations/AddPlaylistContentsResponseBody``
|
||||
- ``Operations/ApplyUpdatesErrors``
|
||||
- ``Operations/ApplyUpdatesRequest``
|
||||
- ``Operations/ApplyUpdatesResponseBody``
|
||||
- ``Operations/ButlerTask``
|
||||
- ``Operations/ButlerTasks``
|
||||
- ``Operations/CancelServerActivitiesErrors``
|
||||
- ``Operations/CancelServerActivitiesRequest``
|
||||
- ``Operations/CancelServerActivitiesResponseBody``
|
||||
- ``Operations/CheckForUpdatesErrors``
|
||||
- ``Operations/CheckForUpdatesRequest``
|
||||
- ``Operations/CheckForUpdatesResponseBody``
|
||||
- ``Operations/ClearPlaylistContentsErrors``
|
||||
- ``Operations/ClearPlaylistContentsRequest``
|
||||
- ``Operations/ClearPlaylistContentsResponseBody``
|
||||
- ``Operations/Context``
|
||||
- ``Operations/Country``
|
||||
- ``Operations/CreatePlaylistErrors``
|
||||
- ``Operations/CreatePlaylistMediaContainer``
|
||||
- ``Operations/CreatePlaylistMetadata``
|
||||
- ``Operations/CreatePlaylistPlaylistsResponseBody``
|
||||
- ``Operations/CreatePlaylistRequest``
|
||||
- ``Operations/CreatePlaylistResponseBody``
|
||||
- ``Operations/DeleteLibraryErrors``
|
||||
- ``Operations/DeleteLibraryRequest``
|
||||
- ``Operations/DeleteLibraryResponseBody``
|
||||
- ``Operations/DeletePlaylistErrors``
|
||||
- ``Operations/DeletePlaylistRequest``
|
||||
- ``Operations/DeletePlaylistResponseBody``
|
||||
- ``Operations/Device``
|
||||
- ``Operations/Director``
|
||||
- ``Operations/Directory``
|
||||
- ``Operations/Download``
|
||||
- ``Operations/EnablePaperTrailErrors``
|
||||
- ``Operations/EnablePaperTrailResponseBody``
|
||||
- ``Operations/Errors``
|
||||
- ``Operations/Field``
|
||||
- ``Operations/FieldType``
|
||||
- ``Operations/Filter``
|
||||
- ``Operations/Force``
|
||||
- ``Operations/Genre``
|
||||
- ``Operations/GetAvailableClientsErrors``
|
||||
- ``Operations/GetAvailableClientsMediaContainer``
|
||||
- ``Operations/GetAvailableClientsResponseBody``
|
||||
- ``Operations/GetAvailableClientsServerResponseBody``
|
||||
- ``Operations/GetButlerTasksButlerResponseBody``
|
||||
- ``Operations/GetButlerTasksErrors``
|
||||
- ``Operations/GetButlerTasksResponseBody``
|
||||
- ``Operations/GetDevicesErrors``
|
||||
- ``Operations/GetDevicesMediaContainer``
|
||||
- ``Operations/GetDevicesResponseBody``
|
||||
- ``Operations/GetDevicesServerResponseBody``
|
||||
- ``Operations/GetFileHashErrors``
|
||||
- ``Operations/GetFileHashRequest``
|
||||
- ``Operations/GetFileHashResponseBody``
|
||||
- ``Operations/GetGlobalHubsErrors``
|
||||
- ``Operations/GetGlobalHubsHubsResponseBody``
|
||||
- ``Operations/GetGlobalHubsMediaContainer``
|
||||
- ``Operations/GetGlobalHubsMetadata``
|
||||
- ``Operations/GetGlobalHubsRequest``
|
||||
- ``Operations/GetGlobalHubsResponseBody``
|
||||
- ``Operations/GetLibrariesDirectory``
|
||||
- ``Operations/GetLibrariesErrors``
|
||||
- ``Operations/GetLibrariesLibraryResponseBody``
|
||||
- ``Operations/GetLibrariesMediaContainer``
|
||||
- ``Operations/GetLibrariesResponseBody``
|
||||
- ``Operations/GetLibraryDirectory``
|
||||
- ``Operations/GetLibraryErrors``
|
||||
- ``Operations/GetLibraryLibraryResponseBody``
|
||||
- ``Operations/GetLibraryMediaContainer``
|
||||
- ``Operations/GetLibraryRequest``
|
||||
- ``Operations/GetLibraryResponseBody``
|
||||
- ``Operations/GetLibraryType``
|
||||
- ``Operations/GetLibraryHubsCountry``
|
||||
- ``Operations/GetLibraryHubsDirector``
|
||||
- ``Operations/GetLibraryHubsErrors``
|
||||
- ``Operations/GetLibraryHubsGenre``
|
||||
- ``Operations/GetLibraryHubsHub``
|
||||
- ``Operations/GetLibraryHubsHubsResponseBody``
|
||||
- ``Operations/GetLibraryHubsMedia``
|
||||
- ``Operations/GetLibraryHubsMediaContainer``
|
||||
- ``Operations/GetLibraryHubsMetadata``
|
||||
- ``Operations/GetLibraryHubsPart``
|
||||
- ``Operations/GetLibraryHubsRequest``
|
||||
- ``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``
|
||||
- ``Operations/GetMetadataGenre``
|
||||
- ``Operations/GetMetadataLibraryResponseBody``
|
||||
- ``Operations/GetMetadataMedia``
|
||||
- ``Operations/GetMetadataMediaContainer``
|
||||
- ``Operations/GetMetadataMetadata``
|
||||
- ``Operations/GetMetadataPart``
|
||||
- ``Operations/GetMetadataRequest``
|
||||
- ``Operations/GetMetadataResponseBody``
|
||||
- ``Operations/GetMetadataRole``
|
||||
- ``Operations/GetMetadataWriter``
|
||||
- ``Operations/GetMetadataChildrenDirectory``
|
||||
- ``Operations/GetMetadataChildrenErrors``
|
||||
- ``Operations/GetMetadataChildrenLibraryResponseBody``
|
||||
- ``Operations/GetMetadataChildrenMediaContainer``
|
||||
- ``Operations/GetMetadataChildrenMetadata``
|
||||
- ``Operations/GetMetadataChildrenRequest``
|
||||
- ``Operations/GetMetadataChildrenResponseBody``
|
||||
- ``Operations/GetMyPlexAccountErrors``
|
||||
- ``Operations/GetMyPlexAccountResponseBody``
|
||||
- ``Operations/GetMyPlexAccountServerResponseBody``
|
||||
- ``Operations/GetOnDeckErrors``
|
||||
- ``Operations/GetOnDeckGuids``
|
||||
- ``Operations/GetOnDeckLibraryResponseBody``
|
||||
- ``Operations/GetOnDeckMedia``
|
||||
- ``Operations/GetOnDeckMediaContainer``
|
||||
- ``Operations/GetOnDeckMetadata``
|
||||
- ``Operations/GetOnDeckPart``
|
||||
- ``Operations/GetOnDeckResponseBody``
|
||||
- ``Operations/GetOnDeckStream``
|
||||
- ``Operations/GetPlaylistErrors``
|
||||
- ``Operations/GetPlaylistMediaContainer``
|
||||
- ``Operations/GetPlaylistMetadata``
|
||||
- ``Operations/GetPlaylistPlaylistsResponseBody``
|
||||
- ``Operations/GetPlaylistRequest``
|
||||
- ``Operations/GetPlaylistResponseBody``
|
||||
- ``Operations/GetPlaylistContentsCountry``
|
||||
- ``Operations/GetPlaylistContentsDirector``
|
||||
- ``Operations/GetPlaylistContentsErrors``
|
||||
- ``Operations/GetPlaylistContentsGenre``
|
||||
- ``Operations/GetPlaylistContentsMedia``
|
||||
- ``Operations/GetPlaylistContentsMediaContainer``
|
||||
- ``Operations/GetPlaylistContentsMetadata``
|
||||
- ``Operations/GetPlaylistContentsPart``
|
||||
- ``Operations/GetPlaylistContentsPlaylistsResponseBody``
|
||||
- ``Operations/GetPlaylistContentsRequest``
|
||||
- ``Operations/GetPlaylistContentsResponseBody``
|
||||
- ``Operations/GetPlaylistContentsRole``
|
||||
- ``Operations/GetPlaylistContentsWriter``
|
||||
- ``Operations/GetPlaylistsErrors``
|
||||
- ``Operations/GetPlaylistsMediaContainer``
|
||||
- ``Operations/GetPlaylistsMetadata``
|
||||
- ``Operations/GetPlaylistsPlaylistsResponseBody``
|
||||
- ``Operations/GetPlaylistsRequest``
|
||||
- ``Operations/GetPlaylistsResponseBody``
|
||||
- ``Operations/GetRecentlyAddedErrors``
|
||||
- ``Operations/GetRecentlyAddedLibraryResponseBody``
|
||||
- ``Operations/GetRecentlyAddedMediaContainer``
|
||||
- ``Operations/GetRecentlyAddedResponseBody``
|
||||
- ``Operations/GetResizedPhotoErrors``
|
||||
- ``Operations/GetResizedPhotoRequest``
|
||||
- ``Operations/GetResizedPhotoResponseBody``
|
||||
- ``Operations/GetSearchResultsCountry``
|
||||
- ``Operations/GetSearchResultsDirector``
|
||||
- ``Operations/GetSearchResultsErrors``
|
||||
- ``Operations/GetSearchResultsGenre``
|
||||
- ``Operations/GetSearchResultsMedia``
|
||||
- ``Operations/GetSearchResultsMediaContainer``
|
||||
- ``Operations/GetSearchResultsMetadata``
|
||||
- ``Operations/GetSearchResultsPart``
|
||||
- ``Operations/GetSearchResultsRequest``
|
||||
- ``Operations/GetSearchResultsResponseBody``
|
||||
- ``Operations/GetSearchResultsRole``
|
||||
- ``Operations/GetSearchResultsSearchResponseBody``
|
||||
- ``Operations/GetSearchResultsWriter``
|
||||
- ``Operations/GetServerActivitiesActivitiesResponseBody``
|
||||
- ``Operations/GetServerActivitiesErrors``
|
||||
- ``Operations/GetServerActivitiesMediaContainer``
|
||||
- ``Operations/GetServerActivitiesResponseBody``
|
||||
- ``Operations/GetServerCapabilitiesResponseBody``
|
||||
- ``Operations/GetServerCapabilitiesServerResponseBody``
|
||||
- ``Operations/GetServerIdentityErrors``
|
||||
- ``Operations/GetServerIdentityMediaContainer``
|
||||
- ``Operations/GetServerIdentityResponseBody``
|
||||
- ``Operations/GetServerIdentityServerResponseBody``
|
||||
- ``Operations/GetServerListErrors``
|
||||
- ``Operations/GetServerListMediaContainer``
|
||||
- ``Operations/GetServerListResponseBody``
|
||||
- ``Operations/GetServerListServer``
|
||||
- ``Operations/GetServerListServerResponseBody``
|
||||
- ``Operations/GetServerPreferencesErrors``
|
||||
- ``Operations/GetServerPreferencesMediaContainer``
|
||||
- ``Operations/GetServerPreferencesResponseBody``
|
||||
- ``Operations/GetServerPreferencesServerResponseBody``
|
||||
- ``Operations/GetSessionHistoryErrors``
|
||||
- ``Operations/GetSessionHistoryMediaContainer``
|
||||
- ``Operations/GetSessionHistoryMetadata``
|
||||
- ``Operations/GetSessionHistoryResponseBody``
|
||||
- ``Operations/GetSessionHistorySessionsResponseBody``
|
||||
- ``Operations/GetSessionsErrors``
|
||||
- ``Operations/GetSessionsMedia``
|
||||
- ``Operations/GetSessionsMediaContainer``
|
||||
- ``Operations/GetSessionsMetadata``
|
||||
- ``Operations/GetSessionsPart``
|
||||
- ``Operations/GetSessionsResponseBody``
|
||||
- ``Operations/GetSessionsSessionsResponseBody``
|
||||
- ``Operations/GetSessionsStream``
|
||||
- ``Operations/GetSourceConnectionInformationErrors``
|
||||
- ``Operations/GetSourceConnectionInformationRequest``
|
||||
- ``Operations/GetSourceConnectionInformationResponseBody``
|
||||
- ``Operations/GetTimelineErrors``
|
||||
- ``Operations/GetTimelineRequest``
|
||||
- ``Operations/GetTimelineResponseBody``
|
||||
- ``Operations/GetTranscodeSessionsErrors``
|
||||
- ``Operations/GetTranscodeSessionsMediaContainer``
|
||||
- ``Operations/GetTranscodeSessionsResponseBody``
|
||||
- ``Operations/GetTranscodeSessionsSessionsResponseBody``
|
||||
- ``Operations/GetTransientTokenErrors``
|
||||
- ``Operations/GetTransientTokenQueryParamType``
|
||||
- ``Operations/GetTransientTokenRequest``
|
||||
- ``Operations/GetTransientTokenResponseBody``
|
||||
- ``Operations/GetUpdateStatusErrors``
|
||||
- ``Operations/GetUpdateStatusMediaContainer``
|
||||
- ``Operations/GetUpdateStatusResponseBody``
|
||||
- ``Operations/GetUpdateStatusUpdaterResponseBody``
|
||||
- ``Operations/Guids``
|
||||
- ``Operations/Hub``
|
||||
- ``Operations/IncludeDetails``
|
||||
- ``Operations/Level``
|
||||
- ``Operations/Location``
|
||||
- ``Operations/LogLineErrors``
|
||||
- ``Operations/LogLineRequest``
|
||||
- ``Operations/LogLineResponseBody``
|
||||
- ``Operations/LogMultiLineErrors``
|
||||
- ``Operations/LogMultiLineResponseBody``
|
||||
- ``Operations/MarkPlayedErrors``
|
||||
- ``Operations/MarkPlayedRequest``
|
||||
- ``Operations/MarkPlayedResponseBody``
|
||||
- ``Operations/MarkUnplayedErrors``
|
||||
- ``Operations/MarkUnplayedRequest``
|
||||
- ``Operations/MarkUnplayedResponseBody``
|
||||
- ``Operations/Media``
|
||||
- ``Operations/MediaContainer``
|
||||
- ``Operations/Metadata``
|
||||
- ``Operations/MinSize``
|
||||
- ``Operations/MyPlex``
|
||||
- ``Operations/OnlyTransient``
|
||||
- ``Operations/Operator``
|
||||
- ``Operations/Part``
|
||||
- ``Operations/PathParamTaskName``
|
||||
- ``Operations/PerformSearchErrors``
|
||||
- ``Operations/PerformSearchRequest``
|
||||
- ``Operations/PerformSearchResponseBody``
|
||||
- ``Operations/PerformVoiceSearchErrors``
|
||||
- ``Operations/PerformVoiceSearchRequest``
|
||||
- ``Operations/PerformVoiceSearchResponseBody``
|
||||
- ``Operations/Player``
|
||||
- ``Operations/PlaylistType``
|
||||
- ``Operations/Producer``
|
||||
- ``Operations/Provider``
|
||||
- ``Operations/QueryParamOnlyTransient``
|
||||
- ``Operations/QueryParamSmart``
|
||||
- ``Operations/QueryParamType``
|
||||
- ``Operations/Ratings``
|
||||
- ``Operations/RefreshLibraryErrors``
|
||||
- ``Operations/RefreshLibraryRequest``
|
||||
- ``Operations/RefreshLibraryResponseBody``
|
||||
- ``Operations/Release``
|
||||
- ``Operations/Role``
|
||||
- ``Operations/Scope``
|
||||
- ``Operations/SearchLibraryMediaContainer``
|
||||
- ``Operations/SearchLibraryMetadata``
|
||||
- ``Operations/SearchLibraryRequest``
|
||||
- ``Operations/SearchLibraryResponseBody``
|
||||
- ``Operations/Server``
|
||||
- ``Operations/Session``
|
||||
- ``Operations/Setting``
|
||||
- ``Operations/Skip``
|
||||
- ``Operations/Smart``
|
||||
- ``Operations/Sort``
|
||||
- ``Operations/StartAllTasksErrors``
|
||||
- ``Operations/StartAllTasksResponseBody``
|
||||
- ``Operations/StartTaskErrors``
|
||||
- ``Operations/StartTaskRequest``
|
||||
- ``Operations/StartTaskResponseBody``
|
||||
- ``Operations/StartUniversalTranscodeErrors``
|
||||
- ``Operations/StartUniversalTranscodeRequest``
|
||||
- ``Operations/StartUniversalTranscodeResponseBody``
|
||||
- ``Operations/State``
|
||||
- ``Operations/StopAllTasksErrors``
|
||||
- ``Operations/StopAllTasksResponseBody``
|
||||
- ``Operations/StopTaskErrors``
|
||||
- ``Operations/StopTaskRequest``
|
||||
- ``Operations/StopTaskResponseBody``
|
||||
- ``Operations/StopTranscodeSessionErrors``
|
||||
- ``Operations/StopTranscodeSessionRequest``
|
||||
- ``Operations/StopTranscodeSessionResponseBody``
|
||||
- ``Operations/Stream``
|
||||
- ``Operations/Tag``
|
||||
- ``Operations/TaskName``
|
||||
- ``Operations/Tonight``
|
||||
- ``Operations/TranscodeSession``
|
||||
- ``Operations/TypeModel``
|
||||
- ``Operations/UpdatePlaylistErrors``
|
||||
- ``Operations/UpdatePlaylistRequest``
|
||||
- ``Operations/UpdatePlaylistResponseBody``
|
||||
- ``Operations/UpdatePlayProgressErrors``
|
||||
- ``Operations/UpdatePlayProgressRequest``
|
||||
- ``Operations/UpdatePlayProgressResponseBody``
|
||||
- ``Operations/UploadPlaylistErrors``
|
||||
- ``Operations/UploadPlaylistRequest``
|
||||
- ``Operations/UploadPlaylistResponseBody``
|
||||
- ``Operations/Upscale``
|
||||
- ``Operations/User``
|
||||
- ``Operations/Writer``
|
||||
|
||||
### Type groupings
|
||||
- ``Operations``
|
||||
- ``Shared``
|
||||
|
||||
### Data types
|
||||
|
||||
- ``AnyValue``
|
||||
- ``APIValue``
|
||||
|
||||
### Internal data types
|
||||
|
||||
- ``DateConvertible``
|
||||
- ``DateOnly``
|
||||
- ``DateTime``
|
||||
- ``DecimalSerialized``
|
||||
- ``DoubleConvertible``
|
||||
38
Sources/Plexswift/configuration/GlobalServer.swift
Normal file
38
Sources/Plexswift/configuration/GlobalServer.swift
Normal file
@@ -0,0 +1,38 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
/// The protocol to use when connecting to your plex server.
|
||||
public enum ServerProtocol: String, Codable, APIValue {
|
||||
case http = "http"
|
||||
case https = "https"
|
||||
}
|
||||
|
||||
enum GlobalServers: Servers, ServerConvertible {
|
||||
/// Supported server value with substituted variables
|
||||
///
|
||||
/// Corresponds to `{protocol}://{ip}:{port}`
|
||||
case server1(`protocol`: ServerProtocol = .http, ip: String = "10.10.10.47", port: String = "32400")
|
||||
|
||||
/// Defines the raw URL strings for each server option.
|
||||
///
|
||||
/// > Note: You do not need to use these values directly.
|
||||
///
|
||||
/// The available URL strings are defined as:
|
||||
/// ```swift
|
||||
/// public static let urlStrings = [
|
||||
/// "{protocol}://{ip}:{port}"
|
||||
/// ]
|
||||
/// ```
|
||||
public static let urlStrings = [
|
||||
"{protocol}://{ip}:{port}"
|
||||
]
|
||||
|
||||
func server() throws -> Server {
|
||||
switch self {
|
||||
case .server1(let `protocol`, let ip, let port):
|
||||
return try type(of: self).server(at: 0, substituting: ["protocol": `protocol`.rawValue, "ip": ip, "port": port])
|
||||
}
|
||||
}
|
||||
}
|
||||
93
Sources/Plexswift/internal/api/_ActivitiesAPI.swift
Normal file
93
Sources/Plexswift/internal/api/_ActivitiesAPI.swift
Normal file
@@ -0,0 +1,93 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _ActivitiesAPI: ActivitiesAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func getServerActivities() async throws -> Response<Operations.GetServerActivitiesResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetServerActivitiesRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetServerActivitiesResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func cancelServerActivities(request: Operations.CancelServerActivitiesRequest) async throws -> Response<Operations.CancelServerActivitiesResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureCancelServerActivitiesRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleCancelServerActivitiesResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureGetServerActivitiesRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/activities"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureCancelServerActivitiesRequest(with configuration: URLRequestConfiguration, request: Operations.CancelServerActivitiesRequest) throws {
|
||||
configuration.path = "/activities/{activityUUID}"
|
||||
configuration.method = .delete
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleGetServerActivitiesResponse(response: Client.APIResponse) throws -> Operations.GetServerActivitiesResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetServerActivitiesResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetServerActivitiesActivitiesResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleCancelServerActivitiesResponse(response: Client.APIResponse) throws -> Operations.CancelServerActivitiesResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.CancelServerActivitiesResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
193
Sources/Plexswift/internal/api/_ButlerAPI.swift
Normal file
193
Sources/Plexswift/internal/api/_ButlerAPI.swift
Normal file
@@ -0,0 +1,193 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _ButlerAPI: ButlerAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func getButlerTasks() async throws -> Response<Operations.GetButlerTasksResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetButlerTasksRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetButlerTasksResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func startAllTasks() async throws -> Response<Operations.StartAllTasksResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureStartAllTasksRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleStartAllTasksResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func stopAllTasks() async throws -> Response<Operations.StopAllTasksResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureStopAllTasksRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleStopAllTasksResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func startTask(request: Operations.StartTaskRequest) async throws -> Response<Operations.StartTaskResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureStartTaskRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleStartTaskResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func stopTask(request: Operations.StopTaskRequest) async throws -> Response<Operations.StopTaskResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureStopTaskRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleStopTaskResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureGetButlerTasksRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/butler"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureStartAllTasksRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/butler"
|
||||
configuration.method = .post
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureStopAllTasksRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/butler"
|
||||
configuration.method = .delete
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureStartTaskRequest(with configuration: URLRequestConfiguration, request: Operations.StartTaskRequest) throws {
|
||||
configuration.path = "/butler/{taskName}"
|
||||
configuration.method = .post
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureStopTaskRequest(with configuration: URLRequestConfiguration, request: Operations.StopTaskRequest) throws {
|
||||
configuration.path = "/butler/{taskName}"
|
||||
configuration.method = .delete
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleGetButlerTasksResponse(response: Client.APIResponse) throws -> Operations.GetButlerTasksResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetButlerTasksResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetButlerTasksButlerResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleStartAllTasksResponse(response: Client.APIResponse) throws -> Operations.StartAllTasksResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.StartAllTasksResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleStopAllTasksResponse(response: Client.APIResponse) throws -> Operations.StopAllTasksResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.StopAllTasksResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleStartTaskResponse(response: Client.APIResponse) throws -> Operations.StartTaskResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 202, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.StartTaskResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleStopTaskResponse(response: Client.APIResponse) throws -> Operations.StopTaskResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400, 404].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.StopTaskResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
103
Sources/Plexswift/internal/api/_HubsAPI.swift
Normal file
103
Sources/Plexswift/internal/api/_HubsAPI.swift
Normal file
@@ -0,0 +1,103 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _HubsAPI: HubsAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func getGlobalHubs(request: Operations.GetGlobalHubsRequest) async throws -> Response<Operations.GetGlobalHubsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetGlobalHubsRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetGlobalHubsResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getLibraryHubs(request: Operations.GetLibraryHubsRequest) async throws -> Response<Operations.GetLibraryHubsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetLibraryHubsRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetLibraryHubsResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureGetGlobalHubsRequest(with configuration: URLRequestConfiguration, request: Operations.GetGlobalHubsRequest) throws {
|
||||
configuration.path = "/hubs"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetLibraryHubsRequest(with configuration: URLRequestConfiguration, request: Operations.GetLibraryHubsRequest) throws {
|
||||
configuration.path = "/hubs/sections/{sectionId}"
|
||||
configuration.method = .get
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleGetGlobalHubsResponse(response: Client.APIResponse) throws -> Operations.GetGlobalHubsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetGlobalHubsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetGlobalHubsHubsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetLibraryHubsResponse(response: Client.APIResponse) throws -> Operations.GetLibraryHubsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetLibraryHubsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetLibraryHubsHubsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
435
Sources/Plexswift/internal/api/_LibraryAPI.swift
Normal file
435
Sources/Plexswift/internal/api/_LibraryAPI.swift
Normal file
@@ -0,0 +1,435 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _LibraryAPI: LibraryAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func getFileHash(request: Operations.GetFileHashRequest) async throws -> Response<Operations.GetFileHashResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetFileHashRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetFileHashResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getRecentlyAdded() async throws -> Response<Operations.GetRecentlyAddedResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetRecentlyAddedRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetRecentlyAddedResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getLibraries() async throws -> Response<Operations.GetLibrariesResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetLibrariesRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetLibrariesResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getLibrary(request: Operations.GetLibraryRequest) async throws -> Response<Operations.GetLibraryResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetLibraryRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetLibraryResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func deleteLibrary(request: Operations.DeleteLibraryRequest) async throws -> Response<Operations.DeleteLibraryResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureDeleteLibraryRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleDeleteLibraryResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getLibraryItems(request: Operations.GetLibraryItemsRequest) async throws -> Response<Operations.GetLibraryItemsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetLibraryItemsRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetLibraryItemsResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func refreshLibrary(request: Operations.RefreshLibraryRequest) async throws -> Response<Operations.RefreshLibraryResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureRefreshLibraryRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleRefreshLibraryResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func searchLibrary(request: Operations.SearchLibraryRequest) async throws -> Response<Operations.SearchLibraryResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureSearchLibraryRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleSearchLibraryResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getMetadata(request: Operations.GetMetadataRequest) async throws -> Response<Operations.GetMetadataResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetMetadataRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetMetadataResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getMetadataChildren(request: Operations.GetMetadataChildrenRequest) async throws -> Response<Operations.GetMetadataChildrenResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetMetadataChildrenRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetMetadataChildrenResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getOnDeck() async throws -> Response<Operations.GetOnDeckResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetOnDeckRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetOnDeckResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureGetFileHashRequest(with configuration: URLRequestConfiguration, request: Operations.GetFileHashRequest) throws {
|
||||
configuration.path = "/library/hashes"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetRecentlyAddedRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/library/recentlyAdded"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetLibrariesRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/library/sections"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetLibraryRequest(with configuration: URLRequestConfiguration, request: Operations.GetLibraryRequest) throws {
|
||||
configuration.path = "/library/sections/{sectionId}"
|
||||
configuration.method = .get
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureDeleteLibraryRequest(with configuration: URLRequestConfiguration, request: Operations.DeleteLibraryRequest) throws {
|
||||
configuration.path = "/library/sections/{sectionId}"
|
||||
configuration.method = .delete
|
||||
configuration.pathParameterSerializable = request
|
||||
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
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureSearchLibraryRequest(with configuration: URLRequestConfiguration, request: Operations.SearchLibraryRequest) throws {
|
||||
configuration.path = "/library/sections/{sectionId}/search"
|
||||
configuration.method = .get
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetMetadataRequest(with configuration: URLRequestConfiguration, request: Operations.GetMetadataRequest) throws {
|
||||
configuration.path = "/library/metadata/{ratingKey}"
|
||||
configuration.method = .get
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetMetadataChildrenRequest(with configuration: URLRequestConfiguration, request: Operations.GetMetadataChildrenRequest) throws {
|
||||
configuration.path = "/library/metadata/{ratingKey}/children"
|
||||
configuration.method = .get
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetOnDeckRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/library/onDeck"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleGetFileHashResponse(response: Client.APIResponse) throws -> Operations.GetFileHashResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.GetFileHashResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetRecentlyAddedResponse(response: Client.APIResponse) throws -> Operations.GetRecentlyAddedResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetRecentlyAddedResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetRecentlyAddedLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetLibrariesResponse(response: Client.APIResponse) throws -> Operations.GetLibrariesResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetLibrariesResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetLibrariesLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetLibraryResponse(response: Client.APIResponse) throws -> Operations.GetLibraryResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetLibraryLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleDeleteLibraryResponse(response: Client.APIResponse) throws -> Operations.DeleteLibraryResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.DeleteLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.RefreshLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleSearchLibraryResponse(response: Client.APIResponse) throws -> Operations.SearchLibraryResponse {
|
||||
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.SearchLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetMetadataResponse(response: Client.APIResponse) throws -> Operations.GetMetadataResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetMetadataResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetMetadataLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetMetadataChildrenResponse(response: Client.APIResponse) throws -> Operations.GetMetadataChildrenResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetMetadataChildrenResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetMetadataChildrenLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetOnDeckResponse(response: Client.APIResponse) throws -> Operations.GetOnDeckResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetOnDeckResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetOnDeckLibraryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
123
Sources/Plexswift/internal/api/_LogAPI.swift
Normal file
123
Sources/Plexswift/internal/api/_LogAPI.swift
Normal file
@@ -0,0 +1,123 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _LogAPI: LogAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func logLine(request: Operations.LogLineRequest) async throws -> Response<Operations.LogLineResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureLogLineRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleLogLineResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func logMultiLine(request: String) async throws -> Response<Operations.LogMultiLineResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureLogMultiLineRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleLogMultiLineResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func enablePaperTrail() async throws -> Response<Operations.EnablePaperTrailResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureEnablePaperTrailRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleEnablePaperTrailResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureLogLineRequest(with configuration: URLRequestConfiguration, request: Operations.LogLineRequest) throws {
|
||||
configuration.path = "/log"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureLogMultiLineRequest(with configuration: URLRequestConfiguration, request: String) throws {
|
||||
configuration.path = "/log"
|
||||
configuration.method = .post
|
||||
configuration.contentType = "text/plain"
|
||||
configuration.body = request.data(using: .utf8)
|
||||
if configuration.body == nil {
|
||||
throw SerializationError.missingRequiredRequestBody
|
||||
}
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureEnablePaperTrailRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/log/networked"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleLogLineResponse(response: Client.APIResponse) throws -> Operations.LogLineResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.LogLineResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleLogMultiLineResponse(response: Client.APIResponse) throws -> Operations.LogMultiLineResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.LogMultiLineResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleEnablePaperTrailResponse(response: Client.APIResponse) throws -> Operations.EnablePaperTrailResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400, 403].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.EnablePaperTrailResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
120
Sources/Plexswift/internal/api/_MediaAPI.swift
Normal file
120
Sources/Plexswift/internal/api/_MediaAPI.swift
Normal file
@@ -0,0 +1,120 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _MediaAPI: MediaAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func markPlayed(request: Operations.MarkPlayedRequest) async throws -> Response<Operations.MarkPlayedResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureMarkPlayedRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleMarkPlayedResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func markUnplayed(request: Operations.MarkUnplayedRequest) async throws -> Response<Operations.MarkUnplayedResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureMarkUnplayedRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleMarkUnplayedResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func updatePlayProgress(request: Operations.UpdatePlayProgressRequest) async throws -> Response<Operations.UpdatePlayProgressResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureUpdatePlayProgressRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleUpdatePlayProgressResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureMarkPlayedRequest(with configuration: URLRequestConfiguration, request: Operations.MarkPlayedRequest) throws {
|
||||
configuration.path = "/:/scrobble"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureMarkUnplayedRequest(with configuration: URLRequestConfiguration, request: Operations.MarkUnplayedRequest) throws {
|
||||
configuration.path = "/:/unscrobble"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureUpdatePlayProgressRequest(with configuration: URLRequestConfiguration, request: Operations.UpdatePlayProgressRequest) throws {
|
||||
configuration.path = "/:/progress"
|
||||
configuration.method = .post
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleMarkPlayedResponse(response: Client.APIResponse) throws -> Operations.MarkPlayedResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.MarkPlayedResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleMarkUnplayedResponse(response: Client.APIResponse) throws -> Operations.MarkUnplayedResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.MarkUnplayedResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleUpdatePlayProgressResponse(response: Client.APIResponse) throws -> Operations.UpdatePlayProgressResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.UpdatePlayProgressResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
367
Sources/Plexswift/internal/api/_PlaylistsAPI.swift
Normal file
367
Sources/Plexswift/internal/api/_PlaylistsAPI.swift
Normal file
@@ -0,0 +1,367 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _PlaylistsAPI: PlaylistsAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func createPlaylist(request: Operations.CreatePlaylistRequest) async throws -> Response<Operations.CreatePlaylistResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureCreatePlaylistRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleCreatePlaylistResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getPlaylists(request: Operations.GetPlaylistsRequest) async throws -> Response<Operations.GetPlaylistsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetPlaylistsRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetPlaylistsResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getPlaylist(request: Operations.GetPlaylistRequest) async throws -> Response<Operations.GetPlaylistResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetPlaylistRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetPlaylistResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func deletePlaylist(request: Operations.DeletePlaylistRequest) async throws -> Response<Operations.DeletePlaylistResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureDeletePlaylistRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleDeletePlaylistResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func updatePlaylist(request: Operations.UpdatePlaylistRequest) async throws -> Response<Operations.UpdatePlaylistResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureUpdatePlaylistRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleUpdatePlaylistResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getPlaylistContents(request: Operations.GetPlaylistContentsRequest) async throws -> Response<Operations.GetPlaylistContentsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetPlaylistContentsRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetPlaylistContentsResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func clearPlaylistContents(request: Operations.ClearPlaylistContentsRequest) async throws -> Response<Operations.ClearPlaylistContentsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureClearPlaylistContentsRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleClearPlaylistContentsResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func addPlaylistContents(request: Operations.AddPlaylistContentsRequest) async throws -> Response<Operations.AddPlaylistContentsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureAddPlaylistContentsRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleAddPlaylistContentsResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func uploadPlaylist(request: Operations.UploadPlaylistRequest) async throws -> Response<Operations.UploadPlaylistResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureUploadPlaylistRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleUploadPlaylistResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureCreatePlaylistRequest(with configuration: URLRequestConfiguration, request: Operations.CreatePlaylistRequest) throws {
|
||||
configuration.path = "/playlists"
|
||||
configuration.method = .post
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetPlaylistsRequest(with configuration: URLRequestConfiguration, request: Operations.GetPlaylistsRequest) throws {
|
||||
configuration.path = "/playlists"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetPlaylistRequest(with configuration: URLRequestConfiguration, request: Operations.GetPlaylistRequest) throws {
|
||||
configuration.path = "/playlists/{playlistID}"
|
||||
configuration.method = .get
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureDeletePlaylistRequest(with configuration: URLRequestConfiguration, request: Operations.DeletePlaylistRequest) throws {
|
||||
configuration.path = "/playlists/{playlistID}"
|
||||
configuration.method = .delete
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureUpdatePlaylistRequest(with configuration: URLRequestConfiguration, request: Operations.UpdatePlaylistRequest) throws {
|
||||
configuration.path = "/playlists/{playlistID}"
|
||||
configuration.method = .put
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetPlaylistContentsRequest(with configuration: URLRequestConfiguration, request: Operations.GetPlaylistContentsRequest) throws {
|
||||
configuration.path = "/playlists/{playlistID}/items"
|
||||
configuration.method = .get
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureClearPlaylistContentsRequest(with configuration: URLRequestConfiguration, request: Operations.ClearPlaylistContentsRequest) throws {
|
||||
configuration.path = "/playlists/{playlistID}/items"
|
||||
configuration.method = .delete
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureAddPlaylistContentsRequest(with configuration: URLRequestConfiguration, request: Operations.AddPlaylistContentsRequest) throws {
|
||||
configuration.path = "/playlists/{playlistID}/items"
|
||||
configuration.method = .put
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureUploadPlaylistRequest(with configuration: URLRequestConfiguration, request: Operations.UploadPlaylistRequest) throws {
|
||||
configuration.path = "/playlists/upload"
|
||||
configuration.method = .post
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleCreatePlaylistResponse(response: Client.APIResponse) throws -> Operations.CreatePlaylistResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.CreatePlaylistResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.CreatePlaylistPlaylistsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetPlaylistsResponse(response: Client.APIResponse) throws -> Operations.GetPlaylistsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetPlaylistsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetPlaylistsPlaylistsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetPlaylistResponse(response: Client.APIResponse) throws -> Operations.GetPlaylistResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetPlaylistResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetPlaylistPlaylistsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleDeletePlaylistResponse(response: Client.APIResponse) throws -> Operations.DeletePlaylistResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.DeletePlaylistResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleUpdatePlaylistResponse(response: Client.APIResponse) throws -> Operations.UpdatePlaylistResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.UpdatePlaylistResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetPlaylistContentsResponse(response: Client.APIResponse) throws -> Operations.GetPlaylistContentsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetPlaylistContentsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetPlaylistContentsPlaylistsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleClearPlaylistContentsResponse(response: Client.APIResponse) throws -> Operations.ClearPlaylistContentsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.ClearPlaylistContentsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleAddPlaylistContentsResponse(response: Client.APIResponse) throws -> Operations.AddPlaylistContentsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.AddPlaylistContentsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.AddPlaylistContentsPlaylistsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleUploadPlaylistResponse(response: Client.APIResponse) throws -> Operations.UploadPlaylistResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.UploadPlaylistResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
128
Sources/Plexswift/internal/api/_SearchAPI.swift
Normal file
128
Sources/Plexswift/internal/api/_SearchAPI.swift
Normal file
@@ -0,0 +1,128 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _SearchAPI: SearchAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func performSearch(request: Operations.PerformSearchRequest) async throws -> Response<Operations.PerformSearchResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configurePerformSearchRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handlePerformSearchResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func performVoiceSearch(request: Operations.PerformVoiceSearchRequest) async throws -> Response<Operations.PerformVoiceSearchResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configurePerformVoiceSearchRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handlePerformVoiceSearchResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getSearchResults(request: Operations.GetSearchResultsRequest) async throws -> Response<Operations.GetSearchResultsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetSearchResultsRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetSearchResultsResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configurePerformSearchRequest(with configuration: URLRequestConfiguration, request: Operations.PerformSearchRequest) throws {
|
||||
configuration.path = "/hubs/search"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configurePerformVoiceSearchRequest(with configuration: URLRequestConfiguration, request: Operations.PerformVoiceSearchRequest) throws {
|
||||
configuration.path = "/hubs/search/voice"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetSearchResultsRequest(with configuration: URLRequestConfiguration, request: Operations.GetSearchResultsRequest) throws {
|
||||
configuration.path = "/search"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handlePerformSearchResponse(response: Client.APIResponse) throws -> Operations.PerformSearchResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.PerformSearchResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handlePerformVoiceSearchResponse(response: Client.APIResponse) throws -> Operations.PerformVoiceSearchResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.PerformVoiceSearchResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetSearchResultsResponse(response: Client.APIResponse) throws -> Operations.GetSearchResultsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetSearchResultsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetSearchResultsSearchResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
86
Sources/Plexswift/internal/api/_SecurityAPI.swift
Normal file
86
Sources/Plexswift/internal/api/_SecurityAPI.swift
Normal file
@@ -0,0 +1,86 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _SecurityAPI: SecurityAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func getTransientToken(request: Operations.GetTransientTokenRequest) async throws -> Response<Operations.GetTransientTokenResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetTransientTokenRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetTransientTokenResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getSourceConnectionInformation(request: Operations.GetSourceConnectionInformationRequest) async throws -> Response<Operations.GetSourceConnectionInformationResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetSourceConnectionInformationRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetSourceConnectionInformationResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureGetTransientTokenRequest(with configuration: URLRequestConfiguration, request: Operations.GetTransientTokenRequest) throws {
|
||||
configuration.path = "/security/token"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetSourceConnectionInformationRequest(with configuration: URLRequestConfiguration, request: Operations.GetSourceConnectionInformationRequest) throws {
|
||||
configuration.path = "/security/resources"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleGetTransientTokenResponse(response: Client.APIResponse) throws -> Operations.GetTransientTokenResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.GetTransientTokenResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetSourceConnectionInformationResponse(response: Client.APIResponse) throws -> Operations.GetSourceConnectionInformationResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.GetSourceConnectionInformationResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
339
Sources/Plexswift/internal/api/_ServerAPI.swift
Normal file
339
Sources/Plexswift/internal/api/_ServerAPI.swift
Normal file
@@ -0,0 +1,339 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _ServerAPI: ServerAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func getServerCapabilities() async throws -> Response<Operations.GetServerCapabilitiesResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetServerCapabilitiesRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetServerCapabilitiesResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getServerPreferences() async throws -> Response<Operations.GetServerPreferencesResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetServerPreferencesRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetServerPreferencesResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getAvailableClients() async throws -> Response<Operations.GetAvailableClientsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetAvailableClientsRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetAvailableClientsResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getDevices() async throws -> Response<Operations.GetDevicesResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetDevicesRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetDevicesResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getServerIdentity() async throws -> Response<Operations.GetServerIdentityResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetServerIdentityRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetServerIdentityResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getMyPlexAccount() async throws -> Response<Operations.GetMyPlexAccountResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetMyPlexAccountRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetMyPlexAccountResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getResizedPhoto(request: Operations.GetResizedPhotoRequest) async throws -> Response<Operations.GetResizedPhotoResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetResizedPhotoRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetResizedPhotoResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getServerList() async throws -> Response<Operations.GetServerListResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetServerListRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetServerListResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureGetServerCapabilitiesRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetServerPreferencesRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/:/prefs"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetAvailableClientsRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/clients"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetDevicesRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/devices"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetServerIdentityRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/identity"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetMyPlexAccountRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/myplex/account"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetResizedPhotoRequest(with configuration: URLRequestConfiguration, request: Operations.GetResizedPhotoRequest) throws {
|
||||
configuration.path = "/photo/:/transcode"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetServerListRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/servers"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleGetServerCapabilitiesResponse(response: Client.APIResponse) throws -> Operations.GetServerCapabilitiesResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetServerCapabilitiesResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetServerCapabilitiesServerResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetServerPreferencesResponse(response: Client.APIResponse) throws -> Operations.GetServerPreferencesResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetServerPreferencesResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetServerPreferencesServerResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetAvailableClientsResponse(response: Client.APIResponse) throws -> Operations.GetAvailableClientsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetAvailableClientsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetAvailableClientsServerResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetDevicesResponse(response: Client.APIResponse) throws -> Operations.GetDevicesResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetDevicesResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetDevicesServerResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetServerIdentityResponse(response: Client.APIResponse) throws -> Operations.GetServerIdentityResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetServerIdentityResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetServerIdentityServerResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetMyPlexAccountResponse(response: Client.APIResponse) throws -> Operations.GetMyPlexAccountResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetMyPlexAccountResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetMyPlexAccountServerResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetResizedPhotoResponse(response: Client.APIResponse) throws -> Operations.GetResizedPhotoResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.GetResizedPhotoResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetServerListResponse(response: Client.APIResponse) throws -> Operations.GetServerListResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetServerListResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetServerListServerResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
175
Sources/Plexswift/internal/api/_SessionsAPI.swift
Normal file
175
Sources/Plexswift/internal/api/_SessionsAPI.swift
Normal file
@@ -0,0 +1,175 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _SessionsAPI: SessionsAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func getSessions() async throws -> Response<Operations.GetSessionsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetSessionsRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetSessionsResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getSessionHistory() async throws -> Response<Operations.GetSessionHistoryResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetSessionHistoryRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetSessionHistoryResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getTranscodeSessions() async throws -> Response<Operations.GetTranscodeSessionsResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetTranscodeSessionsRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetTranscodeSessionsResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func stopTranscodeSession(request: Operations.StopTranscodeSessionRequest) async throws -> Response<Operations.StopTranscodeSessionResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureStopTranscodeSessionRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleStopTranscodeSessionResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureGetSessionsRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/status/sessions"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetSessionHistoryRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/status/sessions/history/all"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetTranscodeSessionsRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/transcode/sessions"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureStopTranscodeSessionRequest(with configuration: URLRequestConfiguration, request: Operations.StopTranscodeSessionRequest) throws {
|
||||
configuration.path = "/transcode/sessions/{sessionKey}"
|
||||
configuration.method = .delete
|
||||
configuration.pathParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleGetSessionsResponse(response: Client.APIResponse) throws -> Operations.GetSessionsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetSessionsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetSessionsSessionsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetSessionHistoryResponse(response: Client.APIResponse) throws -> Operations.GetSessionHistoryResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetSessionHistoryResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetSessionHistorySessionsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetTranscodeSessionsResponse(response: Client.APIResponse) throws -> Operations.GetTranscodeSessionsResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetTranscodeSessionsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetTranscodeSessionsSessionsResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleStopTranscodeSessionResponse(response: Client.APIResponse) throws -> Operations.StopTranscodeSessionResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [204, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.StopTranscodeSessionResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
127
Sources/Plexswift/internal/api/_UpdaterAPI.swift
Normal file
127
Sources/Plexswift/internal/api/_UpdaterAPI.swift
Normal file
@@ -0,0 +1,127 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _UpdaterAPI: UpdaterAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func getUpdateStatus() async throws -> Response<Operations.GetUpdateStatusResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetUpdateStatusRequest(with: configuration)
|
||||
},
|
||||
handleResponse: handleGetUpdateStatusResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func checkForUpdates(request: Operations.CheckForUpdatesRequest) async throws -> Response<Operations.CheckForUpdatesResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureCheckForUpdatesRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleCheckForUpdatesResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func applyUpdates(request: Operations.ApplyUpdatesRequest) async throws -> Response<Operations.ApplyUpdatesResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureApplyUpdatesRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleApplyUpdatesResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureGetUpdateStatusRequest(with configuration: URLRequestConfiguration) throws {
|
||||
configuration.path = "/updater/status"
|
||||
configuration.method = .get
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureCheckForUpdatesRequest(with configuration: URLRequestConfiguration, request: Operations.CheckForUpdatesRequest) throws {
|
||||
configuration.path = "/updater/check"
|
||||
configuration.method = .put
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureApplyUpdatesRequest(with configuration: URLRequestConfiguration, request: Operations.ApplyUpdatesRequest) throws {
|
||||
configuration.path = "/updater/apply"
|
||||
configuration.method = .put
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleGetUpdateStatusResponse(response: Client.APIResponse) throws -> Operations.GetUpdateStatusResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if httpResponse.statusCode == 200 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .twoHundredApplicationJsonObject(try JSONDecoder().decode(Operations.GetUpdateStatusResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
} else if httpResponse.statusCode == 400 {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .fourHundredAndOneApplicationJsonObject(try JSONDecoder().decode(Operations.GetUpdateStatusUpdaterResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleCheckForUpdatesResponse(response: Client.APIResponse) throws -> Operations.CheckForUpdatesResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.CheckForUpdatesResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleApplyUpdatesResponse(response: Client.APIResponse) throws -> Operations.ApplyUpdatesResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400, 500].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.ApplyUpdatesResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
86
Sources/Plexswift/internal/api/_VideoAPI.swift
Normal file
86
Sources/Plexswift/internal/api/_VideoAPI.swift
Normal file
@@ -0,0 +1,86 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
class _VideoAPI: VideoAPI {
|
||||
private let client: Client
|
||||
|
||||
init(client: Client) {
|
||||
self.client = client
|
||||
}
|
||||
|
||||
public func startUniversalTranscode(request: Operations.StartUniversalTranscodeRequest) async throws -> Response<Operations.StartUniversalTranscodeResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureStartUniversalTranscodeRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleStartUniversalTranscodeResponse
|
||||
)
|
||||
}
|
||||
|
||||
public func getTimeline(request: Operations.GetTimelineRequest) async throws -> Response<Operations.GetTimelineResponse> {
|
||||
return try await client.makeRequest(
|
||||
configureRequest: { configuration in
|
||||
try configureGetTimelineRequest(with: configuration, request: request)
|
||||
},
|
||||
handleResponse: handleGetTimelineResponse
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - Request Configuration
|
||||
|
||||
private func configureStartUniversalTranscodeRequest(with configuration: URLRequestConfiguration, request: Operations.StartUniversalTranscodeRequest) throws {
|
||||
configuration.path = "/video/:/transcode/universal/start.mpd"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
private func configureGetTimelineRequest(with configuration: URLRequestConfiguration, request: Operations.GetTimelineRequest) throws {
|
||||
configuration.path = "/:/timeline"
|
||||
configuration.method = .get
|
||||
configuration.queryParameterSerializable = request
|
||||
configuration.telemetryHeader = .userAgent
|
||||
}
|
||||
|
||||
// MARK: - Response Handlers
|
||||
|
||||
private func handleStartUniversalTranscodeResponse(response: Client.APIResponse) throws -> Operations.StartUniversalTranscodeResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.StartUniversalTranscodeResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
private func handleGetTimelineResponse(response: Client.APIResponse) throws -> Operations.GetTimelineResponse {
|
||||
let httpResponse = response.httpResponse
|
||||
|
||||
if [200, 400].contains(httpResponse.statusCode) {
|
||||
return .empty
|
||||
} else if httpResponse.statusCode == 401 {
|
||||
if httpResponse.contentType.matchContentType(pattern: "application/json"), let data = response.data {
|
||||
do {
|
||||
return .object(try JSONDecoder().decode(Operations.GetTimelineResponseBody.self, from: data))
|
||||
} catch {
|
||||
throw ResponseHandlerError.failedToDecodeJSON(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return .empty
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.AddPlaylistContentsRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .path:
|
||||
return try serializePathParameterSerializable(self, with: format)
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.AddPlaylistContentsRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.AddPlaylistContentsRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"playlistID": try playlistIDWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.AddPlaylistContentsRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: uri, named: "uri", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
if playQueueID != nil {
|
||||
try builder.addQueryParameters(from: playQueueIDWrapper, named: "playQueueID", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.ApplyUpdatesRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.ApplyUpdatesRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.ApplyUpdatesRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: skip, named: "skip", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: tonight, named: "tonight", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.CancelServerActivitiesRequest: 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.CancelServerActivitiesRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.CancelServerActivitiesRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"activityUUID": try activityUUID.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.CheckForUpdatesRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.CheckForUpdatesRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.CheckForUpdatesRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: download, named: "download", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.ClearPlaylistContentsRequest: 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.ClearPlaylistContentsRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.ClearPlaylistContentsRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"playlistID": try playlistIDWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.CreatePlaylistRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.CreatePlaylistRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.CreatePlaylistRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: smart, named: "smart", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: title, named: "title", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: type, named: "type", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: uri, named: "uri", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
if playQueueID != nil {
|
||||
try builder.addQueryParameters(from: playQueueIDWrapper, named: "playQueueID", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.DeleteLibraryRequest: 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.DeleteLibraryRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.DeleteLibraryRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"sectionId": try sectionIdWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.DeletePlaylistRequest: 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.DeletePlaylistRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.DeletePlaylistRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"playlistID": try playlistIDWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.Download: 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))]
|
||||
}
|
||||
}
|
||||
14
Sources/Plexswift/internal/models/Force+Serialization.swift
Normal file
14
Sources/Plexswift/internal/models/Force+Serialization.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.Force: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetFileHashRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetFileHashRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetFileHashRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: url, named: "url", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
if type != nil {
|
||||
try builder.addQueryParameters(from: typeWrapper, named: "type", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetGlobalHubsRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetGlobalHubsRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetGlobalHubsRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
if count != nil {
|
||||
try builder.addQueryParameters(from: countWrapper, named: "count", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
try builder.addQueryParameters(from: onlyTransient, named: "onlyTransient", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetLibraryHubsRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .path:
|
||||
return try serializePathParameterSerializable(self, with: format)
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetLibraryHubsRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryHubsRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"sectionId": try sectionIdWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryHubsRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
if count != nil {
|
||||
try builder.addQueryParameters(from: countWrapper, named: "count", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
try builder.addQueryParameters(from: onlyTransient, named: "onlyTransient", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetLibraryItemsRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .path:
|
||||
return try serializePathParameterSerializable(self, with: format)
|
||||
case .query, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetLibraryItemsRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryItemsRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"sectionId": try sectionId.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
"tag": try tag.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetLibraryRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .path:
|
||||
return try serializePathParameterSerializable(self, with: format)
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetLibraryRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"sectionId": try sectionIdWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetLibraryRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: includeDetails, named: "includeDetails", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetMetadataChildrenRequest: 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.GetMetadataChildrenRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetMetadataChildrenRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"ratingKey": try ratingKeyWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetMetadataRequest: 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.GetMetadataRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetMetadataRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"ratingKey": try ratingKeyWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetPlaylistContentsRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .path:
|
||||
return try serializePathParameterSerializable(self, with: format)
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetPlaylistContentsRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetPlaylistContentsRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"playlistID": try playlistIDWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetPlaylistContentsRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: typeWrapper, named: "type", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetPlaylistRequest: 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.GetPlaylistRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetPlaylistRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"playlistID": try playlistIDWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetPlaylistsRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetPlaylistsRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetPlaylistsRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: playlistType, named: "playlistType", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: smart, named: "smart", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetResizedPhotoRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetResizedPhotoRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetResizedPhotoRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: blurWrapper, named: "blur", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: heightWrapper, named: "height", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: minSize, named: "minSize", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: opacity, named: "opacity", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: upscale, named: "upscale", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: url, named: "url", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: widthWrapper, named: "width", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetSearchResultsRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetSearchResultsRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetSearchResultsRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: query, named: "query", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetSourceConnectionInformationRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetSourceConnectionInformationRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetSourceConnectionInformationRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: source, named: "source", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetTimelineRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetTimelineRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetTimelineRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: context, named: "context", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: durationWrapper, named: "duration", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: hasMDEWrapper, named: "hasMDE", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: key, named: "key", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: playBackTimeWrapper, named: "playBackTime", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: playQueueItemIDWrapper, named: "playQueueItemID", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: ratingKeyWrapper, named: "ratingKey", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: rowWrapper, named: "row", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: state, named: "state", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: timeWrapper, named: "time", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetTransientTokenQueryParamType: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.GetTransientTokenRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.GetTransientTokenRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.GetTransientTokenRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: scope, named: "scope", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: type, named: "type", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.IncludeDetails: 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))]
|
||||
}
|
||||
}
|
||||
14
Sources/Plexswift/internal/models/Level+Serialization.swift
Normal file
14
Sources/Plexswift/internal/models/Level+Serialization.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.Level: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.LogLineRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.LogLineRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.LogLineRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: level, named: "level", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: message, named: "message", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: source, named: "source", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.MarkPlayedRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.MarkPlayedRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.MarkPlayedRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: keyWrapper, named: "key", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.MarkUnplayedRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.MarkUnplayedRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.MarkUnplayedRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: keyWrapper, named: "key", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.MinSize: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.OnlyTransient: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.PathParamTaskName: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.PerformSearchRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.PerformSearchRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.PerformSearchRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: query, named: "query", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
if limit != nil {
|
||||
try builder.addQueryParameters(from: limitWrapper, named: "limit", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
if sectionId != nil {
|
||||
try builder.addQueryParameters(from: sectionIdWrapper, named: "sectionId", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.PerformVoiceSearchRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.PerformVoiceSearchRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.PerformVoiceSearchRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: query, named: "query", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
if limit != nil {
|
||||
try builder.addQueryParameters(from: limitWrapper, named: "limit", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
if sectionId != nil {
|
||||
try builder.addQueryParameters(from: sectionIdWrapper, named: "sectionId", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.PlaylistType: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.QueryParamOnlyTransient: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.QueryParamSmart: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.QueryParamType: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.RefreshLibraryRequest: 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.RefreshLibraryRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.RefreshLibraryRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"sectionId": try sectionIdWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
14
Sources/Plexswift/internal/models/Scope+Serialization.swift
Normal file
14
Sources/Plexswift/internal/models/Scope+Serialization.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.Scope: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.SearchLibraryRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .path:
|
||||
return try serializePathParameterSerializable(self, with: format)
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.SearchLibraryRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.SearchLibraryRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"sectionId": try sectionId.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.SearchLibraryRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: type, named: "type", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Shared.Security: SecurityParameterProviding {
|
||||
func securityParameters() -> [SecurityParameter] {
|
||||
switch self {
|
||||
case .accessToken(let value):
|
||||
return [.apiKey(name: "X-Plex-Token", value: value)]
|
||||
}
|
||||
}
|
||||
}
|
||||
14
Sources/Plexswift/internal/models/Skip+Serialization.swift
Normal file
14
Sources/Plexswift/internal/models/Skip+Serialization.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.Skip: 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))]
|
||||
}
|
||||
}
|
||||
14
Sources/Plexswift/internal/models/Smart+Serialization.swift
Normal file
14
Sources/Plexswift/internal/models/Smart+Serialization.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.Smart: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.StartTaskRequest: 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.StartTaskRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.StartTaskRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"taskName": try taskName.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.StartUniversalTranscodeRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.StartUniversalTranscodeRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.StartUniversalTranscodeRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: hasMDEWrapper, named: "hasMDE", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: mediaIndexWrapper, named: "mediaIndex", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: partIndexWrapper, named: "partIndex", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: path, named: "path", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: `protocol`, named: "protocol", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
if addDebugOverlay != nil {
|
||||
try builder.addQueryParameters(from: addDebugOverlayWrapper, named: "addDebugOverlay", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
if audioBoost != nil {
|
||||
try builder.addQueryParameters(from: audioBoostWrapper, named: "audioBoost", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
if autoAdjustQuality != nil {
|
||||
try builder.addQueryParameters(from: autoAdjustQualityWrapper, named: "autoAdjustQuality", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
if directPlay != nil {
|
||||
try builder.addQueryParameters(from: directPlayWrapper, named: "directPlay", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
if directStream != nil {
|
||||
try builder.addQueryParameters(from: directStreamWrapper, named: "directStream", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
if fastSeek != nil {
|
||||
try builder.addQueryParameters(from: fastSeekWrapper, named: "fastSeek", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
try builder.addQueryParameters(from: location, named: "location", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
if mediaBufferSize != nil {
|
||||
try builder.addQueryParameters(from: mediaBufferSizeWrapper, named: "mediaBufferSize", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
try builder.addQueryParameters(from: session, named: "session", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: subtites, named: "subtites", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
if subtitleSize != nil {
|
||||
try builder.addQueryParameters(from: subtitleSizeWrapper, named: "subtitleSize", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
}
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
14
Sources/Plexswift/internal/models/State+Serialization.swift
Normal file
14
Sources/Plexswift/internal/models/State+Serialization.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.State: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.StopTaskRequest: 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.StopTaskRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.StopTaskRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"taskName": try taskName.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.StopTranscodeSessionRequest: 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.StopTranscodeSessionRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.StopTranscodeSessionRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"sessionKey": try sessionKey.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
14
Sources/Plexswift/internal/models/Tag+Serialization.swift
Normal file
14
Sources/Plexswift/internal/models/Tag+Serialization.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.Tag: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.TaskName: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.Tonight: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.TypeModel: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
return try rawValue.serialize(with: format)
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return [QueryParameter(key: [], serialized: try serialize(with: format))]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.UpdatePlayProgressRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.UpdatePlayProgressRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.UpdatePlayProgressRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: key, named: "key", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: state, named: "state", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: timeWrapper, named: "time", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.UpdatePlaylistRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .path:
|
||||
return try serializePathParameterSerializable(self, with: format)
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.UpdatePlaylistRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.UpdatePlaylistRequest: PathParameterSerializable {
|
||||
func serializedPathParameters(formatOverride: SerializableFormat?) throws -> [String: String] {
|
||||
return [
|
||||
"playlistID": try playlistIDWrapper.serialize(with: formatOverride ?? .path(explode: false)),
|
||||
].compactMapValues { $0 }
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.UpdatePlaylistRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: summary, named: "summary", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: title, named: "title", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.UploadPlaylistRequest: Serializable {
|
||||
func serialize(with format: SerializableFormat) throws -> String {
|
||||
switch format {
|
||||
case .query:
|
||||
return try serializeQueryParameterSerializable(self, with: format)
|
||||
case .path, .header, .multipart, .form:
|
||||
throw SerializationError.invalidSerializationParameter(type: "Operations.UploadPlaylistRequest", format: format.formatDescription)
|
||||
}
|
||||
}
|
||||
|
||||
func serializeQueryParameters(with format: SerializableFormat) throws -> [QueryParameter] {
|
||||
return try serializedQueryParameters(with: nil, formatOverride: format)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.UploadPlaylistRequest: QueryParameterSerializable {
|
||||
func serializedQueryParameters(with parameterDefaults: ParameterDefaults?, formatOverride: SerializableFormat?) throws -> [QueryParameter] {
|
||||
let builder = QueryParameterBuilder()
|
||||
try builder.addQueryParameters(from: force, named: "force", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
try builder.addQueryParameters(from: path, named: "path", format: formatOverride ?? .query(style: .form, explode: true), parameterDefaults: parameterDefaults)
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations.Upscale: 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))]
|
||||
}
|
||||
}
|
||||
13
Sources/Plexswift/models/ModelScopes.swift
Normal file
13
Sources/Plexswift/models/ModelScopes.swift
Normal file
@@ -0,0 +1,13 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
/// Top-level type used for grouping operations models
|
||||
///
|
||||
/// > Note: You do not need to interact with this type directly.
|
||||
public enum Operations {}
|
||||
|
||||
/// Top-level type used for grouping shared models
|
||||
///
|
||||
/// > Note: You do not need to interact with this type directly.
|
||||
public enum Shared {}
|
||||
83
Sources/Plexswift/models/operations/Activity.swift
Normal file
83
Sources/Plexswift/models/operations/Activity.swift
Normal file
@@ -0,0 +1,83 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct Activity {
|
||||
public let cancellable: Bool?
|
||||
public let context: Operations.Context?
|
||||
@DecimalSerialized
|
||||
public private(set) var progress: Double?
|
||||
public let subtitle: String?
|
||||
public let title: String?
|
||||
public let type: String?
|
||||
@DecimalSerialized
|
||||
public private(set) var userID: Double?
|
||||
public let uuid: String?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(cancellable: Bool? = nil, context: Operations.Context? = nil, progress: Double? = nil, subtitle: String? = nil, title: String? = nil, type: String? = nil, userID: Double? = nil, uuid: String? = nil) {
|
||||
self.cancellable = cancellable
|
||||
self.context = context
|
||||
self._progress = DecimalSerialized<Double?>(wrappedValue: progress)
|
||||
self.subtitle = subtitle
|
||||
self.title = title
|
||||
self.type = type
|
||||
self._userID = DecimalSerialized<Double?>(wrappedValue: userID)
|
||||
self.uuid = uuid
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.Activity: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case cancellable
|
||||
case context = "Context"
|
||||
case progress
|
||||
case subtitle
|
||||
case title
|
||||
case type
|
||||
case userID
|
||||
case uuid
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
self.cancellable = try container.decodeIfPresent(Bool.self, forKey: .cancellable)
|
||||
self.context = try container.decodeIfPresent(Operations.Context.self, forKey: .context)
|
||||
self._progress = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .progress) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
self.subtitle = try container.decodeIfPresent(String.self, forKey: .subtitle)
|
||||
self.title = try container.decodeIfPresent(String.self, forKey: .title)
|
||||
self.type = try container.decodeIfPresent(String.self, forKey: .type)
|
||||
self._userID = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .userID) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
self.uuid = try container.decodeIfPresent(String.self, forKey: .uuid)
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
try container.encodeIfPresent(self.cancellable, forKey: .cancellable)
|
||||
try container.encodeIfPresent(self.context, forKey: .context)
|
||||
if self.progress != nil {
|
||||
try container.encode(self._progress, forKey: .progress)
|
||||
}
|
||||
try container.encodeIfPresent(self.subtitle, forKey: .subtitle)
|
||||
try container.encodeIfPresent(self.title, forKey: .title)
|
||||
try container.encodeIfPresent(self.type, forKey: .type)
|
||||
if self.userID != nil {
|
||||
try container.encode(self._userID, forKey: .userID)
|
||||
}
|
||||
try container.encodeIfPresent(self.uuid, forKey: .uuid)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.Activity {
|
||||
var userIDWrapper: DecimalSerialized<Double?> {
|
||||
return _userID
|
||||
}
|
||||
var progressWrapper: DecimalSerialized<Double?> {
|
||||
return _progress
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct AddPlaylistContentsErrors {
|
||||
@DecimalSerialized
|
||||
public private(set) var code: Double?
|
||||
public let message: String?
|
||||
@DecimalSerialized
|
||||
public private(set) var status: Double?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(code: Double? = nil, message: String? = nil, status: Double? = nil) {
|
||||
self._code = DecimalSerialized<Double?>(wrappedValue: code)
|
||||
self.message = message
|
||||
self._status = DecimalSerialized<Double?>(wrappedValue: status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.AddPlaylistContentsErrors: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case code
|
||||
case message
|
||||
case status
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
self._code = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .code) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
self.message = try container.decodeIfPresent(String.self, forKey: .message)
|
||||
self._status = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .status) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
if self.code != nil {
|
||||
try container.encode(self._code, forKey: .code)
|
||||
}
|
||||
try container.encodeIfPresent(self.message, forKey: .message)
|
||||
if self.status != nil {
|
||||
try container.encode(self._status, forKey: .status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.AddPlaylistContentsErrors {
|
||||
var codeWrapper: DecimalSerialized<Double?> {
|
||||
return _code
|
||||
}
|
||||
var statusWrapper: DecimalSerialized<Double?> {
|
||||
return _status
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct AddPlaylistContentsMediaContainer {
|
||||
public let leafCountAdded: Int?
|
||||
public let leafCountRequested: Int?
|
||||
public let metadata: [Operations.AddPlaylistContentsMetadata]?
|
||||
public let size: Int?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(leafCountAdded: Int? = nil, leafCountRequested: Int? = nil, metadata: [Operations.AddPlaylistContentsMetadata]? = nil, size: Int? = nil) {
|
||||
self.leafCountAdded = leafCountAdded
|
||||
self.leafCountRequested = leafCountRequested
|
||||
self.metadata = metadata
|
||||
self.size = size
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.AddPlaylistContentsMediaContainer: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case leafCountAdded
|
||||
case leafCountRequested
|
||||
case metadata = "Metadata"
|
||||
case size
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct AddPlaylistContentsMetadata {
|
||||
public let addedAt: Int?
|
||||
public let composite: String?
|
||||
public let duration: Int?
|
||||
public let guid: String?
|
||||
public let key: String?
|
||||
public let leafCount: Int?
|
||||
public let playlistType: String?
|
||||
public let ratingKey: String?
|
||||
public let smart: Bool?
|
||||
public let summary: String?
|
||||
public let title: String?
|
||||
public let type: String?
|
||||
public let updatedAt: Int?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(addedAt: Int? = nil, composite: String? = nil, duration: Int? = nil, guid: String? = nil, key: String? = nil, leafCount: Int? = nil, playlistType: String? = nil, ratingKey: String? = nil, smart: Bool? = nil, summary: String? = nil, title: String? = nil, type: String? = nil, updatedAt: Int? = nil) {
|
||||
self.addedAt = addedAt
|
||||
self.composite = composite
|
||||
self.duration = duration
|
||||
self.guid = guid
|
||||
self.key = key
|
||||
self.leafCount = leafCount
|
||||
self.playlistType = playlistType
|
||||
self.ratingKey = ratingKey
|
||||
self.smart = smart
|
||||
self.summary = summary
|
||||
self.title = title
|
||||
self.type = type
|
||||
self.updatedAt = updatedAt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.AddPlaylistContentsMetadata: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case addedAt
|
||||
case composite
|
||||
case duration
|
||||
case guid
|
||||
case key
|
||||
case leafCount
|
||||
case playlistType
|
||||
case ratingKey
|
||||
case smart
|
||||
case summary
|
||||
case title
|
||||
case type
|
||||
case updatedAt
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
public struct AddPlaylistContentsPlaylistsResponseBody {
|
||||
public let errors: [Operations.AddPlaylistContentsErrors]?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(errors: [Operations.AddPlaylistContentsErrors]? = nil) {
|
||||
self.errors = errors
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.AddPlaylistContentsPlaylistsResponseBody: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case errors
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct AddPlaylistContentsRequest: APIValue {
|
||||
/// the ID of the playlist
|
||||
@DecimalSerialized
|
||||
public private(set) var playlistID: Double
|
||||
/// the content URI for the playlist
|
||||
public let uri: String
|
||||
/// the play queue to add to a playlist
|
||||
@DecimalSerialized
|
||||
public private(set) var playQueueID: Double?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
/// - Parameter playlistID: the ID of the playlist
|
||||
/// - Parameter uri: the content URI for the playlist
|
||||
/// - Parameter playQueueID: the play queue to add to a playlist
|
||||
///
|
||||
public init(playlistID: Double, uri: String, playQueueID: Double? = nil) {
|
||||
self._playlistID = DecimalSerialized<Double>(wrappedValue: playlistID)
|
||||
self.uri = uri
|
||||
self._playQueueID = DecimalSerialized<Double?>(wrappedValue: playQueueID)
|
||||
}
|
||||
}
|
||||
}
|
||||
extension Operations.AddPlaylistContentsRequest {
|
||||
var playlistIDWrapper: DecimalSerialized<Double> {
|
||||
return _playlistID
|
||||
}
|
||||
var playQueueIDWrapper: DecimalSerialized<Double?> {
|
||||
return _playQueueID
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A response model
|
||||
public enum AddPlaylistContentsResponse {
|
||||
case empty
|
||||
case twoHundredApplicationJsonObject(Operations.AddPlaylistContentsResponseBody)
|
||||
case fourHundredAndOneApplicationJsonObject(Operations.AddPlaylistContentsPlaylistsResponseBody)
|
||||
|
||||
var isEmpty: Bool {
|
||||
if case .empty = self {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
public func twoHundredApplicationJsonObject() throws -> Operations.AddPlaylistContentsResponseBody {
|
||||
guard case .twoHundredApplicationJsonObject(let value) = self else {
|
||||
throw PlexswiftError.missingResponseData
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
public func fourHundredAndOneApplicationJsonObject() throws -> Operations.AddPlaylistContentsPlaylistsResponseBody {
|
||||
guard case .fourHundredAndOneApplicationJsonObject(let value) = self else {
|
||||
throw PlexswiftError.missingResponseData
|
||||
}
|
||||
return value
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// Playlist Updated
|
||||
public struct AddPlaylistContentsResponseBody {
|
||||
public let mediaContainer: Operations.AddPlaylistContentsMediaContainer?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(mediaContainer: Operations.AddPlaylistContentsMediaContainer? = nil) {
|
||||
self.mediaContainer = mediaContainer
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.AddPlaylistContentsResponseBody: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case mediaContainer = "MediaContainer"
|
||||
}
|
||||
}
|
||||
|
||||
58
Sources/Plexswift/models/operations/ApplyUpdatesErrors.swift
Normal file
58
Sources/Plexswift/models/operations/ApplyUpdatesErrors.swift
Normal file
@@ -0,0 +1,58 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct ApplyUpdatesErrors {
|
||||
@DecimalSerialized
|
||||
public private(set) var code: Double?
|
||||
public let message: String?
|
||||
@DecimalSerialized
|
||||
public private(set) var status: Double?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(code: Double? = nil, message: String? = nil, status: Double? = nil) {
|
||||
self._code = DecimalSerialized<Double?>(wrappedValue: code)
|
||||
self.message = message
|
||||
self._status = DecimalSerialized<Double?>(wrappedValue: status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.ApplyUpdatesErrors: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case code
|
||||
case message
|
||||
case status
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
self._code = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .code) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
self.message = try container.decodeIfPresent(String.self, forKey: .message)
|
||||
self._status = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .status) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
if self.code != nil {
|
||||
try container.encode(self._code, forKey: .code)
|
||||
}
|
||||
try container.encodeIfPresent(self.message, forKey: .message)
|
||||
if self.status != nil {
|
||||
try container.encode(self._status, forKey: .status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.ApplyUpdatesErrors {
|
||||
var codeWrapper: DecimalSerialized<Double?> {
|
||||
return _code
|
||||
}
|
||||
var statusWrapper: DecimalSerialized<Double?> {
|
||||
return _status
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct ApplyUpdatesRequest: APIValue {
|
||||
/// Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`.
|
||||
public let skip: Operations.Skip?
|
||||
/// Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install
|
||||
public let tonight: Operations.Tonight?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
/// - Parameter skip: Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`.
|
||||
/// - Parameter tonight: Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install
|
||||
///
|
||||
public init(skip: Operations.Skip? = nil, tonight: Operations.Tonight? = nil) {
|
||||
self.skip = skip
|
||||
self.tonight = tonight
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A response model
|
||||
public enum ApplyUpdatesResponse {
|
||||
case empty
|
||||
case object(Operations.ApplyUpdatesResponseBody)
|
||||
|
||||
var isEmpty: Bool {
|
||||
if case .empty = self {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
public func object() throws -> Operations.ApplyUpdatesResponseBody {
|
||||
guard case .object(let value) = self else {
|
||||
throw PlexswiftError.missingResponseData
|
||||
}
|
||||
return value
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
public struct ApplyUpdatesResponseBody {
|
||||
public let errors: [Operations.ApplyUpdatesErrors]?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(errors: [Operations.ApplyUpdatesErrors]? = nil) {
|
||||
self.errors = errors
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.ApplyUpdatesResponseBody: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case errors
|
||||
}
|
||||
}
|
||||
|
||||
67
Sources/Plexswift/models/operations/ButlerTask.swift
Normal file
67
Sources/Plexswift/models/operations/ButlerTask.swift
Normal file
@@ -0,0 +1,67 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct ButlerTask {
|
||||
public let description: String?
|
||||
public let enabled: Bool?
|
||||
@DecimalSerialized
|
||||
public private(set) var interval: Double?
|
||||
public let name: String?
|
||||
public let scheduleRandomized: Bool?
|
||||
public let title: String?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(description: String? = nil, enabled: Bool? = nil, interval: Double? = nil, name: String? = nil, scheduleRandomized: Bool? = nil, title: String? = nil) {
|
||||
self.description = description
|
||||
self.enabled = enabled
|
||||
self._interval = DecimalSerialized<Double?>(wrappedValue: interval)
|
||||
self.name = name
|
||||
self.scheduleRandomized = scheduleRandomized
|
||||
self.title = title
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.ButlerTask: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case description
|
||||
case enabled
|
||||
case interval
|
||||
case name
|
||||
case scheduleRandomized
|
||||
case title
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
self.description = try container.decodeIfPresent(String.self, forKey: .description)
|
||||
self.enabled = try container.decodeIfPresent(Bool.self, forKey: .enabled)
|
||||
self._interval = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .interval) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
self.name = try container.decodeIfPresent(String.self, forKey: .name)
|
||||
self.scheduleRandomized = try container.decodeIfPresent(Bool.self, forKey: .scheduleRandomized)
|
||||
self.title = try container.decodeIfPresent(String.self, forKey: .title)
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
try container.encodeIfPresent(self.description, forKey: .description)
|
||||
try container.encodeIfPresent(self.enabled, forKey: .enabled)
|
||||
if self.interval != nil {
|
||||
try container.encode(self._interval, forKey: .interval)
|
||||
}
|
||||
try container.encodeIfPresent(self.name, forKey: .name)
|
||||
try container.encodeIfPresent(self.scheduleRandomized, forKey: .scheduleRandomized)
|
||||
try container.encodeIfPresent(self.title, forKey: .title)
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.ButlerTask {
|
||||
var intervalWrapper: DecimalSerialized<Double?> {
|
||||
return _interval
|
||||
}
|
||||
}
|
||||
24
Sources/Plexswift/models/operations/ButlerTasks.swift
Normal file
24
Sources/Plexswift/models/operations/ButlerTasks.swift
Normal file
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct ButlerTasks {
|
||||
public let butlerTask: [Operations.ButlerTask]?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(butlerTask: [Operations.ButlerTask]? = nil) {
|
||||
self.butlerTask = butlerTask
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.ButlerTasks: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case butlerTask = "ButlerTask"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct CancelServerActivitiesErrors {
|
||||
@DecimalSerialized
|
||||
public private(set) var code: Double?
|
||||
public let message: String?
|
||||
@DecimalSerialized
|
||||
public private(set) var status: Double?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(code: Double? = nil, message: String? = nil, status: Double? = nil) {
|
||||
self._code = DecimalSerialized<Double?>(wrappedValue: code)
|
||||
self.message = message
|
||||
self._status = DecimalSerialized<Double?>(wrappedValue: status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.CancelServerActivitiesErrors: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case code
|
||||
case message
|
||||
case status
|
||||
}
|
||||
|
||||
public init(from decoder: Decoder) throws {
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
self._code = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .code) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
self.message = try container.decodeIfPresent(String.self, forKey: .message)
|
||||
self._status = try container.decodeIfPresent(DecimalSerialized<Double?>.self, forKey: .status) ?? DecimalSerialized<Double?>(wrappedValue: nil)
|
||||
}
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
if self.code != nil {
|
||||
try container.encode(self._code, forKey: .code)
|
||||
}
|
||||
try container.encodeIfPresent(self.message, forKey: .message)
|
||||
if self.status != nil {
|
||||
try container.encode(self._status, forKey: .status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.CancelServerActivitiesErrors {
|
||||
var codeWrapper: DecimalSerialized<Double?> {
|
||||
return _code
|
||||
}
|
||||
var statusWrapper: DecimalSerialized<Double?> {
|
||||
return _status
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A model object
|
||||
public struct CancelServerActivitiesRequest: APIValue {
|
||||
/// The UUID of the activity to cancel.
|
||||
public let activityUUID: String
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
/// - Parameter activityUUID: The UUID of the activity to cancel.
|
||||
///
|
||||
public init(activityUUID: String) {
|
||||
self.activityUUID = activityUUID
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// A response model
|
||||
public enum CancelServerActivitiesResponse {
|
||||
case empty
|
||||
case object(Operations.CancelServerActivitiesResponseBody)
|
||||
|
||||
var isEmpty: Bool {
|
||||
if case .empty = self {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
public func object() throws -> Operations.CancelServerActivitiesResponseBody {
|
||||
guard case .object(let value) = self else {
|
||||
throw PlexswiftError.missingResponseData
|
||||
}
|
||||
return value
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Operations {
|
||||
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
public struct CancelServerActivitiesResponseBody {
|
||||
public let errors: [Operations.CancelServerActivitiesErrors]?
|
||||
|
||||
/// Creates an object with the specified parameters
|
||||
///
|
||||
///
|
||||
public init(errors: [Operations.CancelServerActivitiesErrors]? = nil) {
|
||||
self.errors = errors
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Operations.CancelServerActivitiesResponseBody: Codable {
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case errors
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user