# Gmail API . users . messages

## Instance Methods

Returns the attachments Resource.

Deletes many messages by message ID. Provides no guarantees that messages

Modifies the labels on the specified messages.

Immediately and permanently deletes the specified message. This operation

Gets the specified message.

Imports a message into only this user's mailbox, with standard

Directly inserts a message into only this user's mailbox similar to

Lists the messages in the user's mailbox.

Retrieves the next page of results.

Modifies the labels on the specified message.

Sends the specified message to the recipients in the

Moves the specified message to the trash.

Removes the specified message from the trash.

### Method Details

`batchDelete(userId, body=None, x__xgafv=None)`

    Deletes many messages by message ID.  Provides no guarantees that messages
    were not already deleted or even existed at all.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      body: object, The request body.
        The object takes the form of:

    {
        "ids": [ # The IDs of the messages to delete.
          "A String",
        ],
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

`batchModify(userId, body=None, x__xgafv=None)`

    Modifies the labels on the specified messages.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      body: object, The request body.
        The object takes the form of:

    {
        "addLabelIds": [ # A list of label IDs to add to messages.
          "A String",
        ],
        "removeLabelIds": [ # A list of label IDs to remove from messages.
          "A String",
        ],
        "ids": [ # The IDs of the messages to modify. There is a limit of 1000 ids per
            # request.
          "A String",
        ],
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

`delete(userId, id, x__xgafv=None)`

    Immediately and permanently deletes the specified message. This operation
    cannot be undone.  Prefer `messages.trash` instead.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      id: string, The ID of the message to delete. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

`get(userId, id, format=None, metadataHeaders=None, x__xgafv=None)`

    Gets the specified message.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      id: string, The ID of the message to retrieve. (required)
      format: string, The format to return the message in.
      metadataHeaders: string, When given and format is METADATA, only include headers specified. (repeated)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An email message.
        "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
            # a thread, the following criteria must be met:
            # <ol><li>The requested `threadId` must be specified on the
            # `Message` or `Draft.Message` you supply with your
            # request.</li>
            # <li>The `References` and `In-Reply-To` headers must
            # be set in compliance with the
            # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
            # <li>The `Subject` headers must match.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
            # ordering in the inbox.  For normal SMTP-received email, this represents the
            # time the message was originally accepted by Google, which is more reliable
            # than the `Date` header. However, for API-migrated mail, it can
            # be configured by client to be based on the `Date` header.
        "id": "A String", # The immutable ID of the message.
        "sizeEstimate": 42, # Estimated size in bytes of the message.
        "payload": { # A single MIME message part. # The parsed email structure in the message parts.
          "mimeType": "A String", # The MIME type of the message part.
          "parts": [ # The child MIME message parts of this part. This only applies to container
              # MIME message parts, for example `multipart/*`. For non-
              # container MIME message part types, such as `text/plain`, this
              # field is empty. For more information, see
              # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
            # Object with schema name: MessagePart
          ],
          "headers": [ # List of headers on this message part. For the top-level message part,
              # representing the entire message payload, it will contain the standard
              # RFC 2822 email headers such as `To`, `From`, and
              # `Subject`.
            {
              "name": "A String", # The name of the header before the `:` separator. For
                  # example, `To`.
              "value": "A String", # The value of the header after the `:` separator. For example,
                  # `someuser@example.com`.
            },
          ],
          "filename": "A String", # The filename of the attachment. Only present if this message part
              # represents an attachment.
          "partId": "A String", # The immutable ID of the message part.
          "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
              # container MIME message parts.
            "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
            "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                # retrieved in a separate `messages.attachments.get` request.
                # When not present, the entire content of the message part body is
                # contained in the data field.
            "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                # May be empty for MIME container
                # types that have no message body or when the body data is sent as a
                # separate attachment. An attachment ID is present if the body data is
                # contained in a separate attachment.
          },
        },
        "historyId": "A String", # The ID of the last history record that modified this message.
        "snippet": "A String", # A short part of the message text.
        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
            # encoded string. Returned in `messages.get` and
            # `drafts.get` responses when the `format=RAW`
            # parameter is supplied.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "labelIds": [ # List of IDs of labels applied to this message.
            # @mutable gmail.users.messages.insert gmail.users.messages.modify
          "A String",
        ],
      }

