     typealias MessageSendQuery = GTLRGmailQuery_UsersMessagesSend
     typealias MessageTrashQuery = GTLRGmailQuery_UsersMessagesTrash
     typealias MessageUntrashQuery = GTLRGmailQuery_UsersMessagesUntrash
-    typealias ServiceTicket = GTLRServiceTicket
+    typealias MessageAttachmentQuery = GTLRGmailQuery_UsersMessagesAttachmentsGet
+
+    typealias Profile = GTLRGmail_Profile
     typealias ProfileQuery = GTLRGmailQuery_UsersGetProfile
-    typealias Profile = GTLRGmail_Profile
+
     typealias WatchRequest = GTLRGmail_WatchRequest
     typealias WatchResponse = GTLRGmail_WatchResponse
-    typealias WatchQuery = GTLRGmailQuery_UsersWatch
-    typealias StopQuery = GTLRGmailQuery_UsersStop
+    typealias WatchStartQuery = GTLRGmailQuery_UsersWatch
+    typealias WatchStopQuery = GTLRGmailQuery_UsersStop
+
+    typealias Draft = GTLRGmail_Draft
     typealias DraftsCreateQuery = GTLRGmailQuery_UsersDraftsCreate
-    typealias Draft = GTLRGmail_Draft
-    typealias UploadParameters = GTLRUploadParameters
     typealias DraftsDeleteQuery = GTLRGmailQuery_UsersDraftsDelete
     typealias DraftsGetQuery = GTLRGmailQuery_UsersDraftsGet
     typealias DraftsListQuery = GTLRGmailQuery_UsersDraftsList
     typealias DraftsListResponse = GTLRGmail_ListDraftsResponse
     typealias DraftsSendQuery = GTLRGmailQuery_UsersDraftsSend
     typealias DraftsUpdateQuery = GTLRGmailQuery_UsersDraftsUpdate
+
     typealias HistoryQuery = GTLRGmailQuery_UsersHistoryList
     typealias HistoryResponse = GTLRGmail_ListHistoryResponse
-    typealias AttachmentQuery = GTLRGmailQuery_UsersMessagesAttachmentsGet
-    typealias MessagePartBody = GTLRGmail_MessagePartBody
-    typealias MessagePart = GTLRGmail_MessagePart
-    typealias MessagePartHeader = GTLRGmail_MessagePartHeader
+
     typealias SettingsAutoForwardingQuery = GTLRGmailQuery_UsersSettingsGetAutoForwarding
     typealias SettingsAutoForwarding = GTLRGmail_AutoForwarding
     typealias SettingsAutoForwardingUpdateQuery = GTLRGmailQuery_UsersSettingsUpdateAutoForwarding

    typealias LabelsGetQuery = GTLRGmailQuery_UsersLabelsGet
    typealias LabelsPatchQuery = GTLRGmailQuery_UsersLabelsPatch
    typealias LabelsUpdateQuery = GTLRGmailQuery_UsersLabelsUpdate
    typealias MessageListQuery = GTLRGmailQuery_UsersMessagesList
    typealias MessageListResponse = GTLRGmail_ListMessagesResponse
    typealias MessageBatchDeleteQuery = GTLRGmailQuery_UsersMessagesBatchDelete

    }

    func watchRequest(request: WatchRequest, forUserId userId: String = "me") -> Observable<WatchResponse> {
        let query = WatchStartQuery.query(withObject: request, userId: userId)
        return watchRequest(query: query)
    }

    func watchRequest(query: WatchStartQuery) -> Observable<WatchResponse> {
        return execute(query: query)
    }

    func stopNotifications(forUserId userId: String = "me") -> Observable<Void> {
        let query = WatchStopQuery.query(withUserId: userId)
        return stopNotifications(query: query)
    }

    func stopNotifications(query: WatchStopQuery) -> Observable<Void> {
        return execute(query: query)
    }

