GBA002/Pods/SwiftyDropbox/Source/SwiftyDropbox/Shared/Generated/Paper.swift
Riley Testut 6cca0f244f Replaces frameworks with static libraries
As of iOS 13.3.1, apps installed with free developer accounts that contain embedded frameworks fail to launch. To work around this, we now link all dependencies via Cocoapods as static libraries.
2020-02-03 19:28:23 -08:00

2435 lines
107 KiB
Swift

///
/// Copyright (c) 2016 Dropbox, Inc. All rights reserved.
///
/// Auto-generated by Stone, do not modify.
///
import Foundation
/// Datatypes and serializers for the paper namespace
open class Paper {
/// The AddMember struct
open class AddMember: CustomStringConvertible {
/// Permission for the user.
public let permissionLevel: Paper.PaperDocPermissionLevel
/// User which should be added to the Paper doc. Specify only email address or Dropbox account ID.
public let member: Sharing.MemberSelector
public init(member: Sharing.MemberSelector, permissionLevel: Paper.PaperDocPermissionLevel = .edit) {
self.permissionLevel = permissionLevel
self.member = member
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(AddMemberSerializer().serialize(self)))"
}
}
open class AddMemberSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: AddMember) -> JSON {
let output = [
"member": Sharing.MemberSelectorSerializer().serialize(value.member),
"permission_level": Paper.PaperDocPermissionLevelSerializer().serialize(value.permissionLevel),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> AddMember {
switch json {
case .dictionary(let dict):
let member = Sharing.MemberSelectorSerializer().deserialize(dict["member"] ?? .null)
let permissionLevel = Paper.PaperDocPermissionLevelSerializer().deserialize(dict["permission_level"] ?? Paper.PaperDocPermissionLevelSerializer().serialize(.edit))
return AddMember(member: member, permissionLevel: permissionLevel)
default:
fatalError("Type error deserializing")
}
}
}
/// The RefPaperDoc struct
open class RefPaperDoc: CustomStringConvertible {
/// The Paper doc ID.
public let docId: String
public init(docId: String) {
stringValidator()(docId)
self.docId = docId
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(RefPaperDocSerializer().serialize(self)))"
}
}
open class RefPaperDocSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: RefPaperDoc) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> RefPaperDoc {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
return RefPaperDoc(docId: docId)
default:
fatalError("Type error deserializing")
}
}
}
/// The AddPaperDocUser struct
open class AddPaperDocUser: Paper.RefPaperDoc {
/// User which should be added to the Paper doc. Specify only email address or Dropbox account ID.
public let members: Array<Paper.AddMember>
/// A personal message that will be emailed to each successfully added member.
public let customMessage: String?
/// Clients should set this to true if no email message shall be sent to added users.
public let quiet: Bool
public init(docId: String, members: Array<Paper.AddMember>, customMessage: String? = nil, quiet: Bool = false) {
self.members = members
nullableValidator(stringValidator())(customMessage)
self.customMessage = customMessage
self.quiet = quiet
super.init(docId: docId)
}
open override var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(AddPaperDocUserSerializer().serialize(self)))"
}
}
open class AddPaperDocUserSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: AddPaperDocUser) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
"members": ArraySerializer(Paper.AddMemberSerializer()).serialize(value.members),
"custom_message": NullableSerializer(Serialization._StringSerializer).serialize(value.customMessage),
"quiet": Serialization._BoolSerializer.serialize(value.quiet),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> AddPaperDocUser {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
let members = ArraySerializer(Paper.AddMemberSerializer()).deserialize(dict["members"] ?? .null)
let customMessage = NullableSerializer(Serialization._StringSerializer).deserialize(dict["custom_message"] ?? .null)
let quiet = Serialization._BoolSerializer.deserialize(dict["quiet"] ?? .number(0))
return AddPaperDocUser(docId: docId, members: members, customMessage: customMessage, quiet: quiet)
default:
fatalError("Type error deserializing")
}
}
}
/// Per-member result for docsUsersAdd.
open class AddPaperDocUserMemberResult: CustomStringConvertible {
/// One of specified input members.
public let member: Sharing.MemberSelector
/// The outcome of the action on this member.
public let result: Paper.AddPaperDocUserResult
public init(member: Sharing.MemberSelector, result: Paper.AddPaperDocUserResult) {
self.member = member
self.result = result
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(AddPaperDocUserMemberResultSerializer().serialize(self)))"
}
}
open class AddPaperDocUserMemberResultSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: AddPaperDocUserMemberResult) -> JSON {
let output = [
"member": Sharing.MemberSelectorSerializer().serialize(value.member),
"result": Paper.AddPaperDocUserResultSerializer().serialize(value.result),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> AddPaperDocUserMemberResult {
switch json {
case .dictionary(let dict):
let member = Sharing.MemberSelectorSerializer().deserialize(dict["member"] ?? .null)
let result = Paper.AddPaperDocUserResultSerializer().deserialize(dict["result"] ?? .null)
return AddPaperDocUserMemberResult(member: member, result: result)
default:
fatalError("Type error deserializing")
}
}
}
/// The AddPaperDocUserResult union
public enum AddPaperDocUserResult: CustomStringConvertible {
/// User was successfully added to the Paper doc.
case success
/// Something unexpected happened when trying to add the user to the Paper doc.
case unknownError
/// The Paper doc can be shared only with team members.
case sharingOutsideTeamDisabled
/// The daily limit of how many users can be added to the Paper doc was reached.
case dailyLimitReached
/// Owner's permissions cannot be changed.
case userIsOwner
/// User data could not be retrieved. Clients should retry.
case failedUserDataRetrieval
/// This user already has the correct permission to the Paper doc.
case permissionAlreadyGranted
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(AddPaperDocUserResultSerializer().serialize(self)))"
}
}
open class AddPaperDocUserResultSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: AddPaperDocUserResult) -> JSON {
switch value {
case .success:
var d = [String: JSON]()
d[".tag"] = .str("success")
return .dictionary(d)
case .unknownError:
var d = [String: JSON]()
d[".tag"] = .str("unknown_error")
return .dictionary(d)
case .sharingOutsideTeamDisabled:
var d = [String: JSON]()
d[".tag"] = .str("sharing_outside_team_disabled")
return .dictionary(d)
case .dailyLimitReached:
var d = [String: JSON]()
d[".tag"] = .str("daily_limit_reached")
return .dictionary(d)
case .userIsOwner:
var d = [String: JSON]()
d[".tag"] = .str("user_is_owner")
return .dictionary(d)
case .failedUserDataRetrieval:
var d = [String: JSON]()
d[".tag"] = .str("failed_user_data_retrieval")
return .dictionary(d)
case .permissionAlreadyGranted:
var d = [String: JSON]()
d[".tag"] = .str("permission_already_granted")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> AddPaperDocUserResult {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "success":
return AddPaperDocUserResult.success
case "unknown_error":
return AddPaperDocUserResult.unknownError
case "sharing_outside_team_disabled":
return AddPaperDocUserResult.sharingOutsideTeamDisabled
case "daily_limit_reached":
return AddPaperDocUserResult.dailyLimitReached
case "user_is_owner":
return AddPaperDocUserResult.userIsOwner
case "failed_user_data_retrieval":
return AddPaperDocUserResult.failedUserDataRetrieval
case "permission_already_granted":
return AddPaperDocUserResult.permissionAlreadyGranted
case "other":
return AddPaperDocUserResult.other
default:
return AddPaperDocUserResult.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The Cursor struct
open class Cursor: CustomStringConvertible {
/// The actual cursor value.
public let value: String
/// Expiration time of value. Some cursors might have expiration time assigned. This is a UTC value after which
/// the cursor is no longer valid and the API starts returning an error. If cursor expires a new one needs to be
/// obtained and pagination needs to be restarted. Some cursors might be short-lived some cursors might be
/// long-lived. This really depends on the sorting type and order, e.g.: 1. on one hand, listing docs created by
/// the user, sorted by the created time ascending will have undefinite expiration because the results cannot
/// change while the iteration is happening. This cursor would be suitable for long term polling. 2. on the
/// other hand, listing docs sorted by the last modified time will have a very short expiration as docs do get
/// modified very often and the modified time can be changed while the iteration is happening thus altering the
/// results.
public let expiration: Date?
public init(value: String, expiration: Date? = nil) {
stringValidator()(value)
self.value = value
self.expiration = expiration
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(CursorSerializer().serialize(self)))"
}
}
open class CursorSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: Cursor) -> JSON {
let output = [
"value": Serialization._StringSerializer.serialize(value.value),
"expiration": NullableSerializer(NSDateSerializer("%Y-%m-%dT%H:%M:%SZ")).serialize(value.expiration),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> Cursor {
switch json {
case .dictionary(let dict):
let value = Serialization._StringSerializer.deserialize(dict["value"] ?? .null)
let expiration = NullableSerializer(NSDateSerializer("%Y-%m-%dT%H:%M:%SZ")).deserialize(dict["expiration"] ?? .null)
return Cursor(value: value, expiration: expiration)
default:
fatalError("Type error deserializing")
}
}
}
/// The PaperApiBaseError union
public enum PaperApiBaseError: CustomStringConvertible {
/// Your account does not have permissions to perform this action.
case insufficientPermissions
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperApiBaseErrorSerializer().serialize(self)))"
}
}
open class PaperApiBaseErrorSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperApiBaseError) -> JSON {
switch value {
case .insufficientPermissions:
var d = [String: JSON]()
d[".tag"] = .str("insufficient_permissions")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> PaperApiBaseError {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "insufficient_permissions":
return PaperApiBaseError.insufficientPermissions
case "other":
return PaperApiBaseError.other
default:
return PaperApiBaseError.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The DocLookupError union
public enum DocLookupError: CustomStringConvertible {
/// Your account does not have permissions to perform this action.
case insufficientPermissions
/// An unspecified error.
case other
/// The required doc was not found.
case docNotFound
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(DocLookupErrorSerializer().serialize(self)))"
}
}
open class DocLookupErrorSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: DocLookupError) -> JSON {
switch value {
case .insufficientPermissions:
var d = [String: JSON]()
d[".tag"] = .str("insufficient_permissions")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
case .docNotFound:
var d = [String: JSON]()
d[".tag"] = .str("doc_not_found")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> DocLookupError {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "insufficient_permissions":
return DocLookupError.insufficientPermissions
case "other":
return DocLookupError.other
case "doc_not_found":
return DocLookupError.docNotFound
default:
fatalError("Unknown tag \(tag)")
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The subscription level of a Paper doc.
public enum DocSubscriptionLevel: CustomStringConvertible {
/// No change email messages unless you're the creator.
case default_
/// Ignored: Not shown in pad lists or activity and no email message is sent.
case ignore
/// Subscribed: Shown in pad lists and activity and change email messages are sent.
case every
/// Unsubscribed: Shown in pad lists, but not in activity and no change email messages are sent.
case noEmail
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(DocSubscriptionLevelSerializer().serialize(self)))"
}
}
open class DocSubscriptionLevelSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: DocSubscriptionLevel) -> JSON {
switch value {
case .default_:
var d = [String: JSON]()
d[".tag"] = .str("default")
return .dictionary(d)
case .ignore:
var d = [String: JSON]()
d[".tag"] = .str("ignore")
return .dictionary(d)
case .every:
var d = [String: JSON]()
d[".tag"] = .str("every")
return .dictionary(d)
case .noEmail:
var d = [String: JSON]()
d[".tag"] = .str("no_email")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> DocSubscriptionLevel {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "default":
return DocSubscriptionLevel.default_
case "ignore":
return DocSubscriptionLevel.ignore
case "every":
return DocSubscriptionLevel.every
case "no_email":
return DocSubscriptionLevel.noEmail
default:
fatalError("Unknown tag \(tag)")
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The desired export format of the Paper doc.
public enum ExportFormat: CustomStringConvertible {
/// The HTML export format.
case html
/// The markdown export format.
case markdown
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ExportFormatSerializer().serialize(self)))"
}
}
open class ExportFormatSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ExportFormat) -> JSON {
switch value {
case .html:
var d = [String: JSON]()
d[".tag"] = .str("html")
return .dictionary(d)
case .markdown:
var d = [String: JSON]()
d[".tag"] = .str("markdown")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> ExportFormat {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "html":
return ExportFormat.html
case "markdown":
return ExportFormat.markdown
case "other":
return ExportFormat.other
default:
return ExportFormat.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// Data structure representing a Paper folder.
open class Folder: CustomStringConvertible {
/// Paper folder ID. This ID uniquely identifies the folder.
public let id: String
/// Paper folder name.
public let name: String
public init(id: String, name: String) {
stringValidator()(id)
self.id = id
stringValidator()(name)
self.name = name
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(FolderSerializer().serialize(self)))"
}
}
open class FolderSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: Folder) -> JSON {
let output = [
"id": Serialization._StringSerializer.serialize(value.id),
"name": Serialization._StringSerializer.serialize(value.name),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> Folder {
switch json {
case .dictionary(let dict):
let id = Serialization._StringSerializer.deserialize(dict["id"] ?? .null)
let name = Serialization._StringSerializer.deserialize(dict["name"] ?? .null)
return Folder(id: id, name: name)
default:
fatalError("Type error deserializing")
}
}
}
/// The sharing policy of a Paper folder. Note: The sharing policy of subfolders is inherited from the root folder.
public enum FolderSharingPolicyType: CustomStringConvertible {
/// Everyone in your team and anyone directly invited can access this folder.
case team
/// Only people directly invited can access this folder.
case inviteOnly
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(FolderSharingPolicyTypeSerializer().serialize(self)))"
}
}
open class FolderSharingPolicyTypeSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: FolderSharingPolicyType) -> JSON {
switch value {
case .team:
var d = [String: JSON]()
d[".tag"] = .str("team")
return .dictionary(d)
case .inviteOnly:
var d = [String: JSON]()
d[".tag"] = .str("invite_only")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> FolderSharingPolicyType {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "team":
return FolderSharingPolicyType.team
case "invite_only":
return FolderSharingPolicyType.inviteOnly
default:
fatalError("Unknown tag \(tag)")
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The subscription level of a Paper folder.
public enum FolderSubscriptionLevel: CustomStringConvertible {
/// Not shown in activity, no email messages.
case none
/// Shown in activity, no email messages.
case activityOnly
/// Shown in activity, daily email messages.
case dailyEmails
/// Shown in activity, weekly email messages.
case weeklyEmails
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(FolderSubscriptionLevelSerializer().serialize(self)))"
}
}
open class FolderSubscriptionLevelSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: FolderSubscriptionLevel) -> JSON {
switch value {
case .none:
var d = [String: JSON]()
d[".tag"] = .str("none")
return .dictionary(d)
case .activityOnly:
var d = [String: JSON]()
d[".tag"] = .str("activity_only")
return .dictionary(d)
case .dailyEmails:
var d = [String: JSON]()
d[".tag"] = .str("daily_emails")
return .dictionary(d)
case .weeklyEmails:
var d = [String: JSON]()
d[".tag"] = .str("weekly_emails")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> FolderSubscriptionLevel {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "none":
return FolderSubscriptionLevel.none
case "activity_only":
return FolderSubscriptionLevel.activityOnly
case "daily_emails":
return FolderSubscriptionLevel.dailyEmails
case "weekly_emails":
return FolderSubscriptionLevel.weeklyEmails
default:
fatalError("Unknown tag \(tag)")
}
default:
fatalError("Failed to deserialize")
}
}
}
/// Metadata about Paper folders containing the specififed Paper doc.
open class FoldersContainingPaperDoc: CustomStringConvertible {
/// The sharing policy of the folder containing the Paper doc.
public let folderSharingPolicyType: Paper.FolderSharingPolicyType?
/// The folder path. If present the first folder is the root folder.
public let folders: Array<Paper.Folder>?
public init(folderSharingPolicyType: Paper.FolderSharingPolicyType? = nil, folders: Array<Paper.Folder>? = nil) {
self.folderSharingPolicyType = folderSharingPolicyType
self.folders = folders
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(FoldersContainingPaperDocSerializer().serialize(self)))"
}
}
open class FoldersContainingPaperDocSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: FoldersContainingPaperDoc) -> JSON {
let output = [
"folder_sharing_policy_type": NullableSerializer(Paper.FolderSharingPolicyTypeSerializer()).serialize(value.folderSharingPolicyType),
"folders": NullableSerializer(ArraySerializer(Paper.FolderSerializer())).serialize(value.folders),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> FoldersContainingPaperDoc {
switch json {
case .dictionary(let dict):
let folderSharingPolicyType = NullableSerializer(Paper.FolderSharingPolicyTypeSerializer()).deserialize(dict["folder_sharing_policy_type"] ?? .null)
let folders = NullableSerializer(ArraySerializer(Paper.FolderSerializer())).deserialize(dict["folders"] ?? .null)
return FoldersContainingPaperDoc(folderSharingPolicyType: folderSharingPolicyType, folders: folders)
default:
fatalError("Type error deserializing")
}
}
}
/// The import format of the incoming data.
public enum ImportFormat: CustomStringConvertible {
/// The provided data is interpreted as standard HTML.
case html
/// The provided data is interpreted as markdown. Note: The first line of the provided document will be used as
/// the doc title.
case markdown
/// The provided data is interpreted as plain text. Note: The first line of the provided document will be used
/// as the doc title.
case plainText
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ImportFormatSerializer().serialize(self)))"
}
}
open class ImportFormatSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ImportFormat) -> JSON {
switch value {
case .html:
var d = [String: JSON]()
d[".tag"] = .str("html")
return .dictionary(d)
case .markdown:
var d = [String: JSON]()
d[".tag"] = .str("markdown")
return .dictionary(d)
case .plainText:
var d = [String: JSON]()
d[".tag"] = .str("plain_text")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> ImportFormat {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "html":
return ImportFormat.html
case "markdown":
return ImportFormat.markdown
case "plain_text":
return ImportFormat.plainText
case "other":
return ImportFormat.other
default:
return ImportFormat.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The InviteeInfoWithPermissionLevel struct
open class InviteeInfoWithPermissionLevel: CustomStringConvertible {
/// Email address invited to the Paper doc.
public let invitee: Sharing.InviteeInfo
/// Permission level for the invitee.
public let permissionLevel: Paper.PaperDocPermissionLevel
public init(invitee: Sharing.InviteeInfo, permissionLevel: Paper.PaperDocPermissionLevel) {
self.invitee = invitee
self.permissionLevel = permissionLevel
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(InviteeInfoWithPermissionLevelSerializer().serialize(self)))"
}
}
open class InviteeInfoWithPermissionLevelSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: InviteeInfoWithPermissionLevel) -> JSON {
let output = [
"invitee": Sharing.InviteeInfoSerializer().serialize(value.invitee),
"permission_level": Paper.PaperDocPermissionLevelSerializer().serialize(value.permissionLevel),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> InviteeInfoWithPermissionLevel {
switch json {
case .dictionary(let dict):
let invitee = Sharing.InviteeInfoSerializer().deserialize(dict["invitee"] ?? .null)
let permissionLevel = Paper.PaperDocPermissionLevelSerializer().deserialize(dict["permission_level"] ?? .null)
return InviteeInfoWithPermissionLevel(invitee: invitee, permissionLevel: permissionLevel)
default:
fatalError("Type error deserializing")
}
}
}
/// The ListDocsCursorError union
public enum ListDocsCursorError: CustomStringConvertible {
/// An unspecified error.
case cursorError(Paper.PaperApiCursorError)
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListDocsCursorErrorSerializer().serialize(self)))"
}
}
open class ListDocsCursorErrorSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListDocsCursorError) -> JSON {
switch value {
case .cursorError(let arg):
var d = ["cursor_error": Paper.PaperApiCursorErrorSerializer().serialize(arg)]
d[".tag"] = .str("cursor_error")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> ListDocsCursorError {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "cursor_error":
let v = Paper.PaperApiCursorErrorSerializer().deserialize(d["cursor_error"] ?? .null)
return ListDocsCursorError.cursorError(v)
case "other":
return ListDocsCursorError.other
default:
return ListDocsCursorError.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The ListPaperDocsArgs struct
open class ListPaperDocsArgs: CustomStringConvertible {
/// Allows user to specify how the Paper docs should be filtered.
public let filterBy: Paper.ListPaperDocsFilterBy
/// Allows user to specify how the Paper docs should be sorted.
public let sortBy: Paper.ListPaperDocsSortBy
/// Allows user to specify the sort order of the result.
public let sortOrder: Paper.ListPaperDocsSortOrder
/// Size limit per batch. The maximum number of docs that can be retrieved per batch is 1000. Higher value
/// results in invalid arguments error.
public let limit: Int32
public init(filterBy: Paper.ListPaperDocsFilterBy = .docsAccessed, sortBy: Paper.ListPaperDocsSortBy = .accessed, sortOrder: Paper.ListPaperDocsSortOrder = .ascending, limit: Int32 = 1000) {
self.filterBy = filterBy
self.sortBy = sortBy
self.sortOrder = sortOrder
comparableValidator(minValue: 1, maxValue: 1000)(limit)
self.limit = limit
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListPaperDocsArgsSerializer().serialize(self)))"
}
}
open class ListPaperDocsArgsSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListPaperDocsArgs) -> JSON {
let output = [
"filter_by": Paper.ListPaperDocsFilterBySerializer().serialize(value.filterBy),
"sort_by": Paper.ListPaperDocsSortBySerializer().serialize(value.sortBy),
"sort_order": Paper.ListPaperDocsSortOrderSerializer().serialize(value.sortOrder),
"limit": Serialization._Int32Serializer.serialize(value.limit),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> ListPaperDocsArgs {
switch json {
case .dictionary(let dict):
let filterBy = Paper.ListPaperDocsFilterBySerializer().deserialize(dict["filter_by"] ?? Paper.ListPaperDocsFilterBySerializer().serialize(.docsAccessed))
let sortBy = Paper.ListPaperDocsSortBySerializer().deserialize(dict["sort_by"] ?? Paper.ListPaperDocsSortBySerializer().serialize(.accessed))
let sortOrder = Paper.ListPaperDocsSortOrderSerializer().deserialize(dict["sort_order"] ?? Paper.ListPaperDocsSortOrderSerializer().serialize(.ascending))
let limit = Serialization._Int32Serializer.deserialize(dict["limit"] ?? .number(1000))
return ListPaperDocsArgs(filterBy: filterBy, sortBy: sortBy, sortOrder: sortOrder, limit: limit)
default:
fatalError("Type error deserializing")
}
}
}
/// The ListPaperDocsContinueArgs struct
open class ListPaperDocsContinueArgs: CustomStringConvertible {
/// The cursor obtained from docsList or docsListContinue. Allows for pagination.
public let cursor: String
public init(cursor: String) {
stringValidator()(cursor)
self.cursor = cursor
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListPaperDocsContinueArgsSerializer().serialize(self)))"
}
}
open class ListPaperDocsContinueArgsSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListPaperDocsContinueArgs) -> JSON {
let output = [
"cursor": Serialization._StringSerializer.serialize(value.cursor),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> ListPaperDocsContinueArgs {
switch json {
case .dictionary(let dict):
let cursor = Serialization._StringSerializer.deserialize(dict["cursor"] ?? .null)
return ListPaperDocsContinueArgs(cursor: cursor)
default:
fatalError("Type error deserializing")
}
}
}
/// The ListPaperDocsFilterBy union
public enum ListPaperDocsFilterBy: CustomStringConvertible {
/// Fetches all Paper doc IDs that the user has ever accessed.
case docsAccessed
/// Fetches only the Paper doc IDs that the user has created.
case docsCreated
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListPaperDocsFilterBySerializer().serialize(self)))"
}
}
open class ListPaperDocsFilterBySerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListPaperDocsFilterBy) -> JSON {
switch value {
case .docsAccessed:
var d = [String: JSON]()
d[".tag"] = .str("docs_accessed")
return .dictionary(d)
case .docsCreated:
var d = [String: JSON]()
d[".tag"] = .str("docs_created")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> ListPaperDocsFilterBy {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "docs_accessed":
return ListPaperDocsFilterBy.docsAccessed
case "docs_created":
return ListPaperDocsFilterBy.docsCreated
case "other":
return ListPaperDocsFilterBy.other
default:
return ListPaperDocsFilterBy.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The ListPaperDocsResponse struct
open class ListPaperDocsResponse: CustomStringConvertible {
/// The list of Paper doc IDs that can be used to access the given Paper docs or supplied to other API methods.
/// The list is sorted in the order specified by the initial call to docsList.
public let docIds: Array<String>
/// Pass the cursor into docsListContinue to paginate through all files. The cursor preserves all properties as
/// specified in the original call to docsList.
public let cursor: Paper.Cursor
/// Will be set to True if a subsequent call with the provided cursor to docsListContinue returns immediately
/// with some results. If set to False please allow some delay before making another call to docsListContinue.
public let hasMore: Bool
public init(docIds: Array<String>, cursor: Paper.Cursor, hasMore: Bool) {
arrayValidator(itemValidator: stringValidator())(docIds)
self.docIds = docIds
self.cursor = cursor
self.hasMore = hasMore
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListPaperDocsResponseSerializer().serialize(self)))"
}
}
open class ListPaperDocsResponseSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListPaperDocsResponse) -> JSON {
let output = [
"doc_ids": ArraySerializer(Serialization._StringSerializer).serialize(value.docIds),
"cursor": Paper.CursorSerializer().serialize(value.cursor),
"has_more": Serialization._BoolSerializer.serialize(value.hasMore),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> ListPaperDocsResponse {
switch json {
case .dictionary(let dict):
let docIds = ArraySerializer(Serialization._StringSerializer).deserialize(dict["doc_ids"] ?? .null)
let cursor = Paper.CursorSerializer().deserialize(dict["cursor"] ?? .null)
let hasMore = Serialization._BoolSerializer.deserialize(dict["has_more"] ?? .null)
return ListPaperDocsResponse(docIds: docIds, cursor: cursor, hasMore: hasMore)
default:
fatalError("Type error deserializing")
}
}
}
/// The ListPaperDocsSortBy union
public enum ListPaperDocsSortBy: CustomStringConvertible {
/// Sorts the Paper docs by the time they were last accessed.
case accessed
/// Sorts the Paper docs by the time they were last modified.
case modified
/// Sorts the Paper docs by the creation time.
case created
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListPaperDocsSortBySerializer().serialize(self)))"
}
}
open class ListPaperDocsSortBySerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListPaperDocsSortBy) -> JSON {
switch value {
case .accessed:
var d = [String: JSON]()
d[".tag"] = .str("accessed")
return .dictionary(d)
case .modified:
var d = [String: JSON]()
d[".tag"] = .str("modified")
return .dictionary(d)
case .created:
var d = [String: JSON]()
d[".tag"] = .str("created")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> ListPaperDocsSortBy {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "accessed":
return ListPaperDocsSortBy.accessed
case "modified":
return ListPaperDocsSortBy.modified
case "created":
return ListPaperDocsSortBy.created
case "other":
return ListPaperDocsSortBy.other
default:
return ListPaperDocsSortBy.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The ListPaperDocsSortOrder union
public enum ListPaperDocsSortOrder: CustomStringConvertible {
/// Sorts the search result in ascending order.
case ascending
/// Sorts the search result in descending order.
case descending
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListPaperDocsSortOrderSerializer().serialize(self)))"
}
}
open class ListPaperDocsSortOrderSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListPaperDocsSortOrder) -> JSON {
switch value {
case .ascending:
var d = [String: JSON]()
d[".tag"] = .str("ascending")
return .dictionary(d)
case .descending:
var d = [String: JSON]()
d[".tag"] = .str("descending")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> ListPaperDocsSortOrder {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "ascending":
return ListPaperDocsSortOrder.ascending
case "descending":
return ListPaperDocsSortOrder.descending
case "other":
return ListPaperDocsSortOrder.other
default:
return ListPaperDocsSortOrder.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The ListUsersCursorError union
public enum ListUsersCursorError: CustomStringConvertible {
/// Your account does not have permissions to perform this action.
case insufficientPermissions
/// An unspecified error.
case other
/// The required doc was not found.
case docNotFound
/// An unspecified error.
case cursorError(Paper.PaperApiCursorError)
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListUsersCursorErrorSerializer().serialize(self)))"
}
}
open class ListUsersCursorErrorSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListUsersCursorError) -> JSON {
switch value {
case .insufficientPermissions:
var d = [String: JSON]()
d[".tag"] = .str("insufficient_permissions")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
case .docNotFound:
var d = [String: JSON]()
d[".tag"] = .str("doc_not_found")
return .dictionary(d)
case .cursorError(let arg):
var d = ["cursor_error": Paper.PaperApiCursorErrorSerializer().serialize(arg)]
d[".tag"] = .str("cursor_error")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> ListUsersCursorError {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "insufficient_permissions":
return ListUsersCursorError.insufficientPermissions
case "other":
return ListUsersCursorError.other
case "doc_not_found":
return ListUsersCursorError.docNotFound
case "cursor_error":
let v = Paper.PaperApiCursorErrorSerializer().deserialize(d["cursor_error"] ?? .null)
return ListUsersCursorError.cursorError(v)
default:
fatalError("Unknown tag \(tag)")
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The ListUsersOnFolderArgs struct
open class ListUsersOnFolderArgs: Paper.RefPaperDoc {
/// Size limit per batch. The maximum number of users that can be retrieved per batch is 1000. Higher value
/// results in invalid arguments error.
public let limit: Int32
public init(docId: String, limit: Int32 = 1000) {
comparableValidator(minValue: 1, maxValue: 1000)(limit)
self.limit = limit
super.init(docId: docId)
}
open override var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListUsersOnFolderArgsSerializer().serialize(self)))"
}
}
open class ListUsersOnFolderArgsSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListUsersOnFolderArgs) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
"limit": Serialization._Int32Serializer.serialize(value.limit),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> ListUsersOnFolderArgs {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
let limit = Serialization._Int32Serializer.deserialize(dict["limit"] ?? .number(1000))
return ListUsersOnFolderArgs(docId: docId, limit: limit)
default:
fatalError("Type error deserializing")
}
}
}
/// The ListUsersOnFolderContinueArgs struct
open class ListUsersOnFolderContinueArgs: Paper.RefPaperDoc {
/// The cursor obtained from docsFolderUsersList or docsFolderUsersListContinue. Allows for pagination.
public let cursor: String
public init(docId: String, cursor: String) {
stringValidator()(cursor)
self.cursor = cursor
super.init(docId: docId)
}
open override var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListUsersOnFolderContinueArgsSerializer().serialize(self)))"
}
}
open class ListUsersOnFolderContinueArgsSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListUsersOnFolderContinueArgs) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
"cursor": Serialization._StringSerializer.serialize(value.cursor),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> ListUsersOnFolderContinueArgs {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
let cursor = Serialization._StringSerializer.deserialize(dict["cursor"] ?? .null)
return ListUsersOnFolderContinueArgs(docId: docId, cursor: cursor)
default:
fatalError("Type error deserializing")
}
}
}
/// The ListUsersOnFolderResponse struct
open class ListUsersOnFolderResponse: CustomStringConvertible {
/// List of email addresses that are invited on the Paper folder.
public let invitees: Array<Sharing.InviteeInfo>
/// List of users that are invited on the Paper folder.
public let users: Array<Sharing.UserInfo>
/// Pass the cursor into docsFolderUsersListContinue to paginate through all users. The cursor preserves all
/// properties as specified in the original call to docsFolderUsersList.
public let cursor: Paper.Cursor
/// Will be set to True if a subsequent call with the provided cursor to docsFolderUsersListContinue returns
/// immediately with some results. If set to False please allow some delay before making another call to
/// docsFolderUsersListContinue.
public let hasMore: Bool
public init(invitees: Array<Sharing.InviteeInfo>, users: Array<Sharing.UserInfo>, cursor: Paper.Cursor, hasMore: Bool) {
self.invitees = invitees
self.users = users
self.cursor = cursor
self.hasMore = hasMore
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListUsersOnFolderResponseSerializer().serialize(self)))"
}
}
open class ListUsersOnFolderResponseSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListUsersOnFolderResponse) -> JSON {
let output = [
"invitees": ArraySerializer(Sharing.InviteeInfoSerializer()).serialize(value.invitees),
"users": ArraySerializer(Sharing.UserInfoSerializer()).serialize(value.users),
"cursor": Paper.CursorSerializer().serialize(value.cursor),
"has_more": Serialization._BoolSerializer.serialize(value.hasMore),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> ListUsersOnFolderResponse {
switch json {
case .dictionary(let dict):
let invitees = ArraySerializer(Sharing.InviteeInfoSerializer()).deserialize(dict["invitees"] ?? .null)
let users = ArraySerializer(Sharing.UserInfoSerializer()).deserialize(dict["users"] ?? .null)
let cursor = Paper.CursorSerializer().deserialize(dict["cursor"] ?? .null)
let hasMore = Serialization._BoolSerializer.deserialize(dict["has_more"] ?? .null)
return ListUsersOnFolderResponse(invitees: invitees, users: users, cursor: cursor, hasMore: hasMore)
default:
fatalError("Type error deserializing")
}
}
}
/// The ListUsersOnPaperDocArgs struct
open class ListUsersOnPaperDocArgs: Paper.RefPaperDoc {
/// Size limit per batch. The maximum number of users that can be retrieved per batch is 1000. Higher value
/// results in invalid arguments error.
public let limit: Int32
/// Specify this attribute if you want to obtain users that have already accessed the Paper doc.
public let filterBy: Paper.UserOnPaperDocFilter
public init(docId: String, limit: Int32 = 1000, filterBy: Paper.UserOnPaperDocFilter = .shared) {
comparableValidator(minValue: 1, maxValue: 1000)(limit)
self.limit = limit
self.filterBy = filterBy
super.init(docId: docId)
}
open override var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListUsersOnPaperDocArgsSerializer().serialize(self)))"
}
}
open class ListUsersOnPaperDocArgsSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListUsersOnPaperDocArgs) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
"limit": Serialization._Int32Serializer.serialize(value.limit),
"filter_by": Paper.UserOnPaperDocFilterSerializer().serialize(value.filterBy),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> ListUsersOnPaperDocArgs {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
let limit = Serialization._Int32Serializer.deserialize(dict["limit"] ?? .number(1000))
let filterBy = Paper.UserOnPaperDocFilterSerializer().deserialize(dict["filter_by"] ?? Paper.UserOnPaperDocFilterSerializer().serialize(.shared))
return ListUsersOnPaperDocArgs(docId: docId, limit: limit, filterBy: filterBy)
default:
fatalError("Type error deserializing")
}
}
}
/// The ListUsersOnPaperDocContinueArgs struct
open class ListUsersOnPaperDocContinueArgs: Paper.RefPaperDoc {
/// The cursor obtained from docsUsersList or docsUsersListContinue. Allows for pagination.
public let cursor: String
public init(docId: String, cursor: String) {
stringValidator()(cursor)
self.cursor = cursor
super.init(docId: docId)
}
open override var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListUsersOnPaperDocContinueArgsSerializer().serialize(self)))"
}
}
open class ListUsersOnPaperDocContinueArgsSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListUsersOnPaperDocContinueArgs) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
"cursor": Serialization._StringSerializer.serialize(value.cursor),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> ListUsersOnPaperDocContinueArgs {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
let cursor = Serialization._StringSerializer.deserialize(dict["cursor"] ?? .null)
return ListUsersOnPaperDocContinueArgs(docId: docId, cursor: cursor)
default:
fatalError("Type error deserializing")
}
}
}
/// The ListUsersOnPaperDocResponse struct
open class ListUsersOnPaperDocResponse: CustomStringConvertible {
/// List of email addresses with their respective permission levels that are invited on the Paper doc.
public let invitees: Array<Paper.InviteeInfoWithPermissionLevel>
/// List of users with their respective permission levels that are invited on the Paper folder.
public let users: Array<Paper.UserInfoWithPermissionLevel>
/// The Paper doc owner. This field is populated on every single response.
public let docOwner: Sharing.UserInfo
/// Pass the cursor into docsUsersListContinue to paginate through all users. The cursor preserves all
/// properties as specified in the original call to docsUsersList.
public let cursor: Paper.Cursor
/// Will be set to True if a subsequent call with the provided cursor to docsUsersListContinue returns
/// immediately with some results. If set to False please allow some delay before making another call to
/// docsUsersListContinue.
public let hasMore: Bool
public init(invitees: Array<Paper.InviteeInfoWithPermissionLevel>, users: Array<Paper.UserInfoWithPermissionLevel>, docOwner: Sharing.UserInfo, cursor: Paper.Cursor, hasMore: Bool) {
self.invitees = invitees
self.users = users
self.docOwner = docOwner
self.cursor = cursor
self.hasMore = hasMore
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(ListUsersOnPaperDocResponseSerializer().serialize(self)))"
}
}
open class ListUsersOnPaperDocResponseSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: ListUsersOnPaperDocResponse) -> JSON {
let output = [
"invitees": ArraySerializer(Paper.InviteeInfoWithPermissionLevelSerializer()).serialize(value.invitees),
"users": ArraySerializer(Paper.UserInfoWithPermissionLevelSerializer()).serialize(value.users),
"doc_owner": Sharing.UserInfoSerializer().serialize(value.docOwner),
"cursor": Paper.CursorSerializer().serialize(value.cursor),
"has_more": Serialization._BoolSerializer.serialize(value.hasMore),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> ListUsersOnPaperDocResponse {
switch json {
case .dictionary(let dict):
let invitees = ArraySerializer(Paper.InviteeInfoWithPermissionLevelSerializer()).deserialize(dict["invitees"] ?? .null)
let users = ArraySerializer(Paper.UserInfoWithPermissionLevelSerializer()).deserialize(dict["users"] ?? .null)
let docOwner = Sharing.UserInfoSerializer().deserialize(dict["doc_owner"] ?? .null)
let cursor = Paper.CursorSerializer().deserialize(dict["cursor"] ?? .null)
let hasMore = Serialization._BoolSerializer.deserialize(dict["has_more"] ?? .null)
return ListUsersOnPaperDocResponse(invitees: invitees, users: users, docOwner: docOwner, cursor: cursor, hasMore: hasMore)
default:
fatalError("Type error deserializing")
}
}
}
/// The PaperApiCursorError union
public enum PaperApiCursorError: CustomStringConvertible {
/// The provided cursor is expired.
case expiredCursor
/// The provided cursor is invalid.
case invalidCursor
/// The provided cursor contains invalid user.
case wrongUserInCursor
/// Indicates that the cursor has been invalidated. Call the corresponding non-continue endpoint to obtain a new
/// cursor.
case reset
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperApiCursorErrorSerializer().serialize(self)))"
}
}
open class PaperApiCursorErrorSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperApiCursorError) -> JSON {
switch value {
case .expiredCursor:
var d = [String: JSON]()
d[".tag"] = .str("expired_cursor")
return .dictionary(d)
case .invalidCursor:
var d = [String: JSON]()
d[".tag"] = .str("invalid_cursor")
return .dictionary(d)
case .wrongUserInCursor:
var d = [String: JSON]()
d[".tag"] = .str("wrong_user_in_cursor")
return .dictionary(d)
case .reset:
var d = [String: JSON]()
d[".tag"] = .str("reset")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> PaperApiCursorError {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "expired_cursor":
return PaperApiCursorError.expiredCursor
case "invalid_cursor":
return PaperApiCursorError.invalidCursor
case "wrong_user_in_cursor":
return PaperApiCursorError.wrongUserInCursor
case "reset":
return PaperApiCursorError.reset
case "other":
return PaperApiCursorError.other
default:
return PaperApiCursorError.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The PaperDocCreateArgs struct
open class PaperDocCreateArgs: CustomStringConvertible {
/// The Paper folder ID where the Paper document should be created. The API user has to have write access to
/// this folder or error is thrown.
public let parentFolderId: String?
/// The format of provided data.
public let importFormat: Paper.ImportFormat
public init(importFormat: Paper.ImportFormat, parentFolderId: String? = nil) {
nullableValidator(stringValidator())(parentFolderId)
self.parentFolderId = parentFolderId
self.importFormat = importFormat
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperDocCreateArgsSerializer().serialize(self)))"
}
}
open class PaperDocCreateArgsSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperDocCreateArgs) -> JSON {
let output = [
"import_format": Paper.ImportFormatSerializer().serialize(value.importFormat),
"parent_folder_id": NullableSerializer(Serialization._StringSerializer).serialize(value.parentFolderId),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> PaperDocCreateArgs {
switch json {
case .dictionary(let dict):
let importFormat = Paper.ImportFormatSerializer().deserialize(dict["import_format"] ?? .null)
let parentFolderId = NullableSerializer(Serialization._StringSerializer).deserialize(dict["parent_folder_id"] ?? .null)
return PaperDocCreateArgs(importFormat: importFormat, parentFolderId: parentFolderId)
default:
fatalError("Type error deserializing")
}
}
}
/// The PaperDocCreateError union
public enum PaperDocCreateError: CustomStringConvertible {
/// Your account does not have permissions to perform this action.
case insufficientPermissions
/// An unspecified error.
case other
/// The provided content was malformed and cannot be imported to Paper.
case contentMalformed
/// The specified Paper folder is cannot be found.
case folderNotFound
/// The newly created Paper doc would be too large. Please split the content into multiple docs.
case docLengthExceeded
/// The imported document contains an image that is too large. The current limit is 1MB. Note: This only applies
/// to HTML with data uri.
case imageSizeExceeded
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperDocCreateErrorSerializer().serialize(self)))"
}
}
open class PaperDocCreateErrorSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperDocCreateError) -> JSON {
switch value {
case .insufficientPermissions:
var d = [String: JSON]()
d[".tag"] = .str("insufficient_permissions")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
case .contentMalformed:
var d = [String: JSON]()
d[".tag"] = .str("content_malformed")
return .dictionary(d)
case .folderNotFound:
var d = [String: JSON]()
d[".tag"] = .str("folder_not_found")
return .dictionary(d)
case .docLengthExceeded:
var d = [String: JSON]()
d[".tag"] = .str("doc_length_exceeded")
return .dictionary(d)
case .imageSizeExceeded:
var d = [String: JSON]()
d[".tag"] = .str("image_size_exceeded")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> PaperDocCreateError {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "insufficient_permissions":
return PaperDocCreateError.insufficientPermissions
case "other":
return PaperDocCreateError.other
case "content_malformed":
return PaperDocCreateError.contentMalformed
case "folder_not_found":
return PaperDocCreateError.folderNotFound
case "doc_length_exceeded":
return PaperDocCreateError.docLengthExceeded
case "image_size_exceeded":
return PaperDocCreateError.imageSizeExceeded
default:
fatalError("Unknown tag \(tag)")
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The PaperDocCreateUpdateResult struct
open class PaperDocCreateUpdateResult: CustomStringConvertible {
/// Doc ID of the newly created doc.
public let docId: String
/// The Paper doc revision. Simply an ever increasing number.
public let revision: Int64
/// The Paper doc title.
public let title: String
public init(docId: String, revision: Int64, title: String) {
stringValidator()(docId)
self.docId = docId
comparableValidator()(revision)
self.revision = revision
stringValidator()(title)
self.title = title
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperDocCreateUpdateResultSerializer().serialize(self)))"
}
}
open class PaperDocCreateUpdateResultSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperDocCreateUpdateResult) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
"revision": Serialization._Int64Serializer.serialize(value.revision),
"title": Serialization._StringSerializer.serialize(value.title),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> PaperDocCreateUpdateResult {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
let revision = Serialization._Int64Serializer.deserialize(dict["revision"] ?? .null)
let title = Serialization._StringSerializer.deserialize(dict["title"] ?? .null)
return PaperDocCreateUpdateResult(docId: docId, revision: revision, title: title)
default:
fatalError("Type error deserializing")
}
}
}
/// The PaperDocExport struct
open class PaperDocExport: Paper.RefPaperDoc {
/// (no description)
public let exportFormat: Paper.ExportFormat
public init(docId: String, exportFormat: Paper.ExportFormat) {
self.exportFormat = exportFormat
super.init(docId: docId)
}
open override var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperDocExportSerializer().serialize(self)))"
}
}
open class PaperDocExportSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperDocExport) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
"export_format": Paper.ExportFormatSerializer().serialize(value.exportFormat),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> PaperDocExport {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
let exportFormat = Paper.ExportFormatSerializer().deserialize(dict["export_format"] ?? .null)
return PaperDocExport(docId: docId, exportFormat: exportFormat)
default:
fatalError("Type error deserializing")
}
}
}
/// The PaperDocExportResult struct
open class PaperDocExportResult: CustomStringConvertible {
/// The Paper doc owner's email address.
public let owner: String
/// The Paper doc title.
public let title: String
/// The Paper doc revision. Simply an ever increasing number.
public let revision: Int64
/// MIME type of the export. This corresponds to ExportFormat specified in the request.
public let mimeType: String
public init(owner: String, title: String, revision: Int64, mimeType: String) {
stringValidator()(owner)
self.owner = owner
stringValidator()(title)
self.title = title
comparableValidator()(revision)
self.revision = revision
stringValidator()(mimeType)
self.mimeType = mimeType
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperDocExportResultSerializer().serialize(self)))"
}
}
open class PaperDocExportResultSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperDocExportResult) -> JSON {
let output = [
"owner": Serialization._StringSerializer.serialize(value.owner),
"title": Serialization._StringSerializer.serialize(value.title),
"revision": Serialization._Int64Serializer.serialize(value.revision),
"mime_type": Serialization._StringSerializer.serialize(value.mimeType),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> PaperDocExportResult {
switch json {
case .dictionary(let dict):
let owner = Serialization._StringSerializer.deserialize(dict["owner"] ?? .null)
let title = Serialization._StringSerializer.deserialize(dict["title"] ?? .null)
let revision = Serialization._Int64Serializer.deserialize(dict["revision"] ?? .null)
let mimeType = Serialization._StringSerializer.deserialize(dict["mime_type"] ?? .null)
return PaperDocExportResult(owner: owner, title: title, revision: revision, mimeType: mimeType)
default:
fatalError("Type error deserializing")
}
}
}
/// The PaperDocPermissionLevel union
public enum PaperDocPermissionLevel: CustomStringConvertible {
/// User will be granted edit permissions.
case edit
/// User will be granted view and comment permissions.
case viewAndComment
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperDocPermissionLevelSerializer().serialize(self)))"
}
}
open class PaperDocPermissionLevelSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperDocPermissionLevel) -> JSON {
switch value {
case .edit:
var d = [String: JSON]()
d[".tag"] = .str("edit")
return .dictionary(d)
case .viewAndComment:
var d = [String: JSON]()
d[".tag"] = .str("view_and_comment")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> PaperDocPermissionLevel {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "edit":
return PaperDocPermissionLevel.edit
case "view_and_comment":
return PaperDocPermissionLevel.viewAndComment
case "other":
return PaperDocPermissionLevel.other
default:
return PaperDocPermissionLevel.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The PaperDocSharingPolicy struct
open class PaperDocSharingPolicy: Paper.RefPaperDoc {
/// The default sharing policy to be set for the Paper doc.
public let sharingPolicy: Paper.SharingPolicy
public init(docId: String, sharingPolicy: Paper.SharingPolicy) {
self.sharingPolicy = sharingPolicy
super.init(docId: docId)
}
open override var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperDocSharingPolicySerializer().serialize(self)))"
}
}
open class PaperDocSharingPolicySerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperDocSharingPolicy) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
"sharing_policy": Paper.SharingPolicySerializer().serialize(value.sharingPolicy),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> PaperDocSharingPolicy {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
let sharingPolicy = Paper.SharingPolicySerializer().deserialize(dict["sharing_policy"] ?? .null)
return PaperDocSharingPolicy(docId: docId, sharingPolicy: sharingPolicy)
default:
fatalError("Type error deserializing")
}
}
}
/// The PaperDocUpdateArgs struct
open class PaperDocUpdateArgs: Paper.RefPaperDoc {
/// The policy used for the current update call.
public let docUpdatePolicy: Paper.PaperDocUpdatePolicy
/// The latest doc revision. This value must match the head revision or an error code will be returned. This is
/// to prevent colliding writes.
public let revision: Int64
/// The format of provided data.
public let importFormat: Paper.ImportFormat
public init(docId: String, docUpdatePolicy: Paper.PaperDocUpdatePolicy, revision: Int64, importFormat: Paper.ImportFormat) {
self.docUpdatePolicy = docUpdatePolicy
comparableValidator()(revision)
self.revision = revision
self.importFormat = importFormat
super.init(docId: docId)
}
open override var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperDocUpdateArgsSerializer().serialize(self)))"
}
}
open class PaperDocUpdateArgsSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperDocUpdateArgs) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
"doc_update_policy": Paper.PaperDocUpdatePolicySerializer().serialize(value.docUpdatePolicy),
"revision": Serialization._Int64Serializer.serialize(value.revision),
"import_format": Paper.ImportFormatSerializer().serialize(value.importFormat),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> PaperDocUpdateArgs {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
let docUpdatePolicy = Paper.PaperDocUpdatePolicySerializer().deserialize(dict["doc_update_policy"] ?? .null)
let revision = Serialization._Int64Serializer.deserialize(dict["revision"] ?? .null)
let importFormat = Paper.ImportFormatSerializer().deserialize(dict["import_format"] ?? .null)
return PaperDocUpdateArgs(docId: docId, docUpdatePolicy: docUpdatePolicy, revision: revision, importFormat: importFormat)
default:
fatalError("Type error deserializing")
}
}
}
/// The PaperDocUpdateError union
public enum PaperDocUpdateError: CustomStringConvertible {
/// Your account does not have permissions to perform this action.
case insufficientPermissions
/// An unspecified error.
case other
/// The required doc was not found.
case docNotFound
/// The provided content was malformed and cannot be imported to Paper.
case contentMalformed
/// The provided revision does not match the document head.
case revisionMismatch
/// The newly created Paper doc would be too large, split the content into multiple docs.
case docLengthExceeded
/// The imported document contains an image that is too large. The current limit is 1MB. Note: This only applies
/// to HTML with data uri.
case imageSizeExceeded
/// This operation is not allowed on archived Paper docs.
case docArchived
/// This operation is not allowed on deleted Paper docs.
case docDeleted
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperDocUpdateErrorSerializer().serialize(self)))"
}
}
open class PaperDocUpdateErrorSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperDocUpdateError) -> JSON {
switch value {
case .insufficientPermissions:
var d = [String: JSON]()
d[".tag"] = .str("insufficient_permissions")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
case .docNotFound:
var d = [String: JSON]()
d[".tag"] = .str("doc_not_found")
return .dictionary(d)
case .contentMalformed:
var d = [String: JSON]()
d[".tag"] = .str("content_malformed")
return .dictionary(d)
case .revisionMismatch:
var d = [String: JSON]()
d[".tag"] = .str("revision_mismatch")
return .dictionary(d)
case .docLengthExceeded:
var d = [String: JSON]()
d[".tag"] = .str("doc_length_exceeded")
return .dictionary(d)
case .imageSizeExceeded:
var d = [String: JSON]()
d[".tag"] = .str("image_size_exceeded")
return .dictionary(d)
case .docArchived:
var d = [String: JSON]()
d[".tag"] = .str("doc_archived")
return .dictionary(d)
case .docDeleted:
var d = [String: JSON]()
d[".tag"] = .str("doc_deleted")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> PaperDocUpdateError {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "insufficient_permissions":
return PaperDocUpdateError.insufficientPermissions
case "other":
return PaperDocUpdateError.other
case "doc_not_found":
return PaperDocUpdateError.docNotFound
case "content_malformed":
return PaperDocUpdateError.contentMalformed
case "revision_mismatch":
return PaperDocUpdateError.revisionMismatch
case "doc_length_exceeded":
return PaperDocUpdateError.docLengthExceeded
case "image_size_exceeded":
return PaperDocUpdateError.imageSizeExceeded
case "doc_archived":
return PaperDocUpdateError.docArchived
case "doc_deleted":
return PaperDocUpdateError.docDeleted
default:
fatalError("Unknown tag \(tag)")
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The PaperDocUpdatePolicy union
public enum PaperDocUpdatePolicy: CustomStringConvertible {
/// The content will be appended to the doc.
case append
/// The content will be prepended to the doc. Note: the doc title will not be affected.
case prepend
/// The document will be overwitten at the head with the provided content.
case overwriteAll
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(PaperDocUpdatePolicySerializer().serialize(self)))"
}
}
open class PaperDocUpdatePolicySerializer: JSONSerializer {
public init() { }
open func serialize(_ value: PaperDocUpdatePolicy) -> JSON {
switch value {
case .append:
var d = [String: JSON]()
d[".tag"] = .str("append")
return .dictionary(d)
case .prepend:
var d = [String: JSON]()
d[".tag"] = .str("prepend")
return .dictionary(d)
case .overwriteAll:
var d = [String: JSON]()
d[".tag"] = .str("overwrite_all")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> PaperDocUpdatePolicy {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "append":
return PaperDocUpdatePolicy.append
case "prepend":
return PaperDocUpdatePolicy.prepend
case "overwrite_all":
return PaperDocUpdatePolicy.overwriteAll
case "other":
return PaperDocUpdatePolicy.other
default:
return PaperDocUpdatePolicy.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The RemovePaperDocUser struct
open class RemovePaperDocUser: Paper.RefPaperDoc {
/// User which should be removed from the Paper doc. Specify only email address or Dropbox account ID.
public let member: Sharing.MemberSelector
public init(docId: String, member: Sharing.MemberSelector) {
self.member = member
super.init(docId: docId)
}
open override var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(RemovePaperDocUserSerializer().serialize(self)))"
}
}
open class RemovePaperDocUserSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: RemovePaperDocUser) -> JSON {
let output = [
"doc_id": Serialization._StringSerializer.serialize(value.docId),
"member": Sharing.MemberSelectorSerializer().serialize(value.member),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> RemovePaperDocUser {
switch json {
case .dictionary(let dict):
let docId = Serialization._StringSerializer.deserialize(dict["doc_id"] ?? .null)
let member = Sharing.MemberSelectorSerializer().deserialize(dict["member"] ?? .null)
return RemovePaperDocUser(docId: docId, member: member)
default:
fatalError("Type error deserializing")
}
}
}
/// Sharing policy of Paper doc.
open class SharingPolicy: CustomStringConvertible {
/// This value applies to the non-team members.
public let publicSharingPolicy: Paper.SharingPublicPolicyType?
/// This value applies to the team members only. The value is null for all personal accounts.
public let teamSharingPolicy: Paper.SharingTeamPolicyType?
public init(publicSharingPolicy: Paper.SharingPublicPolicyType? = nil, teamSharingPolicy: Paper.SharingTeamPolicyType? = nil) {
self.publicSharingPolicy = publicSharingPolicy
self.teamSharingPolicy = teamSharingPolicy
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(SharingPolicySerializer().serialize(self)))"
}
}
open class SharingPolicySerializer: JSONSerializer {
public init() { }
open func serialize(_ value: SharingPolicy) -> JSON {
let output = [
"public_sharing_policy": NullableSerializer(Paper.SharingPublicPolicyTypeSerializer()).serialize(value.publicSharingPolicy),
"team_sharing_policy": NullableSerializer(Paper.SharingTeamPolicyTypeSerializer()).serialize(value.teamSharingPolicy),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> SharingPolicy {
switch json {
case .dictionary(let dict):
let publicSharingPolicy = NullableSerializer(Paper.SharingPublicPolicyTypeSerializer()).deserialize(dict["public_sharing_policy"] ?? .null)
let teamSharingPolicy = NullableSerializer(Paper.SharingTeamPolicyTypeSerializer()).deserialize(dict["team_sharing_policy"] ?? .null)
return SharingPolicy(publicSharingPolicy: publicSharingPolicy, teamSharingPolicy: teamSharingPolicy)
default:
fatalError("Type error deserializing")
}
}
}
/// The sharing policy type of the Paper doc.
public enum SharingTeamPolicyType: CustomStringConvertible {
/// Users who have a link to this doc can edit it.
case peopleWithLinkCanEdit
/// Users who have a link to this doc can view and comment on it.
case peopleWithLinkCanViewAndComment
/// Users must be explicitly invited to this doc.
case inviteOnly
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(SharingTeamPolicyTypeSerializer().serialize(self)))"
}
}
open class SharingTeamPolicyTypeSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: SharingTeamPolicyType) -> JSON {
switch value {
case .peopleWithLinkCanEdit:
var d = [String: JSON]()
d[".tag"] = .str("people_with_link_can_edit")
return .dictionary(d)
case .peopleWithLinkCanViewAndComment:
var d = [String: JSON]()
d[".tag"] = .str("people_with_link_can_view_and_comment")
return .dictionary(d)
case .inviteOnly:
var d = [String: JSON]()
d[".tag"] = .str("invite_only")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> SharingTeamPolicyType {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "people_with_link_can_edit":
return SharingTeamPolicyType.peopleWithLinkCanEdit
case "people_with_link_can_view_and_comment":
return SharingTeamPolicyType.peopleWithLinkCanViewAndComment
case "invite_only":
return SharingTeamPolicyType.inviteOnly
default:
fatalError("Unknown tag \(tag)")
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The SharingPublicPolicyType union
public enum SharingPublicPolicyType: CustomStringConvertible {
/// Users who have a link to this doc can edit it.
case peopleWithLinkCanEdit
/// Users who have a link to this doc can view and comment on it.
case peopleWithLinkCanViewAndComment
/// Users must be explicitly invited to this doc.
case inviteOnly
/// Value used to indicate that doc sharing is enabled only within team.
case disabled
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(SharingPublicPolicyTypeSerializer().serialize(self)))"
}
}
open class SharingPublicPolicyTypeSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: SharingPublicPolicyType) -> JSON {
switch value {
case .peopleWithLinkCanEdit:
var d = [String: JSON]()
d[".tag"] = .str("people_with_link_can_edit")
return .dictionary(d)
case .peopleWithLinkCanViewAndComment:
var d = [String: JSON]()
d[".tag"] = .str("people_with_link_can_view_and_comment")
return .dictionary(d)
case .inviteOnly:
var d = [String: JSON]()
d[".tag"] = .str("invite_only")
return .dictionary(d)
case .disabled:
var d = [String: JSON]()
d[".tag"] = .str("disabled")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> SharingPublicPolicyType {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "people_with_link_can_edit":
return SharingPublicPolicyType.peopleWithLinkCanEdit
case "people_with_link_can_view_and_comment":
return SharingPublicPolicyType.peopleWithLinkCanViewAndComment
case "invite_only":
return SharingPublicPolicyType.inviteOnly
case "disabled":
return SharingPublicPolicyType.disabled
default:
fatalError("Unknown tag \(tag)")
}
default:
fatalError("Failed to deserialize")
}
}
}
/// The UserInfoWithPermissionLevel struct
open class UserInfoWithPermissionLevel: CustomStringConvertible {
/// User shared on the Paper doc.
public let user: Sharing.UserInfo
/// Permission level for the user.
public let permissionLevel: Paper.PaperDocPermissionLevel
public init(user: Sharing.UserInfo, permissionLevel: Paper.PaperDocPermissionLevel) {
self.user = user
self.permissionLevel = permissionLevel
}
open var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(UserInfoWithPermissionLevelSerializer().serialize(self)))"
}
}
open class UserInfoWithPermissionLevelSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: UserInfoWithPermissionLevel) -> JSON {
let output = [
"user": Sharing.UserInfoSerializer().serialize(value.user),
"permission_level": Paper.PaperDocPermissionLevelSerializer().serialize(value.permissionLevel),
]
return .dictionary(output)
}
open func deserialize(_ json: JSON) -> UserInfoWithPermissionLevel {
switch json {
case .dictionary(let dict):
let user = Sharing.UserInfoSerializer().deserialize(dict["user"] ?? .null)
let permissionLevel = Paper.PaperDocPermissionLevelSerializer().deserialize(dict["permission_level"] ?? .null)
return UserInfoWithPermissionLevel(user: user, permissionLevel: permissionLevel)
default:
fatalError("Type error deserializing")
}
}
}
/// The UserOnPaperDocFilter union
public enum UserOnPaperDocFilter: CustomStringConvertible {
/// all users who have visited the Paper doc.
case visited
/// All uses who are shared on the Paper doc. This includes all users who have visited the Paper doc as well as
/// those who have not.
case shared
/// An unspecified error.
case other
public var description: String {
return "\(SerializeUtil.prepareJSONForSerialization(UserOnPaperDocFilterSerializer().serialize(self)))"
}
}
open class UserOnPaperDocFilterSerializer: JSONSerializer {
public init() { }
open func serialize(_ value: UserOnPaperDocFilter) -> JSON {
switch value {
case .visited:
var d = [String: JSON]()
d[".tag"] = .str("visited")
return .dictionary(d)
case .shared:
var d = [String: JSON]()
d[".tag"] = .str("shared")
return .dictionary(d)
case .other:
var d = [String: JSON]()
d[".tag"] = .str("other")
return .dictionary(d)
}
}
open func deserialize(_ json: JSON) -> UserOnPaperDocFilter {
switch json {
case .dictionary(let d):
let tag = Serialization.getTag(d)
switch tag {
case "visited":
return UserOnPaperDocFilter.visited
case "shared":
return UserOnPaperDocFilter.shared
case "other":
return UserOnPaperDocFilter.other
default:
return UserOnPaperDocFilter.other
}
default:
fatalError("Failed to deserialize")
}
}
}
/// Stone Route Objects
static let docsArchive = Route(
name: "docs/archive",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.RefPaperDocSerializer(),
responseSerializer: Serialization._VoidSerializer,
errorSerializer: Paper.DocLookupErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsCreate = Route(
name: "docs/create",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.PaperDocCreateArgsSerializer(),
responseSerializer: Paper.PaperDocCreateUpdateResultSerializer(),
errorSerializer: Paper.PaperDocCreateErrorSerializer(),
attrs: ["host": "api",
"style": "upload"]
)
static let docsDownload = Route(
name: "docs/download",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.PaperDocExportSerializer(),
responseSerializer: Paper.PaperDocExportResultSerializer(),
errorSerializer: Paper.DocLookupErrorSerializer(),
attrs: ["host": "api",
"style": "download"]
)
static let docsFolderUsersList = Route(
name: "docs/folder_users/list",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.ListUsersOnFolderArgsSerializer(),
responseSerializer: Paper.ListUsersOnFolderResponseSerializer(),
errorSerializer: Paper.DocLookupErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsFolderUsersListContinue = Route(
name: "docs/folder_users/list/continue",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.ListUsersOnFolderContinueArgsSerializer(),
responseSerializer: Paper.ListUsersOnFolderResponseSerializer(),
errorSerializer: Paper.ListUsersCursorErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsGetFolderInfo = Route(
name: "docs/get_folder_info",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.RefPaperDocSerializer(),
responseSerializer: Paper.FoldersContainingPaperDocSerializer(),
errorSerializer: Paper.DocLookupErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsList = Route(
name: "docs/list",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.ListPaperDocsArgsSerializer(),
responseSerializer: Paper.ListPaperDocsResponseSerializer(),
errorSerializer: Serialization._VoidSerializer,
attrs: ["host": "api",
"style": "rpc"]
)
static let docsListContinue = Route(
name: "docs/list/continue",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.ListPaperDocsContinueArgsSerializer(),
responseSerializer: Paper.ListPaperDocsResponseSerializer(),
errorSerializer: Paper.ListDocsCursorErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsPermanentlyDelete = Route(
name: "docs/permanently_delete",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.RefPaperDocSerializer(),
responseSerializer: Serialization._VoidSerializer,
errorSerializer: Paper.DocLookupErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsSharingPolicyGet = Route(
name: "docs/sharing_policy/get",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.RefPaperDocSerializer(),
responseSerializer: Paper.SharingPolicySerializer(),
errorSerializer: Paper.DocLookupErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsSharingPolicySet = Route(
name: "docs/sharing_policy/set",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.PaperDocSharingPolicySerializer(),
responseSerializer: Serialization._VoidSerializer,
errorSerializer: Paper.DocLookupErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsUpdate = Route(
name: "docs/update",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.PaperDocUpdateArgsSerializer(),
responseSerializer: Paper.PaperDocCreateUpdateResultSerializer(),
errorSerializer: Paper.PaperDocUpdateErrorSerializer(),
attrs: ["host": "api",
"style": "upload"]
)
static let docsUsersAdd = Route(
name: "docs/users/add",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.AddPaperDocUserSerializer(),
responseSerializer: ArraySerializer(Paper.AddPaperDocUserMemberResultSerializer()),
errorSerializer: Paper.DocLookupErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsUsersList = Route(
name: "docs/users/list",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.ListUsersOnPaperDocArgsSerializer(),
responseSerializer: Paper.ListUsersOnPaperDocResponseSerializer(),
errorSerializer: Paper.DocLookupErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsUsersListContinue = Route(
name: "docs/users/list/continue",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.ListUsersOnPaperDocContinueArgsSerializer(),
responseSerializer: Paper.ListUsersOnPaperDocResponseSerializer(),
errorSerializer: Paper.ListUsersCursorErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
static let docsUsersRemove = Route(
name: "docs/users/remove",
version: 1,
namespace: "paper",
deprecated: false,
argSerializer: Paper.RemovePaperDocUserSerializer(),
responseSerializer: Serialization._VoidSerializer,
errorSerializer: Paper.DocLookupErrorSerializer(),
attrs: ["host": "api",
"style": "rpc"]
)
}