`import_(userId, body=None, deleted=None, internalDateSource=None, neverMarkSpam=None, processForCalendar=None, x__xgafv=None, media_body=None, media_mime_type=None)`

    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.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      body: object, The request body.
        The object takes the form of:

    { # An email message.
      "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
          # a thread, the following criteria must be met:
          # <ol><li>The requested `threadId` must be specified on the
          # `Message` or `Draft.Message` you supply with your
          # request.</li>
          # <li>The `References` and `In-Reply-To` headers must
          # be set in compliance with the
          # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
          # <li>The `Subject` headers must match.
          # @mutable gmail.users.messages.insert gmail.users.messages.send
          # @mutable gmail.users.drafts.create gmail.users.drafts.update
      "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
          # ordering in the inbox.  For normal SMTP-received email, this represents the
          # time the message was originally accepted by Google, which is more reliable
          # than the `Date` header. However, for API-migrated mail, it can
          # be configured by client to be based on the `Date` header.
      "id": "A String", # The immutable ID of the message.
      "sizeEstimate": 42, # Estimated size in bytes of the message.
      "payload": { # A single MIME message part. # The parsed email structure in the message parts.
        "mimeType": "A String", # The MIME type of the message part.
        "parts": [ # The child MIME message parts of this part. This only applies to container
            # MIME message parts, for example `multipart/*`. For non-
            # container MIME message part types, such as `text/plain`, this
            # field is empty. For more information, see
            # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
          # Object with schema name: MessagePart
        ],
        "headers": [ # List of headers on this message part. For the top-level message part,
            # representing the entire message payload, it will contain the standard
            # RFC 2822 email headers such as `To`, `From`, and
            # `Subject`.
          {
            "name": "A String", # The name of the header before the `:` separator. For
                # example, `To`.
            "value": "A String", # The value of the header after the `:` separator. For example,
                # `someuser@example.com`.
          },
        ],
        "filename": "A String", # The filename of the attachment. Only present if this message part
            # represents an attachment.
        "partId": "A String", # The immutable ID of the message part.
        "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
            # container MIME message parts.
          "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
          "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
              # retrieved in a separate `messages.attachments.get` request.
              # When not present, the entire content of the message part body is
              # contained in the data field.
          "data": "A String", # The body data of a MIME message part as a base64url encoded string.
              # May be empty for MIME container
              # types that have no message body or when the body data is sent as a
              # separate attachment. An attachment ID is present if the body data is
              # contained in a separate attachment.
        },
      },
      "historyId": "A String", # The ID of the last history record that modified this message.
      "snippet": "A String", # A short part of the message text.
      "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
          # encoded string. Returned in `messages.get` and
          # `drafts.get` responses when the `format=RAW`
          # parameter is supplied.
          # @mutable gmail.users.messages.insert gmail.users.messages.send
          # @mutable gmail.users.drafts.create gmail.users.drafts.update
      "labelIds": [ # List of IDs of labels applied to this message.
          # @mutable gmail.users.messages.insert gmail.users.messages.modify
        "A String",
      ],
    }

      deleted: boolean, Mark the email as permanently deleted (not TRASH) and
    only visible in
    <a href="http://support.google.com/vault/">Google Vault</a> to
    a Vault administrator. Only used for G Suite accounts.
      internalDateSource: string, Source for Gmail's internal date of the message.
      neverMarkSpam: boolean, Ignore the Gmail spam classifier decision and never mark
    this email as SPAM in the mailbox.
      processForCalendar: boolean, Process calendar invites in the email and add any extracted
    meetings to the Google Calendar for this user.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format
      media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
      media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.

    Returns:
      An object of the form:

        { # An email message.
        "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
            # a thread, the following criteria must be met:
            # <ol><li>The requested `threadId` must be specified on the
            # `Message` or `Draft.Message` you supply with your
            # request.</li>
            # <li>The `References` and `In-Reply-To` headers must
            # be set in compliance with the
            # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
            # <li>The `Subject` headers must match.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
            # ordering in the inbox.  For normal SMTP-received email, this represents the
            # time the message was originally accepted by Google, which is more reliable
            # than the `Date` header. However, for API-migrated mail, it can
            # be configured by client to be based on the `Date` header.
        "id": "A String", # The immutable ID of the message.
        "sizeEstimate": 42, # Estimated size in bytes of the message.
        "payload": { # A single MIME message part. # The parsed email structure in the message parts.
          "mimeType": "A String", # The MIME type of the message part.
          "parts": [ # The child MIME message parts of this part. This only applies to container
              # MIME message parts, for example `multipart/*`. For non-
              # container MIME message part types, such as `text/plain`, this
              # field is empty. For more information, see
              # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
            # Object with schema name: MessagePart
          ],
          "headers": [ # List of headers on this message part. For the top-level message part,
              # representing the entire message payload, it will contain the standard
              # RFC 2822 email headers such as `To`, `From`, and
              # `Subject`.
            {
              "name": "A String", # The name of the header before the `:` separator. For
                  # example, `To`.
              "value": "A String", # The value of the header after the `:` separator. For example,
                  # `someuser@example.com`.
            },
          ],
          "filename": "A String", # The filename of the attachment. Only present if this message part
              # represents an attachment.
          "partId": "A String", # The immutable ID of the message part.
          "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
              # container MIME message parts.
            "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
            "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                # retrieved in a separate `messages.attachments.get` request.
                # When not present, the entire content of the message part body is
                # contained in the data field.
            "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                # May be empty for MIME container
                # types that have no message body or when the body data is sent as a
                # separate attachment. An attachment ID is present if the body data is
                # contained in a separate attachment.
          },
        },
        "historyId": "A String", # The ID of the last history record that modified this message.
        "snippet": "A String", # A short part of the message text.
        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
            # encoded string. Returned in `messages.get` and
            # `drafts.get` responses when the `format=RAW`
            # parameter is supplied.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "labelIds": [ # List of IDs of labels applied to this message.
            # @mutable gmail.users.messages.insert gmail.users.messages.modify
          "A String",
        ],
      }

