Gmail API . users . drafts

Instance Methods

create(userId, body=None, media_body=None, media_mime_type=None, x__xgafv=None)

Creates a new draft with the DRAFT label.

delete(userId, id, x__xgafv=None)

Immediately and permanently deletes the specified draft.

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

Gets the specified draft.

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

Lists the drafts in the user's mailbox.

list_next(previous_request, previous_response)

Retrieves the next page of results.

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

Sends the specified, existing draft to the recipients in the

update(userId, id, body=None, media_body=None, media_mime_type=None, x__xgafv=None)

Replaces a draft's content.

Method Details

create(userId, body=None, media_body=None, media_mime_type=None, x__xgafv=None)
Creates a new draft with the <code>DRAFT</code> label.

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

{ # A draft email in the user's mailbox.
  "message": { # An email message. # The message content of the draft.
    "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 <code>Date</code> header. However, for API-migrated mail, it can
        # be configured by client to be based on the <code>Date</code> header.
    "historyId": "A String", # The ID of the last history record that modified this message.
    "payload": { # A single MIME message part. # The parsed email structure in the message parts.
      "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.
        "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.
        "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
            # retrieved in a separate <code>messages.attachments.get</code> request.
            # When not present, the entire content of the message part body is
            # contained in the data field.
        "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
      },
      "mimeType": "A String", # The MIME type of the message part.
      "partId": "A String", # The immutable ID of the message part.
      "filename": "A String", # The filename of the attachment. Only present if this message part
          # represents an attachment.
      "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 <code>To</code>, <code>From</code>, and
          # <code>Subject</code>.
        {
          "name": "A String", # The name of the header before the <code>:</code> separator. For
              # example, <code>To</code>.
          "value": "A String", # The value of the header after the <code>:</code> separator. For example,
              # <code>someuser@example.com</code>.
        },
      ],
      "parts": [ # The child MIME message parts of this part. This only applies to container
          # MIME message parts, for example <code>multipart/*</code>. For non-
          # container MIME message part types, such as <code>text/plain</code>, 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
      ],
    },
    "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 <code>messages.get</code> and
        # <code>drafts.get</code> responses when the <code>format=RAW</code>
        # parameter is supplied.
        # @mutable gmail.users.messages.insert gmail.users.messages.send
        # @mutable gmail.users.drafts.create gmail.users.drafts.update
    "sizeEstimate": 42, # Estimated size in bytes of the 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 <code>threadId</code> must be specified on the
        # <code>Message</code> or <code>Draft.Message</code> you supply with your
        # request.</li>
        # <li>The <code>References</code> and <code>In-Reply-To</code> headers must
        # be set in compliance with the
        # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
        # <li>The <code>Subject</code> headers must match.
        # @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",
    ],
    "id": "A String", # The immutable ID of the message.
  },
  "id": "A String", # The immutable ID of the draft.
}

  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.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A draft email in the user's mailbox.
    "message": { # An email message. # The message content of the draft.
      "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 <code>Date</code> header. However, for API-migrated mail, it can
          # be configured by client to be based on the <code>Date</code> header.
      "historyId": "A String", # The ID of the last history record that modified this message.
      "payload": { # A single MIME message part. # The parsed email structure in the message parts.
        "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.
          "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.
          "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
              # retrieved in a separate <code>messages.attachments.get</code> request.
              # When not present, the entire content of the message part body is
              # contained in the data field.
          "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
        },
        "mimeType": "A String", # The MIME type of the message part.
        "partId": "A String", # The immutable ID of the message part.
        "filename": "A String", # The filename of the attachment. Only present if this message part
            # represents an attachment.
        "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 <code>To</code>, <code>From</code>, and
            # <code>Subject</code>.
          {
            "name": "A String", # The name of the header before the <code>:</code> separator. For
                # example, <code>To</code>.
            "value": "A String", # The value of the header after the <code>:</code> separator. For example,
                # <code>someuser@example.com</code>.
          },
        ],
        "parts": [ # The child MIME message parts of this part. This only applies to container
            # MIME message parts, for example <code>multipart/*</code>. For non-
            # container MIME message part types, such as <code>text/plain</code>, 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
        ],
      },
      "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 <code>messages.get</code> and
          # <code>drafts.get</code> responses when the <code>format=RAW</code>
          # parameter is supplied.
          # @mutable gmail.users.messages.insert gmail.users.messages.send
          # @mutable gmail.users.drafts.create gmail.users.drafts.update
      "sizeEstimate": 42, # Estimated size in bytes of the 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 <code>threadId</code> must be specified on the
          # <code>Message</code> or <code>Draft.Message</code> you supply with your
          # request.</li>
          # <li>The <code>References</code> and <code>In-Reply-To</code> headers must
          # be set in compliance with the
          # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
          # <li>The <code>Subject</code> headers must match.
          # @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",
      ],
      "id": "A String", # The immutable ID of the message.
    },
    "id": "A String", # The immutable ID of the draft.
  }
