# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module GmailV1 # Gmail API # # Access Gmail mailboxes including sending user email. # # @example # require 'google/apis/gmail_v1' # # Gmail = Google::Apis::GmailV1 # Alias the module # service = Gmail::GmailService.new # # @see https://developers.google.com/gmail/api/ class GmailService < Google::Apis::Core::BaseService # @return [String] # API key. Your API key identifies your project and provides you with API access, # quota, and reports. Required unless you provide an OAuth 2.0 token. attr_accessor :key # @return [String] # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. attr_accessor :quota_user # @return [String] # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. attr_accessor :user_ip def initialize super('https://www.googleapis.com/', 'gmail/v1/users/') end # Gets the current user's Gmail profile. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Profile] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Profile] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def get_user_profile(user_id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/profile', options) command.response_representation = Google::Apis::GmailV1::Profile::Representation command.response_class = Google::Apis::GmailV1::Profile command.params['userId'] = user_id unless user_id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Stop receiving push notifications for the given user mailbox. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [NilClass] No result returned for this method # @yieldparam err [StandardError] error object if request failed # # @return [void] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def stop_user(user_id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, '{userId}/stop', options) command.params['userId'] = user_id unless user_id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Set up or update a push notification watch on the given user mailbox. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Google::Apis::GmailV1::WatchRequest] watch_request_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::WatchResponse] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::WatchResponse] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def watch_user(user_id, watch_request_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, '{userId}/watch', options) command.request_representation = Google::Apis::GmailV1::WatchRequest::Representation command.request_object = watch_request_object command.response_representation = Google::Apis::GmailV1::WatchResponse::Representation command.response_class = Google::Apis::GmailV1::WatchResponse command.params['userId'] = user_id unless user_id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Creates a new draft with the DRAFT label. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Google::Apis::GmailV1::Draft] draft_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [IO, String] upload_source # IO stream or filename containing content to upload # @param [String] content_type # Content type of the uploaded content. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Draft] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Draft] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def create_user_draft(user_id, draft_object = nil, fields: nil, quota_user: nil, user_ip: nil, upload_source: nil, content_type: nil, options: nil, &block) if upload_source.nil? command = make_simple_command(:post, '{userId}/drafts', options) else command = make_upload_command(:post, '{userId}/drafts', options) command.upload_source = upload_source command.upload_content_type = content_type end command.request_representation = Google::Apis::GmailV1::Draft::Representation command.request_object = draft_object command.response_representation = Google::Apis::GmailV1::Draft::Representation command.response_class = Google::Apis::GmailV1::Draft command.params['userId'] = user_id unless user_id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Immediately and permanently deletes the specified draft. Does not simply trash # it. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the draft to delete. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [NilClass] No result returned for this method # @yieldparam err [StandardError] error object if request failed # # @return [void] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def delete_user_draft(user_id, id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:delete, '{userId}/drafts/{id}', options) command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Gets the specified draft. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the draft to retrieve. # @param [String] format # The format to return the draft in. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Draft] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Draft] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def get_user_draft(user_id, id, format: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/drafts/{id}', options) command.response_representation = Google::Apis::GmailV1::Draft::Representation command.response_class = Google::Apis::GmailV1::Draft command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['format'] = format unless format.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Lists the drafts in the user's mailbox. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Boolean] include_spam_trash # Include drafts from SPAM and TRASH in the results. # @param [Fixnum] max_results # Maximum number of drafts to return. # @param [String] page_token # Page token to retrieve a specific page of results in the list. # @param [String] q # Only return draft messages matching the specified query. Supports the same # query format as the Gmail search box. For example, "from:someuser@example.com # rfc822msgid: is:unread". # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::ListDraftsResponse] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::ListDraftsResponse] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def list_user_drafts(user_id, include_spam_trash: nil, max_results: nil, page_token: nil, q: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/drafts', options) command.response_representation = Google::Apis::GmailV1::ListDraftsResponse::Representation command.response_class = Google::Apis::GmailV1::ListDraftsResponse command.params['userId'] = user_id unless user_id.nil? command.query['includeSpamTrash'] = include_spam_trash unless include_spam_trash.nil? command.query['maxResults'] = max_results unless max_results.nil? command.query['pageToken'] = page_token unless page_token.nil? command.query['q'] = q unless q.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Sends the specified, existing draft to the recipients in the To, Cc, and Bcc # headers. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Google::Apis::GmailV1::Draft] draft_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [IO, String] upload_source # IO stream or filename containing content to upload # @param [String] content_type # Content type of the uploaded content. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Message] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Message] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def send_user_draft(user_id, draft_object = nil, fields: nil, quota_user: nil, user_ip: nil, upload_source: nil, content_type: nil, options: nil, &block) if upload_source.nil? command = make_simple_command(:post, '{userId}/drafts/send', options) else command = make_upload_command(:post, '{userId}/drafts/send', options) command.upload_source = upload_source command.upload_content_type = content_type end command.request_representation = Google::Apis::GmailV1::Draft::Representation command.request_object = draft_object command.response_representation = Google::Apis::GmailV1::Message::Representation command.response_class = Google::Apis::GmailV1::Message command.params['userId'] = user_id unless user_id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Replaces a draft's content. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the draft to update. # @param [Google::Apis::GmailV1::Draft] draft_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [IO, String] upload_source # IO stream or filename containing content to upload # @param [String] content_type # Content type of the uploaded content. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Draft] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Draft] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def update_user_draft(user_id, id, draft_object = nil, fields: nil, quota_user: nil, user_ip: nil, upload_source: nil, content_type: nil, options: nil, &block) if upload_source.nil? command = make_simple_command(:put, '{userId}/drafts/{id}', options) else command = make_upload_command(:put, '{userId}/drafts/{id}', options) command.upload_source = upload_source command.upload_content_type = content_type end command.request_representation = Google::Apis::GmailV1::Draft::Representation command.request_object = draft_object command.response_representation = Google::Apis::GmailV1::Draft::Representation command.response_class = Google::Apis::GmailV1::Draft command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Lists the history of all changes to the given mailbox. History results are # returned in chronological order (increasing historyId). # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] label_id # Only return messages with a label matching the ID. # @param [Fixnum] max_results # The maximum number of history records to return. # @param [String] page_token # Page token to retrieve a specific page of results in the list. # @param [String] start_history_id # Required. Returns history records after the specified startHistoryId. The # supplied startHistoryId should be obtained from the historyId of a message, # thread, or previous list response. History IDs increase chronologically but # are not contiguous with random gaps in between valid IDs. Supplying an invalid # or out of date startHistoryId typically returns an HTTP 404 error code. A # historyId is typically valid for at least a week, but in some rare # circumstances may be valid for only a few hours. If you receive an HTTP 404 # error response, your application should perform a full sync. If you receive no # nextPageToken in the response, there are no updates to retrieve and you can # store the returned historyId for a future request. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::ListHistoryResponse] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::ListHistoryResponse] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def list_user_histories(user_id, label_id: nil, max_results: nil, page_token: nil, start_history_id: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/history', options) command.response_representation = Google::Apis::GmailV1::ListHistoryResponse::Representation command.response_class = Google::Apis::GmailV1::ListHistoryResponse command.params['userId'] = user_id unless user_id.nil? command.query['labelId'] = label_id unless label_id.nil? command.query['maxResults'] = max_results unless max_results.nil? command.query['pageToken'] = page_token unless page_token.nil? command.query['startHistoryId'] = start_history_id unless start_history_id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Creates a new label. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Google::Apis::GmailV1::Label] label_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Label] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Label] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def create_user_label(user_id, label_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, '{userId}/labels', options) command.request_representation = Google::Apis::GmailV1::Label::Representation command.request_object = label_object command.response_representation = Google::Apis::GmailV1::Label::Representation command.response_class = Google::Apis::GmailV1::Label command.params['userId'] = user_id unless user_id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Immediately and permanently deletes the specified label and removes it from # any messages and threads that it is applied to. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the label to delete. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [NilClass] No result returned for this method # @yieldparam err [StandardError] error object if request failed # # @return [void] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def delete_user_label(user_id, id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:delete, '{userId}/labels/{id}', options) command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Gets the specified label. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the label to retrieve. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Label] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Label] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def get_user_label(user_id, id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/labels/{id}', options) command.response_representation = Google::Apis::GmailV1::Label::Representation command.response_class = Google::Apis::GmailV1::Label command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Lists all labels in the user's mailbox. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::ListLabelsResponse] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::ListLabelsResponse] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def list_user_labels(user_id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/labels', options) command.response_representation = Google::Apis::GmailV1::ListLabelsResponse::Representation command.response_class = Google::Apis::GmailV1::ListLabelsResponse command.params['userId'] = user_id unless user_id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Updates the specified label. This method supports patch semantics. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the label to update. # @param [Google::Apis::GmailV1::Label] label_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Label] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Label] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def patch_user_label(user_id, id, label_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:patch, '{userId}/labels/{id}', options) command.request_representation = Google::Apis::GmailV1::Label::Representation command.request_object = label_object command.response_representation = Google::Apis::GmailV1::Label::Representation command.response_class = Google::Apis::GmailV1::Label command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Updates the specified label. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the label to update. # @param [Google::Apis::GmailV1::Label] label_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Label] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Label] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def update_user_label(user_id, id, label_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:put, '{userId}/labels/{id}', options) command.request_representation = Google::Apis::GmailV1::Label::Representation command.request_object = label_object command.response_representation = Google::Apis::GmailV1::Label::Representation command.response_class = Google::Apis::GmailV1::Label command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Deletes many messages by message ID. Provides no guarantees that messages were # not already deleted or even existed at all. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Google::Apis::GmailV1::BatchDeleteMessagesRequest] batch_delete_messages_request_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [NilClass] No result returned for this method # @yieldparam err [StandardError] error object if request failed # # @return [void] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def batch_delete_messages(user_id, batch_delete_messages_request_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, '{userId}/messages/batchDelete', options) command.request_representation = Google::Apis::GmailV1::BatchDeleteMessagesRequest::Representation command.request_object = batch_delete_messages_request_object command.params['userId'] = user_id unless user_id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Immediately and permanently deletes the specified message. This operation # cannot be undone. Prefer messages.trash instead. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the message to delete. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [NilClass] No result returned for this method # @yieldparam err [StandardError] error object if request failed # # @return [void] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def delete_user_message(user_id, id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:delete, '{userId}/messages/{id}', options) command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Gets the specified message. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the message to retrieve. # @param [String] format # The format to return the message in. # @param [Array, String] metadata_headers # When given and format is METADATA, only include headers specified. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Message] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Message] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def get_user_message(user_id, id, format: nil, metadata_headers: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/messages/{id}', options) command.response_representation = Google::Apis::GmailV1::Message::Representation command.response_class = Google::Apis::GmailV1::Message command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['format'] = format unless format.nil? command.query['metadataHeaders'] = metadata_headers unless metadata_headers.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Imports a message into only this user's mailbox, with standard email delivery # scanning and classification similar to receiving via SMTP. Does not send a # message. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Google::Apis::GmailV1::Message] message_object # @param [Boolean] deleted # Mark the email as permanently deleted (not TRASH) and only visible in Google # Apps Vault to a Vault administrator. Only used for Google Apps for Work # accounts. # @param [String] internal_date_source # Source for Gmail's internal date of the message. # @param [Boolean] never_mark_spam # Ignore the Gmail spam classifier decision and never mark this email as SPAM in # the mailbox. # @param [Boolean] process_for_calendar # Process calendar invites in the email and add any extracted meetings to the # Google Calendar for this user. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [IO, String] upload_source # IO stream or filename containing content to upload # @param [String] content_type # Content type of the uploaded content. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Message] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Message] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def import_user_message(user_id, message_object = nil, deleted: nil, internal_date_source: nil, never_mark_spam: nil, process_for_calendar: nil, fields: nil, quota_user: nil, user_ip: nil, upload_source: nil, content_type: nil, options: nil, &block) if upload_source.nil? command = make_simple_command(:post, '{userId}/messages/import', options) else command = make_upload_command(:post, '{userId}/messages/import', options) command.upload_source = upload_source command.upload_content_type = content_type end command.request_representation = Google::Apis::GmailV1::Message::Representation command.request_object = message_object command.response_representation = Google::Apis::GmailV1::Message::Representation command.response_class = Google::Apis::GmailV1::Message command.params['userId'] = user_id unless user_id.nil? command.query['deleted'] = deleted unless deleted.nil? command.query['internalDateSource'] = internal_date_source unless internal_date_source.nil? command.query['neverMarkSpam'] = never_mark_spam unless never_mark_spam.nil? command.query['processForCalendar'] = process_for_calendar unless process_for_calendar.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Directly inserts a message into only this user's mailbox similar to IMAP # APPEND, bypassing most scanning and classification. Does not send a message. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Google::Apis::GmailV1::Message] message_object # @param [Boolean] deleted # Mark the email as permanently deleted (not TRASH) and only visible in Google # Apps Vault to a Vault administrator. Only used for Google Apps for Work # accounts. # @param [String] internal_date_source # Source for Gmail's internal date of the message. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [IO, String] upload_source # IO stream or filename containing content to upload # @param [String] content_type # Content type of the uploaded content. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Message] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Message] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def insert_user_message(user_id, message_object = nil, deleted: nil, internal_date_source: nil, fields: nil, quota_user: nil, user_ip: nil, upload_source: nil, content_type: nil, options: nil, &block) if upload_source.nil? command = make_simple_command(:post, '{userId}/messages', options) else command = make_upload_command(:post, '{userId}/messages', options) command.upload_source = upload_source command.upload_content_type = content_type end command.request_representation = Google::Apis::GmailV1::Message::Representation command.request_object = message_object command.response_representation = Google::Apis::GmailV1::Message::Representation command.response_class = Google::Apis::GmailV1::Message command.params['userId'] = user_id unless user_id.nil? command.query['deleted'] = deleted unless deleted.nil? command.query['internalDateSource'] = internal_date_source unless internal_date_source.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Lists the messages in the user's mailbox. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Boolean] include_spam_trash # Include messages from SPAM and TRASH in the results. # @param [Array, String] label_ids # Only return messages with labels that match all of the specified label IDs. # @param [Fixnum] max_results # Maximum number of messages to return. # @param [String] page_token # Page token to retrieve a specific page of results in the list. # @param [String] q # Only return messages matching the specified query. Supports the same query # format as the Gmail search box. For example, "from:someuser@example.com # rfc822msgid: is:unread". # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::ListMessagesResponse] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::ListMessagesResponse] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def list_user_messages(user_id, include_spam_trash: nil, label_ids: nil, max_results: nil, page_token: nil, q: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/messages', options) command.response_representation = Google::Apis::GmailV1::ListMessagesResponse::Representation command.response_class = Google::Apis::GmailV1::ListMessagesResponse command.params['userId'] = user_id unless user_id.nil? command.query['includeSpamTrash'] = include_spam_trash unless include_spam_trash.nil? command.query['labelIds'] = label_ids unless label_ids.nil? command.query['maxResults'] = max_results unless max_results.nil? command.query['pageToken'] = page_token unless page_token.nil? command.query['q'] = q unless q.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Modifies the labels on the specified message. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the message to modify. # @param [Google::Apis::GmailV1::ModifyMessageRequest] modify_message_request_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Message] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Message] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def modify_message(user_id, id, modify_message_request_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, '{userId}/messages/{id}/modify', options) command.request_representation = Google::Apis::GmailV1::ModifyMessageRequest::Representation command.request_object = modify_message_request_object command.response_representation = Google::Apis::GmailV1::Message::Representation command.response_class = Google::Apis::GmailV1::Message command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Sends the specified message to the recipients in the To, Cc, and Bcc headers. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Google::Apis::GmailV1::Message] message_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [IO, String] upload_source # IO stream or filename containing content to upload # @param [String] content_type # Content type of the uploaded content. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Message] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Message] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def send_user_message(user_id, message_object = nil, fields: nil, quota_user: nil, user_ip: nil, upload_source: nil, content_type: nil, options: nil, &block) if upload_source.nil? command = make_simple_command(:post, '{userId}/messages/send', options) else command = make_upload_command(:post, '{userId}/messages/send', options) command.upload_source = upload_source command.upload_content_type = content_type end command.request_representation = Google::Apis::GmailV1::Message::Representation command.request_object = message_object command.response_representation = Google::Apis::GmailV1::Message::Representation command.response_class = Google::Apis::GmailV1::Message command.params['userId'] = user_id unless user_id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Moves the specified message to the trash. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the message to Trash. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Message] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Message] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def trash_user_message(user_id, id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, '{userId}/messages/{id}/trash', options) command.response_representation = Google::Apis::GmailV1::Message::Representation command.response_class = Google::Apis::GmailV1::Message command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Removes the specified message from the trash. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the message to remove from Trash. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Message] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Message] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def untrash_user_message(user_id, id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, '{userId}/messages/{id}/untrash', options) command.response_representation = Google::Apis::GmailV1::Message::Representation command.response_class = Google::Apis::GmailV1::Message command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Gets the specified message attachment. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] message_id # The ID of the message containing the attachment. # @param [String] id # The ID of the attachment. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::MessagePartBody] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::MessagePartBody] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def get_user_message_attachment(user_id, message_id, id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/messages/{messageId}/attachments/{id}', options) command.response_representation = Google::Apis::GmailV1::MessagePartBody::Representation command.response_class = Google::Apis::GmailV1::MessagePartBody command.params['userId'] = user_id unless user_id.nil? command.params['messageId'] = message_id unless message_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Immediately and permanently deletes the specified thread. This operation # cannot be undone. Prefer threads.trash instead. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # ID of the Thread to delete. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [NilClass] No result returned for this method # @yieldparam err [StandardError] error object if request failed # # @return [void] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def delete_user_thread(user_id, id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:delete, '{userId}/threads/{id}', options) command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Gets the specified thread. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the thread to retrieve. # @param [String] format # The format to return the messages in. # @param [Array, String] metadata_headers # When given and format is METADATA, only include headers specified. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Thread] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Thread] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def get_user_thread(user_id, id, format: nil, metadata_headers: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/threads/{id}', options) command.response_representation = Google::Apis::GmailV1::Thread::Representation command.response_class = Google::Apis::GmailV1::Thread command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['format'] = format unless format.nil? command.query['metadataHeaders'] = metadata_headers unless metadata_headers.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Lists the threads in the user's mailbox. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [Boolean] include_spam_trash # Include threads from SPAM and TRASH in the results. # @param [Array, String] label_ids # Only return threads with labels that match all of the specified label IDs. # @param [Fixnum] max_results # Maximum number of threads to return. # @param [String] page_token # Page token to retrieve a specific page of results in the list. # @param [String] q # Only return threads matching the specified query. Supports the same query # format as the Gmail search box. For example, "from:someuser@example.com # rfc822msgid: is:unread". # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::ListThreadsResponse] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::ListThreadsResponse] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def list_user_threads(user_id, include_spam_trash: nil, label_ids: nil, max_results: nil, page_token: nil, q: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:get, '{userId}/threads', options) command.response_representation = Google::Apis::GmailV1::ListThreadsResponse::Representation command.response_class = Google::Apis::GmailV1::ListThreadsResponse command.params['userId'] = user_id unless user_id.nil? command.query['includeSpamTrash'] = include_spam_trash unless include_spam_trash.nil? command.query['labelIds'] = label_ids unless label_ids.nil? command.query['maxResults'] = max_results unless max_results.nil? command.query['pageToken'] = page_token unless page_token.nil? command.query['q'] = q unless q.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Modifies the labels applied to the thread. This applies to all messages in the # thread. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the thread to modify. # @param [Google::Apis::GmailV1::ModifyThreadRequest] modify_thread_request_object # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Thread] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Thread] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def modify_thread(user_id, id, modify_thread_request_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, '{userId}/threads/{id}/modify', options) command.request_representation = Google::Apis::GmailV1::ModifyThreadRequest::Representation command.request_object = modify_thread_request_object command.response_representation = Google::Apis::GmailV1::Thread::Representation command.response_class = Google::Apis::GmailV1::Thread command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Moves the specified thread to the trash. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the thread to Trash. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Thread] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Thread] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def trash_user_thread(user_id, id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, '{userId}/threads/{id}/trash', options) command.response_representation = Google::Apis::GmailV1::Thread::Representation command.response_class = Google::Apis::GmailV1::Thread command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end # Removes the specified thread from the trash. # @param [String] user_id # The user's email address. The special value me can be used to indicate the # authenticated user. # @param [String] id # The ID of the thread to remove from Trash. # @param [String] fields # Selector specifying which fields to include in a partial response. # @param [String] quota_user # Available to use for quota purposes for server-side applications. Can be any # arbitrary string assigned to a user, but should not exceed 40 characters. # Overrides userIp if both are provided. # @param [String] user_ip # IP address of the site where the request originates. Use this if you want to # enforce per-user limits. # @param [Google::Apis::RequestOptions] options # Request-specific options # # @yield [result, err] Result & error if block supplied # @yieldparam result [Google::Apis::GmailV1::Thread] parsed result object # @yieldparam err [StandardError] error object if request failed # # @return [Google::Apis::GmailV1::Thread] # # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification # @raise [Google::Apis::AuthorizationError] Authorization is required def untrash_user_thread(user_id, id, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block) command = make_simple_command(:post, '{userId}/threads/{id}/untrash', options) command.response_representation = Google::Apis::GmailV1::Thread::Representation command.response_class = Google::Apis::GmailV1::Thread command.params['userId'] = user_id unless user_id.nil? command.params['id'] = id unless id.nil? command.query['fields'] = fields unless fields.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? execute_or_queue_command(command, &block) end protected def apply_command_defaults(command) command.query['key'] = key unless key.nil? command.query['quotaUser'] = quota_user unless quota_user.nil? command.query['userIp'] = user_ip unless user_ip.nil? end end end end end