`insert(userId, body=None, internalDateSource=None, deleted=None, x__xgafv=None, media_body=None, media_mime_type=None)`

    Directly inserts a message into only this user's mailbox similar to
    `IMAP APPEND`, bypassing most scanning and classification.
    Does not send a message.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      body: object, The request body.
        The object takes the form of:

    { # An email message.
      "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
          # a thread, the following criteria must be met:
          # <ol><li>The requested `threadId` must be specified on the
          # `Message` or `Draft.Message` you supply with your
          # request.</li>
          # <li>The `References` and `In-Reply-To` headers must
          # be set in compliance with the
          # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
          # <li>The `Subject` headers must match.
          # @mutable gmail.users.messages.insert gmail.users.messages.send
          # @mutable gmail.users.drafts.create gmail.users.drafts.update
      "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
          # ordering in the inbox.  For normal SMTP-received email, this represents the
          # time the message was originally accepted by Google, which is more reliable
          # than the `Date` header. However, for API-migrated mail, it can
          # be configured by client to be based on the `Date` header.
      "id": "A String", # The immutable ID of the message.
      "sizeEstimate": 42, # Estimated size in bytes of the message.
      "payload": { # A single MIME message part. # The parsed email structure in the message parts.
        "mimeType": "A String", # The MIME type of the message part.
        "parts": [ # The child MIME message parts of this part. This only applies to container
            # MIME message parts, for example `multipart/*`. For non-
            # container MIME message part types, such as `text/plain`, this
            # field is empty. For more information, see
            # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
          # Object with schema name: MessagePart
        ],
        "headers": [ # List of headers on this message part. For the top-level message part,
            # representing the entire message payload, it will contain the standard
            # RFC 2822 email headers such as `To`, `From`, and
            # `Subject`.
          {
            "name": "A String", # The name of the header before the `:` separator. For
                # example, `To`.
            "value": "A String", # The value of the header after the `:` separator. For example,
                # `someuser@example.com`.
          },
        ],
        "filename": "A String", # The filename of the attachment. Only present if this message part
            # represents an attachment.
        "partId": "A String", # The immutable ID of the message part.
        "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
            # container MIME message parts.
          "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
          "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
              # retrieved in a separate `messages.attachments.get` request.
              # When not present, the entire content of the message part body is
              # contained in the data field.
          "data": "A String", # The body data of a MIME message part as a base64url encoded string.
              # May be empty for MIME container
              # types that have no message body or when the body data is sent as a
              # separate attachment. An attachment ID is present if the body data is
              # contained in a separate attachment.
        },
      },
      "historyId": "A String", # The ID of the last history record that modified this message.
      "snippet": "A String", # A short part of the message text.
      "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
          # encoded string. Returned in `messages.get` and
          # `drafts.get` responses when the `format=RAW`
          # parameter is supplied.
          # @mutable gmail.users.messages.insert gmail.users.messages.send
          # @mutable gmail.users.drafts.create gmail.users.drafts.update
      "labelIds": [ # List of IDs of labels applied to this message.
          # @mutable gmail.users.messages.insert gmail.users.messages.modify
        "A String",
      ],
    }

      internalDateSource: string, Source for Gmail's internal date of the message.
      deleted: boolean, Mark the email as permanently deleted (not TRASH) and
    only visible in
    <a href="http://support.google.com/vault/">Google Vault</a> to
    a Vault administrator. Only used for G Suite accounts.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format
      media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
      media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.

    Returns:
      An object of the form:

        { # An email message.
        "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
            # a thread, the following criteria must be met:
            # <ol><li>The requested `threadId` must be specified on the
            # `Message` or `Draft.Message` you supply with your
            # request.</li>
            # <li>The `References` and `In-Reply-To` headers must
            # be set in compliance with the
            # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
            # <li>The `Subject` headers must match.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
            # ordering in the inbox.  For normal SMTP-received email, this represents the
            # time the message was originally accepted by Google, which is more reliable
            # than the `Date` header. However, for API-migrated mail, it can
            # be configured by client to be based on the `Date` header.
        "id": "A String", # The immutable ID of the message.
        "sizeEstimate": 42, # Estimated size in bytes of the message.
        "payload": { # A single MIME message part. # The parsed email structure in the message parts.
          "mimeType": "A String", # The MIME type of the message part.
          "parts": [ # The child MIME message parts of this part. This only applies to container
              # MIME message parts, for example `multipart/*`. For non-
              # container MIME message part types, such as `text/plain`, this
              # field is empty. For more information, see
              # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
            # Object with schema name: MessagePart
          ],
          "headers": [ # List of headers on this message part. For the top-level message part,
              # representing the entire message payload, it will contain the standard
              # RFC 2822 email headers such as `To`, `From`, and
              # `Subject`.
            {
              "name": "A String", # The name of the header before the `:` separator. For
                  # example, `To`.
              "value": "A String", # The value of the header after the `:` separator. For example,
                  # `someuser@example.com`.
            },
          ],
          "filename": "A String", # The filename of the attachment. Only present if this message part
              # represents an attachment.
          "partId": "A String", # The immutable ID of the message part.
          "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
              # container MIME message parts.
            "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
            "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                # retrieved in a separate `messages.attachments.get` request.
                # When not present, the entire content of the message part body is
                # contained in the data field.
            "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                # May be empty for MIME container
                # types that have no message body or when the body data is sent as a
                # separate attachment. An attachment ID is present if the body data is
                # contained in a separate attachment.
          },
        },
        "historyId": "A String", # The ID of the last history record that modified this message.
        "snippet": "A String", # A short part of the message text.
        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
            # encoded string. Returned in `messages.get` and
            # `drafts.get` responses when the `format=RAW`
            # parameter is supplied.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "labelIds": [ # List of IDs of labels applied to this message.
            # @mutable gmail.users.messages.insert gmail.users.messages.modify
          "A String",
        ],
      }