delete(userId, id, x__xgafv=None)
Immediately and permanently deletes the specified draft.
Does not simply trash it.

Args:
  userId: string, The user's email address. The special value <code>me</code>
can be used to indicate the authenticated user. (required)
  id: string, The ID of the draft to delete. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
get(userId, id, format=None, x__xgafv=None)
Gets the specified draft.

Args:
  userId: string, The user's email address. The special value <code>me</code>
can be used to indicate the authenticated user. (required)
  id: string, The ID of the draft to retrieve. (required)
  format: string, The format to return the draft in.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A draft email in the user's mailbox.
    "message": { # An email message. # The message content of the draft.
      "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 <code>Date</code> header. However, for API-migrated mail, it can
          # be configured by client to be based on the <code>Date</code> header.
      "historyId": "A String", # The ID of the last history record that modified this message.
      "payload": { # A single MIME message part. # The parsed email structure in the message parts.
        "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.
          "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.
          "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
              # retrieved in a separate <code>messages.attachments.get</code> request.
              # When not present, the entire content of the message part body is
              # contained in the data field.
          "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
        },
        "mimeType": "A String", # The MIME type of the message part.
        "partId": "A String", # The immutable ID of the message part.
        "filename": "A String", # The filename of the attachment. Only present if this message part
            # represents an attachment.
        "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 <code>To</code>, <code>From</code>, and
            # <code>Subject</code>.
          {
            "name": "A String", # The name of the header before the <code>:</code> separator. For
                # example, <code>To</code>.
            "value": "A String", # The value of the header after the <code>:</code> separator. For example,
                # <code>someuser@example.com</code>.
          },
        ],
        "parts": [ # The child MIME message parts of this part. This only applies to container
            # MIME message parts, for example <code>multipart/*</code>. For non-
            # container MIME message part types, such as <code>text/plain</code>, 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
        ],
      },
      "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 <code>messages.get</code> and
          # <code>drafts.get</code> responses when the <code>format=RAW</code>
          # parameter is supplied.
          # @mutable gmail.users.messages.insert gmail.users.messages.send
          # @mutable gmail.users.drafts.create gmail.users.drafts.update
      "sizeEstimate": 42, # Estimated size in bytes of the 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 <code>threadId</code> must be specified on the
          # <code>Message</code> or <code>Draft.Message</code> you supply with your
          # request.</li>
          # <li>The <code>References</code> and <code>In-Reply-To</code> headers must
          # be set in compliance with the
          # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
          # <li>The <code>Subject</code> headers must match.
          # @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",
      ],
      "id": "A String", # The immutable ID of the message.
    },
    "id": "A String", # The immutable ID of the draft.
  }
list(userId, pageToken=None, includeSpamTrash=None, maxResults=None, q=None, x__xgafv=None)
Lists the drafts in the user's mailbox.

Args:
  userId: string, The user's email address. The special value <code>me</code>
can be used to indicate the authenticated user. (required)
  pageToken: string, Page token to retrieve a specific page of results in the list.
  includeSpamTrash: boolean, Include drafts from <code>SPAM</code> and <code>TRASH</code>
