// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. import Foundation extension Operations { /// A model object public struct GetLibraryItemsMetadata { public let duration: Int public let guid: String public let key: String public let media: [Operations.GetLibraryItemsMedia] public let ratingKey: String public let title: String public let type: String public let year: Int public let addedAt: Int? public let art: String? @DecimalSerialized public private(set) var audienceRating: Double? public let audienceRatingImage: String? public let chapterSource: String? public let childCount: Int? public let contentRating: String? public let country: [Operations.GetLibraryItemsCountry]? public let director: [Operations.GetLibraryItemsDirector]? public let genre: [Operations.GetLibraryItemsGenre]? public let grandparentArt: String? public let grandparentGuid: String? public let grandparentKey: String? public let grandparentRatingKey: String? public let grandparentTheme: String? public let grandparentThumb: String? public let grandparentTitle: String? public let hasPremiumExtras: String? public let hasPremiumPrimaryExtra: String? public let index: Int? public let lastViewedAt: Int? public let leafCount: Int? /// The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. /// public let mediaGuid: [Operations.MediaGuid]? @DateOnly public private(set) var originallyAvailableAt: Date? public let originalTitle: String? public let parentGuid: String? public let parentIndex: Int? public let parentKey: String? public let parentRatingKey: String? public let parentStudio: String? public let parentTheme: String? public let parentThumb: String? public let parentTitle: String? public let parentYear: Int? public let primaryExtraKey: String? @DecimalSerialized public private(set) var rating: Double? public let ratingImage: String? public let role: [Operations.GetLibraryItemsRole]? public let skipCount: Int? public let studio: String? public let summary: String? public let tagline: String? public let theme: String? public let thumb: String? public let titleSort: String? public let updatedAt: Int? public let viewCount: Int? public let viewedLeafCount: Int? public let viewOffset: Int? public let writer: [Operations.GetLibraryItemsWriter]? /// Creates an object with the specified parameters /// /// - Parameter mediaGuid: The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. /// /// public init(duration: Int, guid: String, key: String, media: [Operations.GetLibraryItemsMedia], ratingKey: String, title: String, type: String, year: Int, addedAt: Int? = nil, art: String? = nil, audienceRating: Double? = nil, audienceRatingImage: String? = nil, chapterSource: String? = nil, childCount: Int? = nil, contentRating: String? = nil, country: [Operations.GetLibraryItemsCountry]? = nil, director: [Operations.GetLibraryItemsDirector]? = nil, genre: [Operations.GetLibraryItemsGenre]? = nil, grandparentArt: String? = nil, grandparentGuid: String? = nil, grandparentKey: String? = nil, grandparentRatingKey: String? = nil, grandparentTheme: String? = nil, grandparentThumb: String? = nil, grandparentTitle: String? = nil, hasPremiumExtras: String? = nil, hasPremiumPrimaryExtra: String? = nil, index: Int? = nil, lastViewedAt: Int? = nil, leafCount: Int? = nil, mediaGuid: [Operations.MediaGuid]? = nil, originallyAvailableAt: Date? = nil, originalTitle: String? = nil, parentGuid: String? = nil, parentIndex: Int? = nil, parentKey: String? = nil, parentRatingKey: String? = nil, parentStudio: String? = nil, parentTheme: String? = nil, parentThumb: String? = nil, parentTitle: String? = nil, parentYear: Int? = nil, primaryExtraKey: String? = nil, rating: Double? = nil, ratingImage: String? = nil, role: [Operations.GetLibraryItemsRole]? = nil, skipCount: Int? = nil, studio: String? = nil, summary: String? = nil, tagline: String? = nil, theme: String? = nil, thumb: String? = nil, titleSort: String? = nil, updatedAt: Int? = nil, viewCount: Int? = nil, viewedLeafCount: Int? = nil, viewOffset: Int? = nil, writer: [Operations.GetLibraryItemsWriter]? = nil) { self.duration = duration self.guid = guid self.key = key self.media = media self.ratingKey = ratingKey self.title = title self.type = type self.year = year self.addedAt = addedAt self.art = art self._audienceRating = DecimalSerialized(wrappedValue: audienceRating) self.audienceRatingImage = audienceRatingImage self.chapterSource = chapterSource self.childCount = childCount self.contentRating = contentRating self.country = country self.director = director self.genre = genre self.grandparentArt = grandparentArt self.grandparentGuid = grandparentGuid self.grandparentKey = grandparentKey self.grandparentRatingKey = grandparentRatingKey self.grandparentTheme = grandparentTheme self.grandparentThumb = grandparentThumb self.grandparentTitle = grandparentTitle self.hasPremiumExtras = hasPremiumExtras self.hasPremiumPrimaryExtra = hasPremiumPrimaryExtra self.index = index self.lastViewedAt = lastViewedAt self.leafCount = leafCount self.mediaGuid = mediaGuid self._originallyAvailableAt = DateOnly(wrappedValue: originallyAvailableAt) self.originalTitle = originalTitle self.parentGuid = parentGuid self.parentIndex = parentIndex self.parentKey = parentKey self.parentRatingKey = parentRatingKey self.parentStudio = parentStudio self.parentTheme = parentTheme self.parentThumb = parentThumb self.parentTitle = parentTitle self.parentYear = parentYear self.primaryExtraKey = primaryExtraKey self._rating = DecimalSerialized(wrappedValue: rating) self.ratingImage = ratingImage self.role = role self.skipCount = skipCount self.studio = studio self.summary = summary self.tagline = tagline self.theme = theme self.thumb = thumb self.titleSort = titleSort self.updatedAt = updatedAt self.viewCount = viewCount self.viewedLeafCount = viewedLeafCount self.viewOffset = viewOffset self.writer = writer } }} extension Operations.GetLibraryItemsMetadata: Codable { enum CodingKeys: String, CodingKey { case duration case guid case key case media = "Media" case ratingKey case title case type case year case addedAt case art case audienceRating case audienceRatingImage case chapterSource case childCount case contentRating case country = "Country" case director = "Director" case genre = "Genre" case grandparentArt case grandparentGuid case grandparentKey case grandparentRatingKey case grandparentTheme case grandparentThumb case grandparentTitle case hasPremiumExtras case hasPremiumPrimaryExtra case index case lastViewedAt case leafCount case mediaGuid = "Guid" case originallyAvailableAt case originalTitle case parentGuid case parentIndex case parentKey case parentRatingKey case parentStudio case parentTheme case parentThumb case parentTitle case parentYear case primaryExtraKey case rating case ratingImage case role = "Role" case skipCount case studio case summary case tagline case theme case thumb case titleSort case updatedAt case viewCount case viewedLeafCount case viewOffset case writer = "Writer" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) self.duration = try container.decode(Int.self, forKey: .duration) self.guid = try container.decode(String.self, forKey: .guid) self.key = try container.decode(String.self, forKey: .key) self.media = try container.decode([Operations.GetLibraryItemsMedia].self, forKey: .media) self.ratingKey = try container.decode(String.self, forKey: .ratingKey) self.title = try container.decode(String.self, forKey: .title) self.type = try container.decode(String.self, forKey: .type) self.year = try container.decode(Int.self, forKey: .year) self.addedAt = try container.decodeIfPresent(Int.self, forKey: .addedAt) self.art = try container.decodeIfPresent(String.self, forKey: .art) self._audienceRating = try container.decodeIfPresent(DecimalSerialized.self, forKey: .audienceRating) ?? DecimalSerialized(wrappedValue: nil) self.audienceRatingImage = try container.decodeIfPresent(String.self, forKey: .audienceRatingImage) self.chapterSource = try container.decodeIfPresent(String.self, forKey: .chapterSource) self.childCount = try container.decodeIfPresent(Int.self, forKey: .childCount) self.contentRating = try container.decodeIfPresent(String.self, forKey: .contentRating) self.country = try container.decodeIfPresent([Operations.GetLibraryItemsCountry].self, forKey: .country) self.director = try container.decodeIfPresent([Operations.GetLibraryItemsDirector].self, forKey: .director) self.genre = try container.decodeIfPresent([Operations.GetLibraryItemsGenre].self, forKey: .genre) self.grandparentArt = try container.decodeIfPresent(String.self, forKey: .grandparentArt) self.grandparentGuid = try container.decodeIfPresent(String.self, forKey: .grandparentGuid) self.grandparentKey = try container.decodeIfPresent(String.self, forKey: .grandparentKey) self.grandparentRatingKey = try container.decodeIfPresent(String.self, forKey: .grandparentRatingKey) self.grandparentTheme = try container.decodeIfPresent(String.self, forKey: .grandparentTheme) self.grandparentThumb = try container.decodeIfPresent(String.self, forKey: .grandparentThumb) self.grandparentTitle = try container.decodeIfPresent(String.self, forKey: .grandparentTitle) self.hasPremiumExtras = try container.decodeIfPresent(String.self, forKey: .hasPremiumExtras) self.hasPremiumPrimaryExtra = try container.decodeIfPresent(String.self, forKey: .hasPremiumPrimaryExtra) self.index = try container.decodeIfPresent(Int.self, forKey: .index) self.lastViewedAt = try container.decodeIfPresent(Int.self, forKey: .lastViewedAt) self.leafCount = try container.decodeIfPresent(Int.self, forKey: .leafCount) self.mediaGuid = try container.decodeIfPresent([Operations.MediaGuid].self, forKey: .mediaGuid) self._originallyAvailableAt = try container.decodeIfPresent(DateOnly.self, forKey: .originallyAvailableAt) ?? DateOnly(wrappedValue: nil) self.originalTitle = try container.decodeIfPresent(String.self, forKey: .originalTitle) self.parentGuid = try container.decodeIfPresent(String.self, forKey: .parentGuid) self.parentIndex = try container.decodeIfPresent(Int.self, forKey: .parentIndex) self.parentKey = try container.decodeIfPresent(String.self, forKey: .parentKey) self.parentRatingKey = try container.decodeIfPresent(String.self, forKey: .parentRatingKey) self.parentStudio = try container.decodeIfPresent(String.self, forKey: .parentStudio) self.parentTheme = try container.decodeIfPresent(String.self, forKey: .parentTheme) self.parentThumb = try container.decodeIfPresent(String.self, forKey: .parentThumb) self.parentTitle = try container.decodeIfPresent(String.self, forKey: .parentTitle) self.parentYear = try container.decodeIfPresent(Int.self, forKey: .parentYear) self.primaryExtraKey = try container.decodeIfPresent(String.self, forKey: .primaryExtraKey) self._rating = try container.decodeIfPresent(DecimalSerialized.self, forKey: .rating) ?? DecimalSerialized(wrappedValue: nil) self.ratingImage = try container.decodeIfPresent(String.self, forKey: .ratingImage) self.role = try container.decodeIfPresent([Operations.GetLibraryItemsRole].self, forKey: .role) self.skipCount = try container.decodeIfPresent(Int.self, forKey: .skipCount) self.studio = try container.decodeIfPresent(String.self, forKey: .studio) self.summary = try container.decodeIfPresent(String.self, forKey: .summary) self.tagline = try container.decodeIfPresent(String.self, forKey: .tagline) self.theme = try container.decodeIfPresent(String.self, forKey: .theme) self.thumb = try container.decodeIfPresent(String.self, forKey: .thumb) self.titleSort = try container.decodeIfPresent(String.self, forKey: .titleSort) self.updatedAt = try container.decodeIfPresent(Int.self, forKey: .updatedAt) self.viewCount = try container.decodeIfPresent(Int.self, forKey: .viewCount) self.viewedLeafCount = try container.decodeIfPresent(Int.self, forKey: .viewedLeafCount) self.viewOffset = try container.decodeIfPresent(Int.self, forKey: .viewOffset) self.writer = try container.decodeIfPresent([Operations.GetLibraryItemsWriter].self, forKey: .writer) } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(self.duration, forKey: .duration) try container.encode(self.guid, forKey: .guid) try container.encode(self.key, forKey: .key) try container.encode(self.media, forKey: .media) try container.encode(self.ratingKey, forKey: .ratingKey) try container.encode(self.title, forKey: .title) try container.encode(self.type, forKey: .type) try container.encode(self.year, forKey: .year) try container.encodeIfPresent(self.addedAt, forKey: .addedAt) try container.encodeIfPresent(self.art, forKey: .art) if self.audienceRating != nil { try container.encode(self._audienceRating, forKey: .audienceRating) } try container.encodeIfPresent(self.audienceRatingImage, forKey: .audienceRatingImage) try container.encodeIfPresent(self.chapterSource, forKey: .chapterSource) try container.encodeIfPresent(self.childCount, forKey: .childCount) try container.encodeIfPresent(self.contentRating, forKey: .contentRating) try container.encodeIfPresent(self.country, forKey: .country) try container.encodeIfPresent(self.director, forKey: .director) try container.encodeIfPresent(self.genre, forKey: .genre) try container.encodeIfPresent(self.grandparentArt, forKey: .grandparentArt) try container.encodeIfPresent(self.grandparentGuid, forKey: .grandparentGuid) try container.encodeIfPresent(self.grandparentKey, forKey: .grandparentKey) try container.encodeIfPresent(self.grandparentRatingKey, forKey: .grandparentRatingKey) try container.encodeIfPresent(self.grandparentTheme, forKey: .grandparentTheme) try container.encodeIfPresent(self.grandparentThumb, forKey: .grandparentThumb) try container.encodeIfPresent(self.grandparentTitle, forKey: .grandparentTitle) try container.encodeIfPresent(self.hasPremiumExtras, forKey: .hasPremiumExtras) try container.encodeIfPresent(self.hasPremiumPrimaryExtra, forKey: .hasPremiumPrimaryExtra) try container.encodeIfPresent(self.index, forKey: .index) try container.encodeIfPresent(self.lastViewedAt, forKey: .lastViewedAt) try container.encodeIfPresent(self.leafCount, forKey: .leafCount) try container.encodeIfPresent(self.mediaGuid, forKey: .mediaGuid) if self.originallyAvailableAt != nil { try container.encode(self._originallyAvailableAt, forKey: .originallyAvailableAt) } try container.encodeIfPresent(self.originalTitle, forKey: .originalTitle) try container.encodeIfPresent(self.parentGuid, forKey: .parentGuid) try container.encodeIfPresent(self.parentIndex, forKey: .parentIndex) try container.encodeIfPresent(self.parentKey, forKey: .parentKey) try container.encodeIfPresent(self.parentRatingKey, forKey: .parentRatingKey) try container.encodeIfPresent(self.parentStudio, forKey: .parentStudio) try container.encodeIfPresent(self.parentTheme, forKey: .parentTheme) try container.encodeIfPresent(self.parentThumb, forKey: .parentThumb) try container.encodeIfPresent(self.parentTitle, forKey: .parentTitle) try container.encodeIfPresent(self.parentYear, forKey: .parentYear) try container.encodeIfPresent(self.primaryExtraKey, forKey: .primaryExtraKey) if self.rating != nil { try container.encode(self._rating, forKey: .rating) } try container.encodeIfPresent(self.ratingImage, forKey: .ratingImage) try container.encodeIfPresent(self.role, forKey: .role) try container.encodeIfPresent(self.skipCount, forKey: .skipCount) try container.encodeIfPresent(self.studio, forKey: .studio) try container.encodeIfPresent(self.summary, forKey: .summary) try container.encodeIfPresent(self.tagline, forKey: .tagline) try container.encodeIfPresent(self.theme, forKey: .theme) try container.encodeIfPresent(self.thumb, forKey: .thumb) try container.encodeIfPresent(self.titleSort, forKey: .titleSort) try container.encodeIfPresent(self.updatedAt, forKey: .updatedAt) try container.encodeIfPresent(self.viewCount, forKey: .viewCount) try container.encodeIfPresent(self.viewedLeafCount, forKey: .viewedLeafCount) try container.encodeIfPresent(self.viewOffset, forKey: .viewOffset) try container.encodeIfPresent(self.writer, forKey: .writer) } } extension Operations.GetLibraryItemsMetadata { var ratingWrapper: DecimalSerialized { return _rating } var audienceRatingWrapper: DecimalSerialized { return _audienceRating } var originallyAvailableAtWrapper: DateOnly { return _originallyAvailableAt } }