`list(userId, maxResults=None, labelIds=None, includeSpamTrash=None, pageToken=None, q=None, x__xgafv=None)`

    Lists the messages in the user's mailbox.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      maxResults: integer, Maximum number of messages to return.
      labelIds: string, Only return messages with labels that match all of the specified label IDs. (repeated)
      includeSpamTrash: boolean, Include messages from `SPAM` and `TRASH`
    in the results.
      pageToken: string, Page token to retrieve a specific page of results in the list.
      q: string, Only return messages matching the specified query. Supports the same
    query format as the Gmail search box. For example,
    `"from:someuser@example.com rfc822msgid:<somemsgid@example.com>
    is:unread"`. Parameter cannot be used when accessing the api
    using the gmail.metadata scope.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        {
        "resultSizeEstimate": 42, # Estimated total number of results.
        "nextPageToken": "A String", # Token to retrieve the next page of results in the list.
        "messages": [ # List of messages. Note that each message resource contains only an
            # `id` and a `threadId`. Additional message details can
            # be fetched using the
            # <a href="/gmail/api/v1/reference/users/messages/get">messages.get</a>
            # method.
          { # An email message.
            "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
                # a thread, the following criteria must be met:
                # <ol><li>The requested `threadId` must be specified on the
                # `Message` or `Draft.Message` you supply with your
                # request.</li>
                # <li>The `References` and `In-Reply-To` headers must
                # be set in compliance with the
                # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
                # <li>The `Subject` headers must match.
                # @mutable gmail.users.messages.insert gmail.users.messages.send
                # @mutable gmail.users.drafts.create gmail.users.drafts.update
            "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
                # ordering in the inbox.  For normal SMTP-received email, this represents the
                # time the message was originally accepted by Google, which is more reliable
                # than the `Date` header. However, for API-migrated mail, it can
                # be configured by client to be based on the `Date` header.
            "id": "A String", # The immutable ID of the message.
            "sizeEstimate": 42, # Estimated size in bytes of the message.
            "payload": { # A single MIME message part. # The parsed email structure in the message parts.
              "mimeType": "A String", # The MIME type of the message part.
              "parts": [ # The child MIME message parts of this part. This only applies to container
                  # MIME message parts, for example `multipart/*`. For non-
                  # container MIME message part types, such as `text/plain`, this
                  # field is empty. For more information, see
                  # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
                # Object with schema name: MessagePart
              ],
              "headers": [ # List of headers on this message part. For the top-level message part,
                  # representing the entire message payload, it will contain the standard
                  # RFC 2822 email headers such as `To`, `From`, and
                  # `Subject`.
                {
                  "name": "A String", # The name of the header before the `:` separator. For
                      # example, `To`.
                  "value": "A String", # The value of the header after the `:` separator. For example,
                      # `someuser@example.com`.
                },
              ],
              "filename": "A String", # The filename of the attachment. Only present if this message part
                  # represents an attachment.
              "partId": "A String", # The immutable ID of the message part.
              "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
                  # container MIME message parts.
                "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
                "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                    # retrieved in a separate `messages.attachments.get` request.
                    # When not present, the entire content of the message part body is
                    # contained in the data field.
                "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                    # May be empty for MIME container
                    # types that have no message body or when the body data is sent as a
                    # separate attachment. An attachment ID is present if the body data is
                    # contained in a separate attachment.
              },
            },
            "historyId": "A String", # The ID of the last history record that modified this message.
            "snippet": "A String", # A short part of the message text.
            "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
                # encoded string. Returned in `messages.get` and
                # `drafts.get` responses when the `format=RAW`
                # parameter is supplied.
                # @mutable gmail.users.messages.insert gmail.users.messages.send
                # @mutable gmail.users.drafts.create gmail.users.drafts.update
            "labelIds": [ # List of IDs of labels applied to this message.
                # @mutable gmail.users.messages.insert gmail.users.messages.modify
              "A String",
            ],
          },
        ],
      }