in the results.
  maxResults: integer, Maximum number of drafts to return.
  q: string, Only return draft messages matching the specified query. Supports the same
query format as the Gmail search box. For example,
<code>"from:someuser@example.com rfc822msgid:<somemsgid@example.com>
is:unread"</code>.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # Token to retrieve the next page of results in the list.
    "resultSizeEstimate": 42, # Estimated total number of results.
    "drafts": [ # List of drafts. Note that the <code>Message</code> property in each
        # <code>Draft</code> resource only contains an <code>id</code> and a
        # <code>threadId</code>. The
        # <a href="/gmail/api/v1/reference/users/messages/get">messages.get</a>
        # method can fetch additional message details.
      { # A draft email in the user's mailbox.
        "message": { # An email message. # The message content of the draft.
          "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 <code>Date</code> header. However, for API-migrated mail, it can
              # be configured by client to be based on the <code>Date</code> header.
          "historyId": "A String", # The ID of the last history record that modified this message.
          "payload": { # A single MIME message part. # The parsed email structure in the message parts.
            "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.
              "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.
              "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
                  # retrieved in a separate <code>messages.attachments.get</code> request.
                  # When not present, the entire content of the message part body is
                  # contained in the data field.
              "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
            },
            "mimeType": "A String", # The MIME type of the message part.
            "partId": "A String", # The immutable ID of the message part.
            "filename": "A String", # The filename of the attachment. Only present if this message part
                # represents an attachment.
            "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 <code>To</code>, <code>From</code>, and
                # <code>Subject</code>.
              {
                "name": "A String", # The name of the header before the <code>:</code> separator. For
                    # example, <code>To</code>.
                "value": "A String", # The value of the header after the <code>:</code> separator. For example,
                    # <code>someuser@example.com</code>.
              },
            ],
            "parts": [ # The child MIME message parts of this part. This only applies to container
                # MIME message parts, for example <code>multipart/*</code>. For non-
                # container MIME message part types, such as <code>text/plain</code>, 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
            ],
          },
          "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 <code>messages.get</code> and
              # <code>drafts.get</code> responses when the <code>format=RAW</code>
              # parameter is supplied.
              # @mutable gmail.users.messages.insert gmail.users.messages.send
              # @mutable gmail.users.drafts.create gmail.users.drafts.update
          "sizeEstimate": 42, # Estimated size in bytes of the 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 <code>threadId</code> must be specified on the
              # <code>Message</code> or <code>Draft.Message</code> you supply with your
              # request.</li>
              # <li>The <code>References</code> and <code>In-Reply-To</code> headers must
              # be set in compliance with the
              # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
              # <li>The <code>Subject</code> headers must match.
              # @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",
          ],
          "id": "A String", # The immutable ID of the message.
        },
        "id": "A String", # The immutable ID of the draft.
      },
    ],
  }
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.
    
send(userId, body=None, media_body=None, media_mime_type=None, x__xgafv=None)
Sends the specified, existing draft to the recipients in the
<code>To</code>, <code>Cc</code>, and <code>Bcc</code> headers.

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

