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