`list_next(previous_request, previous_response)`

    Retrieves the next page of results.

    Args:
      previous_request: The request for the previous page. (required)
      previous_response: The response from the request for the previous page. (required)

    Returns:
      A request object that you can call 'execute()' on to request the next
      page. Returns None if there are no more items in the collection.

`modify(userId, id, body=None, x__xgafv=None)`

    Modifies the labels on the specified message.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      id: string, The ID of the message to modify. (required)
      body: object, The request body.
        The object takes the form of:

    {
        "addLabelIds": [ # A list of IDs of labels to add to this message.
          "A String",
        ],
        "removeLabelIds": [ # A list IDs of labels to remove from this message.
          "A String",
        ],
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An email message.
        "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
            # a thread, the following criteria must be met:
            # <ol><li>The requested `threadId` must be specified on the
            # `Message` or `Draft.Message` you supply with your
            # request.</li>
            # <li>The `References` and `In-Reply-To` headers must
            # be set in compliance with the
            # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
            # <li>The `Subject` headers must match.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
            # ordering in the inbox.  For normal SMTP-received email, this represents the
            # time the message was originally accepted by Google, which is more reliable
            # than the `Date` header. However, for API-migrated mail, it can
            # be configured by client to be based on the `Date` header.
        "id": "A String", # The immutable ID of the message.
        "sizeEstimate": 42, # Estimated size in bytes of the message.
        "payload": { # A single MIME message part. # The parsed email structure in the message parts.
          "mimeType": "A String", # The MIME type of the message part.
          "parts": [ # The child MIME message parts of this part. This only applies to container
              # MIME message parts, for example `multipart/*`. For non-
              # container MIME message part types, such as `text/plain`, this
              # field is empty. For more information, see
              # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
            # Object with schema name: MessagePart
          ],
          "headers": [ # List of headers on this message part. For the top-level message part,
              # representing the entire message payload, it will contain the standard
              # RFC 2822 email headers such as `To`, `From`, and
              # `Subject`.
            {
              "name": "A String", # The name of the header before the `:` separator. For
                  # example, `To`.
              "value": "A String", # The value of the header after the `:` separator. For example,
                  # `someuser@example.com`.
            },
          ],
          "filename": "A String", # The filename of the attachment. Only present if this message part
              # represents an attachment.
          "partId": "A String", # The immutable ID of the message part.
          "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
              # container MIME message parts.
            "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
            "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                # retrieved in a separate `messages.attachments.get` request.
                # When not present, the entire content of the message part body is
                # contained in the data field.
            "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                # May be empty for MIME container
                # types that have no message body or when the body data is sent as a
                # separate attachment. An attachment ID is present if the body data is
                # contained in a separate attachment.
          },
        },
        "historyId": "A String", # The ID of the last history record that modified this message.
        "snippet": "A String", # A short part of the message text.
        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
            # encoded string. Returned in `messages.get` and
            # `drafts.get` responses when the `format=RAW`
            # parameter is supplied.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "labelIds": [ # List of IDs of labels applied to this message.
            # @mutable gmail.users.messages.insert gmail.users.messages.modify
          "A String",
        ],
      }