{ # A draft email in the user's mailbox.
  "message": { # An email message. # The message content of the draft.
    "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 <code>Date</code> header. However, for API-migrated mail, it can
        # be configured by client to be based on the <code>Date</code> header.
    "historyId": "A String", # The ID of the last history record that modified this message.
    "payload": { # A single MIME message part. # The parsed email structure in the message parts.
      "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.
        "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.
        "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
            # retrieved in a separate <code>messages.attachments.get</code> request.
            # When not present, the entire content of the message part body is
            # contained in the data field.
        "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
      },
      "mimeType": "A String", # The MIME type of the message part.
      "partId": "A String", # The immutable ID of the message part.
      "filename": "A String", # The filename of the attachment. Only present if this message part
          # represents an attachment.
      "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 <code>To</code>, <code>From</code>, and
          # <code>Subject</code>.
        {
          "name": "A String", # The name of the header before the <code>:</code> separator. For
              # example, <code>To</code>.
          "value": "A String", # The value of the header after the <code>:</code> separator. For example,
              # <code>someuser@example.com</code>.
        },
      ],
      "parts": [ # The child MIME message parts of this part. This only applies to container
          # MIME message parts, for example <code>multipart/*</code>. For non-
          # container MIME message part types, such as <code>text/plain</code>, 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
      ],
    },
    "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 <code>messages.get</code> and
        # <code>drafts.get</code> responses when the <code>format=RAW</code>
        # parameter is supplied.
        # @mutable gmail.users.messages.insert gmail.users.messages.send
        # @mutable gmail.users.drafts.create gmail.users.drafts.update
    "sizeEstimate": 42, # Estimated size in bytes of the 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 <code>threadId</code> must be specified on the
        # <code>Message</code> or <code>Draft.Message</code> you supply with your
        # request.</li>
        # <li>The <code>References</code> and <code>In-Reply-To</code> headers must
        # be set in compliance with the
        # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
        # <li>The <code>Subject</code> headers must match.
        # @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",
    ],
    "id": "A String", # The immutable ID of the message.
  },
  "id": "A String", # The immutable ID of the draft.
}

  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.
  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.
    "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 <code>Date</code> header. However, for API-migrated mail, it can
        # be configured by client to be based on the <code>Date</code> header.
    "historyId": "A String", # The ID of the last history record that modified this message.
    "payload": { # A single MIME message part. # The parsed email structure in the message parts.
      "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.
        "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.
        "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
            # retrieved in a separate <code>messages.attachments.get</code> request.
            # When not present, the entire content of the message part body is
            # contained in the data field.
        "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
      },
      "mimeType": "A String", # The MIME type of the message part.
      "partId": "A String", # The immutable ID of the message part.
      "filename": "A String", # The filename of the attachment. Only present if this message part
          # represents an attachment.
      "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 <code>To</code>, <code>From</code>, and
          # <code>Subject</code>.
        {
          "name": "A String", # The name of the header before the <code>:</code> separator. For
              # example, <code>To</code>.
          "value": "A String", # The value of the header after the <code>:</code> separator. For example,
              # <code>someuser@example.com</code>.
        },
      ],
      "parts": [ # The child MIME message parts of this part. This only applies to container
          # MIME message parts, for example <code>multipart/*</code>. For non-
          # container MIME message part types, such as <code>text/plain</code>, 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
      ],
    },
    "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 <code>messages.get</code> and
        # <code>drafts.get</code> responses when the <code>format=RAW</code>
        # parameter is supplied.
        # @mutable gmail.users.messages.insert gmail.users.messages.send
        # @mutable gmail.users.drafts.create gmail.users.drafts.update
    "sizeEstimate": 42, # Estimated size in bytes of the 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 <code>threadId</code> must be specified on the
        # <code>Message</code> or <code>Draft.Message</code> you supply with your
        # request.</li>
        # <li>The <code>References</code> and <code>In-Reply-To</code> headers must
        # be set in compliance with the
        # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
        # <li>The <code>Subject</code> headers must match.
        # @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",
    ],
    "id": "A String", # The immutable ID of the message.
  }
update(userId, id, body=None, media_body=None, media_mime_type=None, x__xgafv=None)
Replaces a draft's content.

Args:
  userId: string, The user's email address. The special value <code>me</code>
can be used to indicate the authenticated user. (required)
  id: string, The ID of the draft to update. (required)
  body: object, The request body.
    The object takes the form of:

