///
/// Copyright (c) 2016 Dropbox, Inc. All rights reserved.
///
/// Auto-generated by Stone, do not modify.
///

/// Routes for the contacts namespace
open class ContactsRoutes {
    public let client: DropboxTransportClient
    init(client: DropboxTransportClient) {
        self.client = client
    }

    /// Removes all manually added contacts. You'll still keep contacts who are on your team or who you imported. New
    /// contacts will be added when you share.
    ///
    ///
    ///  - returns: Through the response callback, the caller will receive a `Void` object on success or a `Void` object
    /// on failure.
    @discardableResult open func deleteManualContacts() -> RpcRequest<VoidSerializer, VoidSerializer> {
        let route = Contacts.deleteManualContacts
        return client.request(route)
    }

    /// Removes manually added contacts from the given list.
    ///
    /// - parameter emailAddresses: List of manually added contacts to be deleted.
    ///
    ///  - returns: Through the response callback, the caller will receive a `Void` object on success or a
    /// `Contacts.DeleteManualContactsError` object on failure.
    @discardableResult open func deleteManualContactsBatch(emailAddresses: Array<String>) -> RpcRequest<VoidSerializer, Contacts.DeleteManualContactsErrorSerializer> {
        let route = Contacts.deleteManualContactsBatch
        let serverArgs = Contacts.DeleteManualContactsArg(emailAddresses: emailAddresses)
        return client.request(route, serverArgs: serverArgs)
    }

}