`send(userId, body=None, x__xgafv=None, media_body=None, media_mime_type=None)`

    Sends the specified message to the recipients in the
    `To`, `Cc`, and `Bcc` headers.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      body: object, The request body.
        The object takes the form of:

    { # An email message.
      "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
          # a thread, the following criteria must be met:
          # <ol><li>The requested `threadId` must be specified on the
          # `Message` or `Draft.Message` you supply with your
          # request.</li>
          # <li>The `References` and `In-Reply-To` headers must
          # be set in compliance with the
          # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
          # <li>The `Subject` headers must match.
          # @mutable gmail.users.messages.insert gmail.users.messages.send
          # @mutable gmail.users.drafts.create gmail.users.drafts.update
      "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
          # ordering in the inbox.  For normal SMTP-received email, this represents the
          # time the message was originally accepted by Google, which is more reliable
          # than the `Date` header. However, for API-migrated mail, it can
          # be configured by client to be based on the `Date` header.
      "id": "A String", # The immutable ID of the message.
      "sizeEstimate": 42, # Estimated size in bytes of the message.
      "payload": { # A single MIME message part. # The parsed email structure in the message parts.
        "mimeType": "A String", # The MIME type of the message part.
        "parts": [ # The child MIME message parts of this part. This only applies to container
            # MIME message parts, for example `multipart/*`. For non-
            # container MIME message part types, such as `text/plain`, this
            # field is empty. For more information, see
            # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
          # Object with schema name: MessagePart
        ],
        "headers": [ # List of headers on this message part. For the top-level message part,
            # representing the entire message payload, it will contain the standard
            # RFC 2822 email headers such as `To`, `From`, and
            # `Subject`.
          {
            "name": "A String", # The name of the header before the `:` separator. For
                # example, `To`.
            "value": "A String", # The value of the header after the `:` separator. For example,
                # `someuser@example.com`.
          },
        ],
        "filename": "A String", # The filename of the attachment. Only present if this message part
            # represents an attachment.
        "partId": "A String", # The immutable ID of the message part.
        "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
            # container MIME message parts.
          "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
          "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
              # retrieved in a separate `messages.attachments.get` request.
              # When not present, the entire content of the message part body is
              # contained in the data field.
          "data": "A String", # The body data of a MIME message part as a base64url encoded string.
              # May be empty for MIME container
              # types that have no message body or when the body data is sent as a
              # separate attachment. An attachment ID is present if the body data is
              # contained in a separate attachment.
        },
      },
      "historyId": "A String", # The ID of the last history record that modified this message.
      "snippet": "A String", # A short part of the message text.
      "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
          # encoded string. Returned in `messages.get` and
          # `drafts.get` responses when the `format=RAW`
          # parameter is supplied.
          # @mutable gmail.users.messages.insert gmail.users.messages.send
          # @mutable gmail.users.drafts.create gmail.users.drafts.update
      "labelIds": [ # List of IDs of labels applied to this message.
          # @mutable gmail.users.messages.insert gmail.users.messages.modify
        "A String",
      ],
    }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format
      media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
      media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.

    Returns:
      An object of the form:

        { # An email message.
        "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
            # a thread, the following criteria must be met:
            # <ol><li>The requested `threadId` must be specified on the
            # `Message` or `Draft.Message` you supply with your
            # request.</li>
            # <li>The `References` and `In-Reply-To` headers must
            # be set in compliance with the
            # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
            # <li>The `Subject` headers must match.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
            # ordering in the inbox.  For normal SMTP-received email, this represents the
            # time the message was originally accepted by Google, which is more reliable
            # than the `Date` header. However, for API-migrated mail, it can
            # be configured by client to be based on the `Date` header.
        "id": "A String", # The immutable ID of the message.
        "sizeEstimate": 42, # Estimated size in bytes of the message.
        "payload": { # A single MIME message part. # The parsed email structure in the message parts.
          "mimeType": "A String", # The MIME type of the message part.
          "parts": [ # The child MIME message parts of this part. This only applies to container
              # MIME message parts, for example `multipart/*`. For non-
              # container MIME message part types, such as `text/plain`, this
              # field is empty. For more information, see
              # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
            # Object with schema name: MessagePart
          ],
          "headers": [ # List of headers on this message part. For the top-level message part,
              # representing the entire message payload, it will contain the standard
              # RFC 2822 email headers such as `To`, `From`, and
              # `Subject`.
            {
              "name": "A String", # The name of the header before the `:` separator. For
                  # example, `To`.
              "value": "A String", # The value of the header after the `:` separator. For example,
                  # `someuser@example.com`.
            },
          ],
          "filename": "A String", # The filename of the attachment. Only present if this message part
              # represents an attachment.
          "partId": "A String", # The immutable ID of the message part.
          "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
              # container MIME message parts.
            "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
            "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                # retrieved in a separate `messages.attachments.get` request.
                # When not present, the entire content of the message part body is
                # contained in the data field.
            "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                # May be empty for MIME container
                # types that have no message body or when the body data is sent as a
                # separate attachment. An attachment ID is present if the body data is
                # contained in a separate attachment.
          },
        },
        "historyId": "A String", # The ID of the last history record that modified this message.
        "snippet": "A String", # A short part of the message text.
        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
            # encoded string. Returned in `messages.get` and
            # `drafts.get` responses when the `format=RAW`
            # parameter is supplied.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "labelIds": [ # List of IDs of labels applied to this message.
            # @mutable gmail.users.messages.insert gmail.users.messages.modify
          "A String",
        ],
      }