{ # A draft email in the user's mailbox.
  "message": { # An email message. # The message content of the draft.
    "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 <code>Date</code> header. However, for API-migrated mail, it can
        # be configured by client to be based on the <code>Date</code> header.
    "historyId": "A String", # The ID of the last history record that modified this message.
    "payload": { # A single MIME message part. # The parsed email structure in the message parts.
      "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.
        "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.
        "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
            # retrieved in a separate <code>messages.attachments.get</code> request.
            # When not present, the entire content of the message part body is
            # contained in the data field.
        "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
      },
      "mimeType": "A String", # The MIME type of the message part.
      "partId": "A String", # The immutable ID of the message part.
      "filename": "A String", # The filename of the attachment. Only present if this message part
          # represents an attachment.
      "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 <code>To</code>, <code>From</code>, and
          # <code>Subject</code>.
        {
          "name": "A String", # The name of the header before the <code>:</code> separator. For
              # example, <code>To</code>.
          "value": "A String", # The value of the header after the <code>:</code> separator. For example,
              # <code>someuser@example.com</code>.
        },
      ],
      "parts": [ # The child MIME message parts of this part. This only applies to container
          # MIME message parts, for example <code>multipart/*</code>. For non-
          # container MIME message part types, such as <code>text/plain</code>, 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
      ],
    },
    "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 <code>messages.get</code> and
        # <code>drafts.get</code> responses when the <code>format=RAW</code>
        # parameter is supplied.
        # @mutable gmail.users.messages.insert gmail.users.messages.send
        # @mutable gmail.users.drafts.create gmail.users.drafts.update
    "sizeEstimate": 42, # Estimated size in bytes of the 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 <code>threadId</code> must be specified on the
        # <code>Message</code> or <code>Draft.Message</code> you supply with your
        # request.</li>
        # <li>The <code>References</code> and <code>In-Reply-To</code> headers must
        # be set in compliance with the
        # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
        # <li>The <code>Subject</code> headers must match.
        # @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",
    ],
    "id": "A String", # The immutable ID of the message.
  },
  "id": "A String", # The immutable ID of the draft.
}

  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.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A draft email in the user's mailbox.
    "message": { # An email message. # The message content of the draft.
      "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 <code>Date</code> header. However, for API-migrated mail, it can
          # be configured by client to be based on the <code>Date</code> header.
      "historyId": "A String", # The ID of the last history record that modified this message.
      "payload": { # A single MIME message part. # The parsed email structure in the message parts.
        "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.
          "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.
          "attachmentId": "A String", # When present, contains the ID of an external attachment that can be
              # retrieved in a separate <code>messages.attachments.get</code> request.
              # When not present, the entire content of the message part body is
              # contained in the data field.
          "size": 42, # Number of bytes for the message part data (encoding notwithstanding).
        },
        "mimeType": "A String", # The MIME type of the message part.
        "partId": "A String", # The immutable ID of the message part.
        "filename": "A String", # The filename of the attachment. Only present if this message part
            # represents an attachment.
        "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 <code>To</code>, <code>From</code>, and
            # <code>Subject</code>.
          {
            "name": "A String", # The name of the header before the <code>:</code> separator. For
                # example, <code>To</code>.
            "value": "A String", # The value of the header after the <code>:</code> separator. For example,
                # <code>someuser@example.com</code>.
          },
        ],
        "parts": [ # The child MIME message parts of this part. This only applies to container
            # MIME message parts, for example <code>multipart/*</code>. For non-
            # container MIME message part types, such as <code>text/plain</code>, 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
        ],
      },
      "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 <code>messages.get</code> and
          # <code>drafts.get</code> responses when the <code>format=RAW</code>
          # parameter is supplied.
          # @mutable gmail.users.messages.insert gmail.users.messages.send
          # @mutable gmail.users.drafts.create gmail.users.drafts.update
      "sizeEstimate": 42, # Estimated size in bytes of the 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 <code>threadId</code> must be specified on the
          # <code>Message</code> or <code>Draft.Message</code> you supply with your
          # request.</li>
          # <li>The <code>References</code> and <code>In-Reply-To</code> headers must
          # be set in compliance with the
          # <a href="https://tools.ietf.org/html/rfc2822">RFC 2822</a> standard.</li>
          # <li>The <code>Subject</code> headers must match.
          # @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",
      ],
      "id": "A String", # The immutable ID of the message.
    },
    "id": "A String", # The immutable ID of the draft.
  }