`trash(userId, id, x__xgafv=None)`

    Moves the specified message to the trash.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      id: string, The ID of the message to Trash. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An email message.
        "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
            # a thread, the following criteria must be met:
            # <ol><li>The requested `threadId` must be specified on the
            # `Message` or `Draft.Message` you supply with your
            # request.</li>
            # <li>The `References` and `In-Reply-To` headers must
            # be set in compliance with the
            # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
            # <li>The `Subject` headers must match.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
            # ordering in the inbox.  For normal SMTP-received email, this represents the
            # time the message was originally accepted by Google, which is more reliable
            # than the `Date` header. However, for API-migrated mail, it can
            # be configured by client to be based on the `Date` header.
        "id": "A String", # The immutable ID of the message.
        "sizeEstimate": 42, # Estimated size in bytes of the message.
        "payload": { # A single MIME message part. # The parsed email structure in the message parts.
          "mimeType": "A String", # The MIME type of the message part.
          "parts": [ # The child MIME message parts of this part. This only applies to container
              # MIME message parts, for example `multipart/*`. For non-
              # container MIME message part types, such as `text/plain`, this
              # field is empty. For more information, see
              # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
            # Object with schema name: MessagePart
          ],
          "headers": [ # List of headers on this message part. For the top-level message part,
              # representing the entire message payload, it will contain the standard
              # RFC 2822 email headers such as `To`, `From`, and
              # `Subject`.
            {
              "name": "A String", # The name of the header before the `:` separator. For
                  # example, `To`.
              "value": "A String", # The value of the header after the `:` separator. For example,
                  # `someuser@example.com`.
            },
          ],
          "filename": "A String", # The filename of the attachment. Only present if this message part
              # represents an attachment.
          "partId": "A String", # The immutable ID of the message part.
          "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
              # container MIME message parts.
            "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
            "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                # retrieved in a separate `messages.attachments.get` request.
                # When not present, the entire content of the message part body is
                # contained in the data field.
            "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                # May be empty for MIME container
                # types that have no message body or when the body data is sent as a
                # separate attachment. An attachment ID is present if the body data is
                # contained in a separate attachment.
          },
        },
        "historyId": "A String", # The ID of the last history record that modified this message.
        "snippet": "A String", # A short part of the message text.
        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
            # encoded string. Returned in `messages.get` and
            # `drafts.get` responses when the `format=RAW`
            # parameter is supplied.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "labelIds": [ # List of IDs of labels applied to this message.
            # @mutable gmail.users.messages.insert gmail.users.messages.modify
          "A String",
        ],
      }

`untrash(userId, id, x__xgafv=None)`

    Removes the specified message from the trash.

    Args:
      userId: string, The user's email address. The special value `me`
    can be used to indicate the authenticated user. (required)
      id: string, The ID of the message to remove from Trash. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An email message.
        "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to
            # a thread, the following criteria must be met:
            # <ol><li>The requested `threadId` must be specified on the
            # `Message` or `Draft.Message` you supply with your
            # request.</li>
            # <li>The `References` and `In-Reply-To` headers must
            # be set in compliance with the
            # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
            # <li>The `Subject` headers must match.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "internalDate": "A String", # The internal message creation timestamp (epoch ms), which determines
            # ordering in the inbox.  For normal SMTP-received email, this represents the
            # time the message was originally accepted by Google, which is more reliable
            # than the `Date` header. However, for API-migrated mail, it can
            # be configured by client to be based on the `Date` header.
        "id": "A String", # The immutable ID of the message.
        "sizeEstimate": 42, # Estimated size in bytes of the message.
        "payload": { # A single MIME message part. # The parsed email structure in the message parts.
          "mimeType": "A String", # The MIME type of the message part.
          "parts": [ # The child MIME message parts of this part. This only applies to container
              # MIME message parts, for example `multipart/*`. For non-
              # container MIME message part types, such as `text/plain`, this
              # field is empty. For more information, see
              # <a href="http://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>.
            # Object with schema name: MessagePart
          ],
          "headers": [ # List of headers on this message part. For the top-level message part,
              # representing the entire message payload, it will contain the standard
              # RFC 2822 email headers such as `To`, `From`, and
              # `Subject`.
            {
              "name": "A String", # The name of the header before the `:` separator. For
                  # example, `To`.
              "value": "A String", # The value of the header after the `:` separator. For example,
                  # `someuser@example.com`.
            },
          ],
          "filename": "A String", # The filename of the attachment. Only present if this message part
              # represents an attachment.
          "partId": "A String", # The immutable ID of the message part.
          "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for
              # container MIME message parts.
            "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
            "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                # retrieved in a separate `messages.attachments.get` request.
                # When not present, the entire content of the message part body is
                # contained in the data field.
            "data": "A String", # The body data of a MIME message part as a base64url encoded string.
                # May be empty for MIME container
                # types that have no message body or when the body data is sent as a
                # separate attachment. An attachment ID is present if the body data is
                # contained in a separate attachment.
          },
        },
        "historyId": "A String", # The ID of the last history record that modified this message.
        "snippet": "A String", # A short part of the message text.
        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url
            # encoded string. Returned in `messages.get` and
            # `drafts.get` responses when the `format=RAW`
            # parameter is supplied.
            # @mutable gmail.users.messages.insert gmail.users.messages.send
            # @mutable gmail.users.drafts.create gmail.users.drafts.update
        "labelIds": [ # List of IDs of labels applied to this message.
            # @mutable gmail.users.messages.insert gmail.users.messages.modify
          "A String",
        ],
      }