{
  "baseUrl": "https://gmail.googleapis.com/",
  "revision": "20260706",
  "mtlsRootUrl": "https://gmail.mtls.googleapis.com/",
  "ownerName": "Google",
  "servicePath": "",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "batchPath": "batch",
  "ownerDomain": "google.com",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/gmail.compose": {
          "description": "Manage drafts and send emails"
        },
        "https://www.googleapis.com/auth/gmail.addons.current.message.action": {
          "description": "View your email messages when you interact with the add-on"
        },
        "https://www.googleapis.com/auth/gmail.addons.current.action.compose": {
          "description": "Manage drafts and send emails when you interact with the add-on"
        },
        "https://www.googleapis.com/auth/gmail.insert": {
          "description": "Add emails into your Gmail mailbox"
        },
        "https://www.googleapis.com/auth/gmail.settings.sharing": {
          "description": "Manage your sensitive mail settings, including who can manage your mail"
        },
        "https://www.googleapis.com/auth/gmail.send": {
          "description": "Send email on your behalf"
        },
        "https://mail.google.com/": {
          "description": "Read, compose, send, and permanently delete all your email from Gmail"
        },
        "https://www.googleapis.com/auth/gmail.addons.current.message.readonly": {
          "description": "View your email messages when the add-on is running"
        },
        "https://www.googleapis.com/auth/gmail.labels": {
          "description": "See and edit your email labels"
        },
        "https://www.googleapis.com/auth/gmail.settings.basic": {
          "description": "See, edit, create, or change your email settings and filters in Gmail"
        },
        "https://www.googleapis.com/auth/gmail.modify": {
          "description": "Read, compose, and send emails from your Gmail account"
        },
        "https://www.googleapis.com/auth/gmail.addons.current.message.metadata": {
          "description": "View your email message metadata when the add-on is running"
        },
        "https://www.googleapis.com/auth/gmail.metadata": {
          "description": "View your email message metadata such as labels and headers, but not the email body"
        },
        "https://www.googleapis.com/auth/gmail.readonly": {
          "description": "View your email messages and settings"
        }
      }
    }
  },
  "documentationLink": "https://developers.google.com/workspace/gmail/api/",
  "discoveryVersion": "v1",
  "version": "v1",
  "kind": "discovery#restDescription",
  "id": "gmail:v1",
  "name": "gmail",
  "basePath": "",
  "rootUrl": "https://gmail.googleapis.com/",
  "title": "Gmail API",
  "resources": {
    "users": {
      "methods": {
        "getProfile": {
          "description": "Gets the current user's Gmail profile.",
          "parameters": {
            "userId": {
              "location": "path",
              "required": true,
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string",
              "default": "me"
            }
          },
          "parameterOrder": [
            "userId"
          ],
          "response": {
            "$ref": "Profile"
          },
          "id": "gmail.users.getProfile",
          "flatPath": "gmail/v1/users/{userId}/profile",
          "path": "gmail/v1/users/{userId}/profile",
          "httpMethod": "GET",
          "scopes": [
            "https://mail.google.com/",
            "https://www.googleapis.com/auth/gmail.compose",
            "https://www.googleapis.com/auth/gmail.metadata",
            "https://www.googleapis.com/auth/gmail.modify",
            "https://www.googleapis.com/auth/gmail.readonly"
          ]
        },
        "watch": {
          "description": "Set up or update a push notification watch on the given user mailbox. For more information, see [Configure push notifications in Gmail API](https://developers.google.com/workspace/gmail/api/guides/push).",
          "parameters": {
            "userId": {
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "required": true,
              "location": "path",
              "default": "me",
              "type": "string"
            }
          },
          "request": {
            "$ref": "WatchRequest"
          },
          "parameterOrder": [
            "userId"
          ],
          "response": {
            "$ref": "WatchResponse"
          },
          "id": "gmail.users.watch",
          "flatPath": "gmail/v1/users/{userId}/watch",
          "path": "gmail/v1/users/{userId}/watch",
          "httpMethod": "POST",
          "scopes": [
            "https://mail.google.com/",
            "https://www.googleapis.com/auth/gmail.metadata",
            "https://www.googleapis.com/auth/gmail.modify",
            "https://www.googleapis.com/auth/gmail.readonly"
          ]
        },
        "stop": {
          "id": "gmail.users.stop",
          "flatPath": "gmail/v1/users/{userId}/stop",
          "scopes": [
            "https://mail.google.com/",
            "https://www.googleapis.com/auth/gmail.metadata",
            "https://www.googleapis.com/auth/gmail.modify",
            "https://www.googleapis.com/auth/gmail.readonly"
          ],
          "parameterOrder": [
            "userId"
          ],
          "httpMethod": "POST",
          "path": "gmail/v1/users/{userId}/stop",
          "parameters": {
            "userId": {
              "required": true,
              "location": "path",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "default": "me",
              "type": "string"
            }
          },
          "description": "Turn off push notification delivery for the given user mailbox. For more information, see [Configure push notifications in Gmail API](https://developers.google.com/workspace/gmail/api/guides/push)."
        }
      },
      "resources": {
        "drafts": {
          "methods": {
            "delete": {
              "httpMethod": "DELETE",
              "path": "gmail/v1/users/{userId}/drafts/{id}",
              "parameters": {
                "userId": {
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path",
                  "default": "me",
                  "type": "string"
                },
                "id": {
                  "description": "The ID of the draft to delete.",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "description": "Immediately and permanently deletes the specified draft. Does not simply trash it. For more information, see [Create and send draft emails](https://developers.google.com/workspace/gmail/api/guides/drafts).",
              "id": "gmail.users.drafts.delete",
              "flatPath": "gmail/v1/users/{userId}/drafts/{id}",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.addons.current.action.compose",
                "https://www.googleapis.com/auth/gmail.compose",
                "https://www.googleapis.com/auth/gmail.modify"
              ],
              "parameterOrder": [
                "userId",
                "id"
              ]
            },
            "send": {
              "supportsMediaUpload": true,
              "path": "gmail/v1/users/{userId}/drafts/send",
              "httpMethod": "POST",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.addons.current.action.compose",
                "https://www.googleapis.com/auth/gmail.compose",
                "https://www.googleapis.com/auth/gmail.modify"
              ],
              "mediaUpload": {
                "accept": [
                  "message/*"
                ],
                "protocols": {
                  "resumable": {
                    "path": "/resumable/upload/gmail/v1/users/{userId}/drafts/send",
                    "multipart": true
                  },
                  "simple": {
                    "path": "/upload/gmail/v1/users/{userId}/drafts/send",
                    "multipart": true
                  }
                },
                "maxSize": "36700160"
              },
              "description": "Sends the specified, existing draft to the recipients in the `To`, `Cc`, and `Bcc` headers. For more information, see [Create and send draft emails](https://developers.google.com/workspace/gmail/api/guides/drafts).",
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                }
              },
              "request": {
                "$ref": "Draft"
              },
              "parameterOrder": [
                "userId"
              ],
              "response": {
                "$ref": "Message"
              },
              "id": "gmail.users.drafts.send",
              "flatPath": "gmail/v1/users/{userId}/drafts/send"
            },
            "list": {
              "parameterOrder": [
                "userId"
              ],
              "response": {
                "$ref": "ListDraftsResponse"
              },
              "id": "gmail.users.drafts.list",
              "flatPath": "gmail/v1/users/{userId}/drafts",
              "description": "Lists the drafts in the user's mailbox. For more information, see [Create and send draft emails](https://developers.google.com/workspace/gmail/api/guides/drafts).",
              "parameters": {
                "includeSpamTrash": {
                  "location": "query",
                  "default": "false",
                  "description": "Include drafts from `SPAM` and `TRASH` in the results.",
                  "type": "boolean"
                },
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                },
                "q": {
                  "description": "Only return draft messages matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: is:unread\"`.",
                  "type": "string",
                  "location": "query"
                },
                "maxResults": {
                  "type": "integer",
                  "default": "100",
                  "description": "Maximum number of drafts to return. This field defaults to 100. The maximum allowed value for this field is 500.",
                  "location": "query",
                  "format": "uint32"
                },
                "pageToken": {
                  "location": "query",
                  "description": "Page token to retrieve a specific page of results in the list.",
                  "type": "string"
                }
              },
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.compose",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly"
              ],
              "path": "gmail/v1/users/{userId}/drafts",
              "httpMethod": "GET"
            },
            "update": {
              "supportsMediaUpload": true,
              "path": "gmail/v1/users/{userId}/drafts/{id}",
              "httpMethod": "PUT",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.addons.current.action.compose",
                "https://www.googleapis.com/auth/gmail.compose",
                "https://www.googleapis.com/auth/gmail.modify"
              ],
              "mediaUpload": {
                "maxSize": "36700160",
                "accept": [
                  "message/*"
                ],
                "protocols": {
                  "simple": {
                    "path": "/upload/gmail/v1/users/{userId}/drafts/{id}",
                    "multipart": true
                  },
                  "resumable": {
                    "multipart": true,
                    "path": "/resumable/upload/gmail/v1/users/{userId}/drafts/{id}"
                  }
                }
              },
              "description": "Replaces a draft's content. For more information, see [Create and send draft emails](https://developers.google.com/workspace/gmail/api/guides/drafts).",
              "parameters": {
                "userId": {
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "default": "me"
                },
                "id": {
                  "description": "The ID of the draft to update.",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "request": {
                "$ref": "Draft"
              },
              "parameterOrder": [
                "userId",
                "id"
              ],
              "response": {
                "$ref": "Draft"
              },
              "id": "gmail.users.drafts.update",
              "flatPath": "gmail/v1/users/{userId}/drafts/{id}"
            },
            "create": {
              "request": {
                "$ref": "Draft"
              },
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                }
              },
              "mediaUpload": {
                "maxSize": "36700160",
                "accept": [
                  "message/*"
                ],
                "protocols": {
                  "resumable": {
                    "multipart": true,
                    "path": "/resumable/upload/gmail/v1/users/{userId}/drafts"
                  },
                  "simple": {
                    "path": "/upload/gmail/v1/users/{userId}/drafts",
                    "multipart": true
                  }
                }
              },
              "description": "Creates a draft with the `DRAFT` label. For more information, see [Create and send draft emails](https://developers.google.com/workspace/gmail/api/guides/drafts).",
              "id": "gmail.users.drafts.create",
              "flatPath": "gmail/v1/users/{userId}/drafts",
              "response": {
                "$ref": "Draft"
              },
              "parameterOrder": [
                "userId"
              ],
              "httpMethod": "POST",
              "path": "gmail/v1/users/{userId}/drafts",
              "supportsMediaUpload": true,
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.addons.current.action.compose",
                "https://www.googleapis.com/auth/gmail.compose",
                "https://www.googleapis.com/auth/gmail.modify"
              ]
            },
            "get": {
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.compose",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly"
              ],
              "httpMethod": "GET",
              "path": "gmail/v1/users/{userId}/drafts/{id}",
              "parameterOrder": [
                "userId",
                "id"
              ],
              "id": "gmail.users.drafts.get",
              "flatPath": "gmail/v1/users/{userId}/drafts/{id}",
              "response": {
                "$ref": "Draft"
              },
              "parameters": {
                "userId": {
                  "location": "path",
                  "required": true,
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "type": "string",
                  "default": "me"
                },
                "format": {
                  "default": "full",
                  "type": "string",
                  "enum": [
                    "minimal",
                    "full",
                    "raw",
                    "metadata"
                  ],
                  "location": "query",
                  "enumDescriptions": [
                    "Returns only email message ID and labels; does not return the email headers, body, or payload.",
                    "Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.",
                    "Returns the full email message data with body content in the `raw` field as a base64url encoded string; the `payload` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.",
                    "Returns only email message ID, labels, and email headers."
                  ],
                  "description": "The format to return the draft in."
                },
                "id": {
                  "description": "The ID of the draft to retrieve.",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "description": "Gets the specified draft. For more information, see [Create and send draft emails](https://developers.google.com/workspace/gmail/api/guides/drafts)."
            }
          }
        },
        "history": {
          "methods": {
            "list": {
              "httpMethod": "GET",
              "path": "gmail/v1/users/{userId}/history",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.metadata",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly"
              ],
              "parameters": {
                "labelId": {
                  "description": "Only return messages with a label matching the ID.",
                  "type": "string",
                  "location": "query"
                },
                "maxResults": {
                  "location": "query",
                  "format": "uint32",
                  "description": "Maximum number of history records to return. This field defaults to 100. The maximum allowed value for this field is 500.",
                  "default": "100",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "Page token to retrieve a specific page of results in the list.",
                  "type": "string",
                  "location": "query"
                },
                "userId": {
                  "required": true,
                  "location": "path",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "default": "me",
                  "type": "string"
                },
                "startHistoryId": {
                  "description": "Required. Returns history records after the specified `startHistoryId`. The supplied `startHistoryId` should be obtained from the `historyId` of a message, thread, or previous `list` response. History IDs increase chronologically but are not contiguous with random gaps in between valid IDs. Supplying an invalid or out of date `startHistoryId` typically returns an `HTTP 404` error code. A `historyId` is typically valid for at least a week, but in some rare circumstances may be valid for only a few hours. If you receive an `HTTP 404` error response, your application should perform a full sync. If you receive no `nextPageToken` in the response, there are no updates to retrieve and you can store the returned `historyId` for a future request.",
                  "type": "string",
                  "location": "query",
                  "format": "uint64"
                },
                "historyTypes": {
                  "repeated": true,
                  "type": "string",
                  "enum": [
                    "messageAdded",
                    "messageDeleted",
                    "labelAdded",
                    "labelRemoved"
                  ],
                  "location": "query",
                  "enumDescriptions": [
                    "",
                    "",
                    "",
                    ""
                  ],
                  "description": "History types to be returned by the function"
                }
              },
              "description": "Lists the history of all changes to the given mailbox. History results are returned in chronological order (increasing `historyId`). For more information, see [Synchronize clients with Gmail](https://developers.google.com/workspace/gmail/api/guides/sync).",
              "id": "gmail.users.history.list",
              "flatPath": "gmail/v1/users/{userId}/history",
              "response": {
                "$ref": "ListHistoryResponse"
              },
              "parameterOrder": [
                "userId"
              ]
            }
          }
        },
        "messages": {
          "methods": {
            "modify": {
              "httpMethod": "POST",
              "path": "gmail/v1/users/{userId}/messages/{id}/modify",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify"
              ],
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user."
                },
                "id": {
                  "required": true,
                  "location": "path",
                  "description": "The ID of the message to modify.",
                  "type": "string"
                }
              },
              "description": "Modifies the labels and the Classification Label values on the specified message. For administrators modifying message for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.modify.restricted` scope.",
              "request": {
                "$ref": "ModifyMessageRequest"
              },
              "parameterOrder": [
                "userId",
                "id"
              ],
              "id": "gmail.users.messages.modify",
              "flatPath": "gmail/v1/users/{userId}/messages/{id}/modify",
              "response": {
                "$ref": "Message"
              }
            },
            "delete": {
              "parameterOrder": [
                "userId",
                "id"
              ],
              "scopes": [
                "https://mail.google.com/"
              ],
              "id": "gmail.users.messages.delete",
              "flatPath": "gmail/v1/users/{userId}/messages/{id}",
              "description": "Immediately and permanently deletes the specified message. This operation cannot be undone. Prefer `messages.trash` instead.",
              "parameters": {
                "userId": {
                  "required": true,
                  "location": "path",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "default": "me",
                  "type": "string"
                },
                "id": {
                  "required": true,
                  "location": "path",
                  "description": "The ID of the message to delete.",
                  "type": "string"
                }
              },
              "path": "gmail/v1/users/{userId}/messages/{id}",
              "httpMethod": "DELETE"
            },
            "send": {
              "parameters": {
                "userId": {
                  "required": true,
                  "location": "path",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "default": "me",
                  "type": "string"
                }
              },
              "mediaUpload": {
                "maxSize": "36700160",
                "accept": [
                  "message/*"
                ],
                "protocols": {
                  "simple": {
                    "multipart": true,
                    "path": "/upload/gmail/v1/users/{userId}/messages/send"
                  },
                  "resumable": {
                    "multipart": true,
                    "path": "/resumable/upload/gmail/v1/users/{userId}/messages/send"
                  }
                }
              },
              "description": "Sends the specified message to the recipients in the `To`, `Cc`, and `Bcc` headers. For more information, see [Create and send email messages](https://developers.google.com/workspace/gmail/api/guides/sending).",
              "request": {
                "$ref": "Message"
              },
              "parameterOrder": [
                "userId"
              ],
              "id": "gmail.users.messages.send",
              "flatPath": "gmail/v1/users/{userId}/messages/send",
              "response": {
                "$ref": "Message"
              },
              "supportsMediaUpload": true,
              "httpMethod": "POST",
              "path": "gmail/v1/users/{userId}/messages/send",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.addons.current.action.compose",
                "https://www.googleapis.com/auth/gmail.compose",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.send"
              ]
            },
            "list": {
              "parameterOrder": [
                "userId"
              ],
              "id": "gmail.users.messages.list",
              "flatPath": "gmail/v1/users/{userId}/messages",
              "response": {
                "$ref": "ListMessagesResponse"
              },
              "parameters": {
                "userId": {
                  "required": true,
                  "location": "path",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "default": "me",
                  "type": "string"
                },
                "q": {
                  "location": "query",
                  "description": "Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: is:unread\"`. Parameter cannot be used when accessing the api using the gmail.metadata scope.",
                  "type": "string"
                },
                "labelIds": {
                  "location": "query",
                  "repeated": true,
                  "description": "Only return messages with labels that match all of the specified label IDs. Messages in a thread might have labels that other messages in the same thread don't have. To learn more, see [Manage labels on messages and threads](https://developers.google.com/workspace/gmail/api/guides/labels#manage_labels_on_messages_threads).",
                  "type": "string"
                },
                "includeSpamTrash": {
                  "default": "false",
                  "description": "Include messages from `SPAM` and `TRASH` in the results.",
                  "type": "boolean",
                  "location": "query"
                },
                "maxResults": {
                  "description": "Maximum number of messages to return. This field defaults to 100. The maximum allowed value for this field is 500.",
                  "location": "query",
                  "format": "uint32",
                  "default": "100",
                  "type": "integer"
                },
                "pageToken": {
                  "location": "query",
                  "description": "Page token to retrieve a specific page of results in the list.",
                  "type": "string"
                }
              },
              "description": "Lists the messages in the user's mailbox. For more information, see [List Gmail messages](https://developers.google.com/workspace/gmail/api/guides/list-messages).",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.metadata",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly"
              ],
              "httpMethod": "GET",
              "path": "gmail/v1/users/{userId}/messages"
            },
            "import": {
              "mediaUpload": {
                "maxSize": "157286400",
                "accept": [
                  "message/*"
                ],
                "protocols": {
                  "simple": {
                    "multipart": true,
                    "path": "/upload/gmail/v1/users/{userId}/messages/import"
                  },
                  "resumable": {
                    "multipart": true,
                    "path": "/resumable/upload/gmail/v1/users/{userId}/messages/import"
                  }
                }
              },
              "description": "Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages, such as those attempting to perform domain spoofing. This method does not send a message. Note that the maximum size of the message is 150 MB.",
              "parameters": {
                "deleted": {
                  "location": "query",
                  "default": "false",
                  "description": "Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts.",
                  "type": "boolean"
                },
                "userId": {
                  "type": "string",
                  "default": "me",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "location": "path",
                  "required": true
                },
                "internalDateSource": {
                  "location": "query",
                  "enumDescriptions": [
                    "Internal message date set to current time when received by Gmail.",
                    "Internal message time based on 'Date' header in email, when valid."
                  ],
                  "description": "Source for Gmail's internal date of the message.",
                  "default": "dateHeader",
                  "type": "string",
                  "enum": [
                    "receivedTime",
                    "dateHeader"
                  ]
                },
                "neverMarkSpam": {
                  "description": "Ignore the Gmail spam classifier decision and never mark this email as SPAM in the mailbox.",
                  "type": "boolean",
                  "default": "false",
                  "location": "query"
                },
                "processForCalendar": {
                  "default": "false",
                  "description": "Process calendar invites in the email and add any extracted meetings to the Google Calendar for this user.",
                  "type": "boolean",
                  "location": "query"
                }
              },
              "request": {
                "$ref": "Message"
              },
              "parameterOrder": [
                "userId"
              ],
              "response": {
                "$ref": "Message"
              },
              "id": "gmail.users.messages.import",
              "flatPath": "gmail/v1/users/{userId}/messages/import",
              "supportsMediaUpload": true,
              "path": "gmail/v1/users/{userId}/messages/import",
              "httpMethod": "POST",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.insert",
                "https://www.googleapis.com/auth/gmail.modify"
              ]
            },
            "untrash": {
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user."
                },
                "id": {
                  "description": "The ID of the message to remove from Trash.",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "description": "Removes the specified message from the trash.",
              "parameterOrder": [
                "userId",
                "id"
              ],
              "id": "gmail.users.messages.untrash",
              "flatPath": "gmail/v1/users/{userId}/messages/{id}/untrash",
              "response": {
                "$ref": "Message"
              },
              "httpMethod": "POST",
              "path": "gmail/v1/users/{userId}/messages/{id}/untrash",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify"
              ]
            },
            "batchModify": {
              "path": "gmail/v1/users/{userId}/messages/batchModify",
              "httpMethod": "POST",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify"
              ],
              "request": {
                "$ref": "BatchModifyMessagesRequest"
              },
              "description": "Modifies the labels and the Classification Label values on the specified messages. For administrators modifying messages for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.modify.restricted` scope.",
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                }
              },
              "id": "gmail.users.messages.batchModify",
              "flatPath": "gmail/v1/users/{userId}/messages/batchModify",
              "parameterOrder": [
                "userId"
              ]
            },
            "trash": {
              "response": {
                "$ref": "Message"
              },
              "id": "gmail.users.messages.trash",
              "flatPath": "gmail/v1/users/{userId}/messages/{id}/trash",
              "parameterOrder": [
                "userId",
                "id"
              ],
              "description": "Moves the specified message to the trash.",
              "parameters": {
                "userId": {
                  "required": true,
                  "location": "path",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "default": "me",
                  "type": "string"
                },
                "id": {
                  "description": "The ID of the message to Trash.",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify"
              ],
              "path": "gmail/v1/users/{userId}/messages/{id}/trash",
              "httpMethod": "POST"
            },
            "batchDelete": {
              "path": "gmail/v1/users/{userId}/messages/batchDelete",
              "httpMethod": "POST",
              "scopes": [
                "https://mail.google.com/"
              ],
              "request": {
                "$ref": "BatchDeleteMessagesRequest"
              },
              "description": "Deletes many messages by message ID. Provides no guarantees that messages were not already deleted or even existed at all.",
              "parameters": {
                "userId": {
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path",
                  "default": "me",
                  "type": "string"
                }
              },
              "id": "gmail.users.messages.batchDelete",
              "flatPath": "gmail/v1/users/{userId}/messages/batchDelete",
              "parameterOrder": [
                "userId"
              ]
            },
            "get": {
              "path": "gmail/v1/users/{userId}/messages/{id}",
              "httpMethod": "GET",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.addons.current.message.action",
                "https://www.googleapis.com/auth/gmail.addons.current.message.metadata",
                "https://www.googleapis.com/auth/gmail.addons.current.message.readonly",
                "https://www.googleapis.com/auth/gmail.metadata",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly"
              ],
              "description": "Gets the specified message.",
              "parameters": {
                "id": {
                  "location": "path",
                  "required": true,
                  "description": "The ID of the message to retrieve. This ID is usually retrieved using `messages.list`. The ID is also contained in the result when a message is inserted (`messages.insert`) or imported (`messages.import`).",
                  "type": "string"
                },
                "metadataHeaders": {
                  "location": "query",
                  "repeated": true,
                  "description": "When given and format is `METADATA`, only include headers specified.",
                  "type": "string"
                },
                "format": {
                  "description": "The format to return the message in.",
                  "location": "query",
                  "enumDescriptions": [
                    "Returns only email message ID and labels; does not return the email headers, body, or payload.",
                    "Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.",
                    "Returns the full email message data with body content in the `raw` field as a base64url encoded string; the `payload` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.",
                    "Returns only email message ID, labels, and email headers."
                  ],
                  "type": "string",
                  "enum": [
                    "minimal",
                    "full",
                    "raw",
                    "metadata"
                  ],
                  "default": "full"
                },
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                }
              },
              "response": {
                "$ref": "Message"
              },
              "id": "gmail.users.messages.get",
              "flatPath": "gmail/v1/users/{userId}/messages/{id}",
              "parameterOrder": [
                "userId",
                "id"
              ]
            },
            "insert": {
              "parameterOrder": [
                "userId"
              ],
              "id": "gmail.users.messages.insert",
              "flatPath": "gmail/v1/users/{userId}/messages",
              "response": {
                "$ref": "Message"
              },
              "parameters": {
                "userId": {
                  "location": "path",
                  "required": true,
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "type": "string",
                  "default": "me"
                },
                "internalDateSource": {
                  "default": "receivedTime",
                  "type": "string",
                  "enum": [
                    "receivedTime",
                    "dateHeader"
                  ],
                  "location": "query",
                  "enumDescriptions": [
                    "Internal message date set to current time when received by Gmail.",
                    "Internal message time based on 'Date' header in email, when valid."
                  ],
                  "description": "Source for Gmail's internal date of the message."
                },
                "deleted": {
                  "description": "Mark the email as permanently deleted (not TRASH) and only visible in Google Vault to a Vault administrator. Only used for Google Workspace accounts.",
                  "type": "boolean",
                  "default": "false",
                  "location": "query"
                }
              },
              "mediaUpload": {
                "maxSize": "157286400",
                "accept": [
                  "message/*"
                ],
                "protocols": {
                  "simple": {
                    "path": "/upload/gmail/v1/users/{userId}/messages",
                    "multipart": true
                  },
                  "resumable": {
                    "path": "/resumable/upload/gmail/v1/users/{userId}/messages",
                    "multipart": true
                  }
                }
              },
              "description": "Directly inserts a message into only this user's mailbox similar to `IMAP APPEND`, bypassing most scanning and classification. Does not send a message. For more information, see [Create and send email messages](https://developers.google.com/workspace/gmail/api/guides/sending).",
              "request": {
                "$ref": "Message"
              },
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.insert",
                "https://www.googleapis.com/auth/gmail.modify"
              ],
              "supportsMediaUpload": true,
              "httpMethod": "POST",
              "path": "gmail/v1/users/{userId}/messages"
            }
          },
          "resources": {
            "attachments": {
              "methods": {
                "get": {
                  "httpMethod": "GET",
                  "path": "gmail/v1/users/{userId}/messages/{messageId}/attachments/{id}",
                  "scopes": [
                    "https://mail.google.com/",
                    "https://www.googleapis.com/auth/gmail.addons.current.message.action",
                    "https://www.googleapis.com/auth/gmail.addons.current.message.readonly",
                    "https://www.googleapis.com/auth/gmail.modify",
                    "https://www.googleapis.com/auth/gmail.readonly"
                  ],
                  "parameters": {
                    "userId": {
                      "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                      "required": true,
                      "location": "path",
                      "default": "me",
                      "type": "string"
                    },
                    "id": {
                      "location": "path",
                      "required": true,
                      "description": "The ID of the attachment.",
                      "type": "string"
                    },
                    "messageId": {
                      "description": "The ID of the message containing the attachment.",
                      "type": "string",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "description": "Gets the specified message attachment.",
                  "parameterOrder": [
                    "userId",
                    "messageId",
                    "id"
                  ],
                  "id": "gmail.users.messages.attachments.get",
                  "flatPath": "gmail/v1/users/{userId}/messages/{messageId}/attachments/{id}",
                  "response": {
                    "$ref": "MessagePartBody"
                  }
                }
              }
            }
          }
        },
        "threads": {
          "methods": {
            "untrash": {
              "description": "Removes the specified thread from the trash. Any messages that belong to the thread are also removed from the trash. For more information, see [Manage threads](https://developers.google.com/workspace/gmail/api/guides/threads).",
              "parameters": {
                "userId": {
                  "type": "string",
                  "default": "me",
                  "location": "path",
                  "required": true,
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user."
                },
                "id": {
                  "description": "The ID of the thread to remove from Trash.",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "response": {
                "$ref": "Thread"
              },
              "id": "gmail.users.threads.untrash",
              "flatPath": "gmail/v1/users/{userId}/threads/{id}/untrash",
              "parameterOrder": [
                "userId",
                "id"
              ],
              "path": "gmail/v1/users/{userId}/threads/{id}/untrash",
              "httpMethod": "POST",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify"
              ]
            },
            "modify": {
              "parameterOrder": [
                "userId",
                "id"
              ],
              "response": {
                "$ref": "Thread"
              },
              "id": "gmail.users.threads.modify",
              "flatPath": "gmail/v1/users/{userId}/threads/{id}/modify",
              "description": "Modifies the labels applied to the thread. This applies to all messages in the thread. For more information, see [Manage threads](https://developers.google.com/workspace/gmail/api/guides/threads).",
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                },
                "id": {
                  "required": true,
                  "location": "path",
                  "description": "The ID of the thread to modify.",
                  "type": "string"
                }
              },
              "request": {
                "$ref": "ModifyThreadRequest"
              },
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify"
              ],
              "path": "gmail/v1/users/{userId}/threads/{id}/modify",
              "httpMethod": "POST"
            },
            "delete": {
              "parameterOrder": [
                "userId",
                "id"
              ],
              "scopes": [
                "https://mail.google.com/"
              ],
              "id": "gmail.users.threads.delete",
              "flatPath": "gmail/v1/users/{userId}/threads/{id}",
              "description": "Immediately and permanently deletes the specified thread. Any messages that belong to the thread are also deleted. This operation cannot be undone. Prefer `threads.trash` instead. For more information, see [Manage threads](https://developers.google.com/workspace/gmail/api/guides/threads).",
              "parameters": {
                "userId": {
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "default": "me"
                },
                "id": {
                  "description": "ID of the Thread to delete.",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "path": "gmail/v1/users/{userId}/threads/{id}",
              "httpMethod": "DELETE"
            },
            "list": {
              "httpMethod": "GET",
              "path": "gmail/v1/users/{userId}/threads",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.metadata",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly"
              ],
              "parameters": {
                "userId": {
                  "location": "path",
                  "required": true,
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "type": "string",
                  "default": "me"
                },
                "q": {
                  "description": "Only return threads matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: is:unread\"`. Parameter cannot be used when accessing the api using the gmail.metadata scope.",
                  "type": "string",
                  "location": "query"
                },
                "labelIds": {
                  "description": "Only return threads with labels that match all of the specified label IDs.",
                  "type": "string",
                  "location": "query",
                  "repeated": true
                },
                "includeSpamTrash": {
                  "description": "Include threads from `SPAM` and `TRASH` in the results.",
                  "type": "boolean",
                  "default": "false",
                  "location": "query"
                },
                "maxResults": {
                  "location": "query",
                  "format": "uint32",
                  "description": "Maximum number of threads to return. This field defaults to 100. The maximum allowed value for this field is 500.",
                  "default": "100",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "Page token to retrieve a specific page of results in the list.",
                  "type": "string",
                  "location": "query"
                }
              },
              "description": "Lists the threads in the user's mailbox. For more information, see [Manage threads](https://developers.google.com/workspace/gmail/api/guides/threads).",
              "parameterOrder": [
                "userId"
              ],
              "id": "gmail.users.threads.list",
              "flatPath": "gmail/v1/users/{userId}/threads",
              "response": {
                "$ref": "ListThreadsResponse"
              }
            },
            "trash": {
              "description": "Moves the specified thread to the trash. Any messages that belong to the thread are also moved to the trash. For more information, see [Manage threads](https://developers.google.com/workspace/gmail/api/guides/threads).",
              "parameters": {
                "userId": {
                  "location": "path",
                  "required": true,
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "type": "string",
                  "default": "me"
                },
                "id": {
                  "description": "The ID of the thread to Trash.",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "response": {
                "$ref": "Thread"
              },
              "id": "gmail.users.threads.trash",
              "flatPath": "gmail/v1/users/{userId}/threads/{id}/trash",
              "parameterOrder": [
                "userId",
                "id"
              ],
              "path": "gmail/v1/users/{userId}/threads/{id}/trash",
              "httpMethod": "POST",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify"
              ]
            },
            "get": {
              "parameters": {
                "userId": {
                  "required": true,
                  "location": "path",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "default": "me",
                  "type": "string"
                },
                "id": {
                  "required": true,
                  "location": "path",
                  "description": "The ID of the thread to retrieve.",
                  "type": "string"
                },
                "metadataHeaders": {
                  "description": "When given and format is METADATA, only include headers specified.",
                  "type": "string",
                  "location": "query",
                  "repeated": true
                },
                "format": {
                  "type": "string",
                  "enum": [
                    "full",
                    "metadata",
                    "minimal"
                  ],
                  "default": "full",
                  "location": "query",
                  "enumDescriptions": [
                    "Returns the full email message data with body content parsed in the `payload` field; the `raw` field is not used. Format cannot be used when accessing the api using the gmail.metadata scope.",
                    "Returns only email message IDs, labels, and email headers.",
                    "Returns only email message IDs and labels; does not return the email headers, body, or payload."
                  ],
                  "description": "The format to return the messages in."
                }
              },
              "description": "Gets the specified thread. For more information, see [Manage threads](https://developers.google.com/workspace/gmail/api/guides/threads).",
              "id": "gmail.users.threads.get",
              "flatPath": "gmail/v1/users/{userId}/threads/{id}",
              "response": {
                "$ref": "Thread"
              },
              "parameterOrder": [
                "userId",
                "id"
              ],
              "httpMethod": "GET",
              "path": "gmail/v1/users/{userId}/threads/{id}",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.addons.current.message.action",
                "https://www.googleapis.com/auth/gmail.addons.current.message.metadata",
                "https://www.googleapis.com/auth/gmail.addons.current.message.readonly",
                "https://www.googleapis.com/auth/gmail.metadata",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly"
              ]
            }
          }
        },
        "labels": {
          "methods": {
            "patch": {
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                },
                "id": {
                  "location": "path",
                  "required": true,
                  "description": "The ID of the label to update.",
                  "type": "string"
                }
              },
              "description": "Patch the specified label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
              "request": {
                "$ref": "Label"
              },
              "parameterOrder": [
                "userId",
                "id"
              ],
              "id": "gmail.users.labels.patch",
              "flatPath": "gmail/v1/users/{userId}/labels/{id}",
              "response": {
                "$ref": "Label"
              },
              "httpMethod": "PATCH",
              "path": "gmail/v1/users/{userId}/labels/{id}",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.labels",
                "https://www.googleapis.com/auth/gmail.modify"
              ]
            },
            "delete": {
              "path": "gmail/v1/users/{userId}/labels/{id}",
              "httpMethod": "DELETE",
              "description": "Immediately and permanently deletes the specified label and removes it from any messages and threads that it's applied to. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
              "parameters": {
                "userId": {
                  "type": "string",
                  "default": "me",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "location": "path",
                  "required": true
                },
                "id": {
                  "description": "The ID of the label to delete.",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "id": "gmail.users.labels.delete",
              "flatPath": "gmail/v1/users/{userId}/labels/{id}",
              "parameterOrder": [
                "userId",
                "id"
              ],
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.labels",
                "https://www.googleapis.com/auth/gmail.modify"
              ]
            },
            "list": {
              "httpMethod": "GET",
              "path": "gmail/v1/users/{userId}/labels",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.labels",
                "https://www.googleapis.com/auth/gmail.metadata",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly"
              ],
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                }
              },
              "description": "Lists all labels in the user's mailbox. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
              "id": "gmail.users.labels.list",
              "flatPath": "gmail/v1/users/{userId}/labels",
              "response": {
                "$ref": "ListLabelsResponse"
              },
              "parameterOrder": [
                "userId"
              ]
            },
            "update": {
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.labels",
                "https://www.googleapis.com/auth/gmail.modify"
              ],
              "httpMethod": "PUT",
              "path": "gmail/v1/users/{userId}/labels/{id}",
              "parameterOrder": [
                "userId",
                "id"
              ],
              "id": "gmail.users.labels.update",
              "flatPath": "gmail/v1/users/{userId}/labels/{id}",
              "response": {
                "$ref": "Label"
              },
              "parameters": {
                "userId": {
                  "required": true,
                  "location": "path",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "default": "me",
                  "type": "string"
                },
                "id": {
                  "description": "The ID of the label to update.",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "description": "Updates the specified label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
              "request": {
                "$ref": "Label"
              }
            },
            "create": {
              "parameterOrder": [
                "userId"
              ],
              "response": {
                "$ref": "Label"
              },
              "id": "gmail.users.labels.create",
              "flatPath": "gmail/v1/users/{userId}/labels",
              "description": "Creates a label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
              "parameters": {
                "userId": {
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "default": "me"
                }
              },
              "request": {
                "$ref": "Label"
              },
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.labels",
                "https://www.googleapis.com/auth/gmail.modify"
              ],
              "path": "gmail/v1/users/{userId}/labels",
              "httpMethod": "POST"
            },
            "get": {
              "httpMethod": "GET",
              "path": "gmail/v1/users/{userId}/labels/{id}",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.labels",
                "https://www.googleapis.com/auth/gmail.metadata",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly"
              ],
              "parameters": {
                "userId": {
                  "type": "string",
                  "default": "me",
                  "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                  "location": "path",
                  "required": true
                },
                "id": {
                  "description": "The ID of the label to retrieve.",
                  "type": "string",
                  "location": "path",
                  "required": true
                }
              },
              "description": "Gets the specified label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
              "parameterOrder": [
                "userId",
                "id"
              ],
              "id": "gmail.users.labels.get",
              "flatPath": "gmail/v1/users/{userId}/labels/{id}",
              "response": {
                "$ref": "Label"
              }
            }
          }
        },
        "settings": {
          "methods": {
            "updateLanguage": {
              "response": {
                "$ref": "LanguageSettings"
              },
              "id": "gmail.users.settings.updateLanguage",
              "flatPath": "gmail/v1/users/{userId}/settings/language",
              "parameterOrder": [
                "userId"
              ],
              "request": {
                "$ref": "LanguageSettings"
              },
              "description": "Updates language settings. For more information, see [Manage language settings](https://developers.google.com/workspace/gmail/api/guides/language-settings). If successful, the return object contains the `displayLanguage` that was saved for the user, which may differ from the value passed into the request. This is because the requested `displayLanguage` may not be directly supported by Gmail but have a close variant that is, and so the variant may be chosen and saved instead.",
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user."
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/gmail.settings.basic"
              ],
              "path": "gmail/v1/users/{userId}/settings/language",
              "httpMethod": "PUT"
            },
            "getVacation": {
              "description": "Gets vacation responder settings. For more information, see [Manage vacation settings with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/vacation_settings).",
              "parameters": {
                "userId": {
                  "type": "string",
                  "default": "me",
                  "location": "path",
                  "required": true,
                  "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user."
                }
              },
              "response": {
                "$ref": "VacationSettings"
              },
              "id": "gmail.users.settings.getVacation",
              "flatPath": "gmail/v1/users/{userId}/settings/vacation",
              "parameterOrder": [
                "userId"
              ],
              "path": "gmail/v1/users/{userId}/settings/vacation",
              "httpMethod": "GET",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly",
                "https://www.googleapis.com/auth/gmail.settings.basic"
              ]
            },
            "getImap": {
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly",
                "https://www.googleapis.com/auth/gmail.settings.basic"
              ],
              "path": "gmail/v1/users/{userId}/settings/imap",
              "httpMethod": "GET",
              "response": {
                "$ref": "ImapSettings"
              },
              "id": "gmail.users.settings.getImap",
              "flatPath": "gmail/v1/users/{userId}/settings/imap",
              "parameterOrder": [
                "userId"
              ],
              "description": "Gets IMAP settings. For more information, see [Configure POP and IMAP settings with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/pop_imap_settings).",
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                }
              }
            },
            "updatePop": {
              "parameterOrder": [
                "userId"
              ],
              "id": "gmail.users.settings.updatePop",
              "flatPath": "gmail/v1/users/{userId}/settings/pop",
              "response": {
                "$ref": "PopSettings"
              },
              "parameters": {
                "userId": {
                  "location": "path",
                  "required": true,
                  "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                  "type": "string",
                  "default": "me"
                }
              },
              "description": "Updates POP settings. For more information, see [Configure POP and IMAP settings with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/pop_imap_settings).",
              "request": {
                "$ref": "PopSettings"
              },
              "scopes": [
                "https://www.googleapis.com/auth/gmail.settings.basic"
              ],
              "httpMethod": "PUT",
              "path": "gmail/v1/users/{userId}/settings/pop"
            },
            "getAutoForwarding": {
              "description": "Gets the auto-forwarding setting for the specified account. For more information, see [Manage email forwarding](https://developers.google.com/workspace/gmail/api/guides/forwarding_settings).",
              "parameters": {
                "userId": {
                  "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path",
                  "default": "me",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "userId"
              ],
              "response": {
                "$ref": "AutoForwarding"
              },
              "id": "gmail.users.settings.getAutoForwarding",
              "flatPath": "gmail/v1/users/{userId}/settings/autoForwarding",
              "path": "gmail/v1/users/{userId}/settings/autoForwarding",
              "httpMethod": "GET",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly",
                "https://www.googleapis.com/auth/gmail.settings.basic"
              ]
            },
            "updateImap": {
              "response": {
                "$ref": "ImapSettings"
              },
              "id": "gmail.users.settings.updateImap",
              "flatPath": "gmail/v1/users/{userId}/settings/imap",
              "parameterOrder": [
                "userId"
              ],
              "request": {
                "$ref": "ImapSettings"
              },
              "description": "Updates IMAP settings. For more information, see [Configure POP and IMAP settings with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/pop_imap_settings).",
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user."
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/gmail.settings.basic"
              ],
              "path": "gmail/v1/users/{userId}/settings/imap",
              "httpMethod": "PUT"
            },
            "updateVacation": {
              "path": "gmail/v1/users/{userId}/settings/vacation",
              "httpMethod": "PUT",
              "scopes": [
                "https://www.googleapis.com/auth/gmail.settings.basic"
              ],
              "description": "Updates vacation responder settings. For more information, see [Manage vacation settings with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/vacation_settings).",
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                }
              },
              "request": {
                "$ref": "VacationSettings"
              },
              "parameterOrder": [
                "userId"
              ],
              "response": {
                "$ref": "VacationSettings"
              },
              "id": "gmail.users.settings.updateVacation",
              "flatPath": "gmail/v1/users/{userId}/settings/vacation"
            },
            "getLanguage": {
              "description": "Gets language settings. For more information, see [Manage language settings](https://developers.google.com/workspace/gmail/api/guides/language-settings).",
              "parameters": {
                "userId": {
                  "location": "path",
                  "required": true,
                  "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                  "type": "string",
                  "default": "me"
                }
              },
              "response": {
                "$ref": "LanguageSettings"
              },
              "id": "gmail.users.settings.getLanguage",
              "flatPath": "gmail/v1/users/{userId}/settings/language",
              "parameterOrder": [
                "userId"
              ],
              "path": "gmail/v1/users/{userId}/settings/language",
              "httpMethod": "GET",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly",
                "https://www.googleapis.com/auth/gmail.settings.basic"
              ]
            },
            "updateAutoForwarding": {
              "request": {
                "$ref": "AutoForwarding"
              },
              "parameters": {
                "userId": {
                  "default": "me",
                  "type": "string",
                  "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path"
                }
              },
              "description": "Updates the auto-forwarding setting for the specified account. A verified forwarding address must be specified when auto-forwarding is enabled. For more information, see [Manage email forwarding](https://developers.google.com/workspace/gmail/api/guides/forwarding_settings). This method is only available to service account clients that have been delegated domain-wide authority.",
              "id": "gmail.users.settings.updateAutoForwarding",
              "flatPath": "gmail/v1/users/{userId}/settings/autoForwarding",
              "response": {
                "$ref": "AutoForwarding"
              },
              "parameterOrder": [
                "userId"
              ],
              "httpMethod": "PUT",
              "path": "gmail/v1/users/{userId}/settings/autoForwarding",
              "scopes": [
                "https://www.googleapis.com/auth/gmail.settings.sharing"
              ]
            },
            "getPop": {
              "httpMethod": "GET",
              "path": "gmail/v1/users/{userId}/settings/pop",
              "scopes": [
                "https://mail.google.com/",
                "https://www.googleapis.com/auth/gmail.modify",
                "https://www.googleapis.com/auth/gmail.readonly",
                "https://www.googleapis.com/auth/gmail.settings.basic"
              ],
              "parameters": {
                "userId": {
                  "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                  "required": true,
                  "location": "path",
                  "default": "me",
                  "type": "string"
                }
              },
              "description": "Gets POP settings. For more information, see [Configure POP and IMAP settings with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/pop_imap_settings).",
              "id": "gmail.users.settings.getPop",
              "flatPath": "gmail/v1/users/{userId}/settings/pop",
              "response": {
                "$ref": "PopSettings"
              },
              "parameterOrder": [
                "userId"
              ]
            }
          },
          "resources": {
            "forwardingAddresses": {
              "methods": {
                "get": {
                  "response": {
                    "$ref": "ForwardingAddress"
                  },
                  "id": "gmail.users.settings.forwardingAddresses.get",
                  "flatPath": "gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}",
                  "parameterOrder": [
                    "userId",
                    "forwardingEmail"
                  ],
                  "description": "Gets the specified forwarding address. For more information, see [Manage email forwarding](https://developers.google.com/workspace/gmail/api/guides/forwarding_settings).",
                  "parameters": {
                    "forwardingEmail": {
                      "required": true,
                      "location": "path",
                      "description": "The forwarding address to be retrieved.",
                      "type": "string"
                    },
                    "userId": {
                      "location": "path",
                      "required": true,
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "type": "string",
                      "default": "me"
                    }
                  },
                  "scopes": [
                    "https://mail.google.com/",
                    "https://www.googleapis.com/auth/gmail.modify",
                    "https://www.googleapis.com/auth/gmail.readonly",
                    "https://www.googleapis.com/auth/gmail.settings.basic"
                  ],
                  "path": "gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}",
                  "httpMethod": "GET"
                },
                "create": {
                  "description": "Creates a forwarding address. If ownership verification is required, a message will be sent to the recipient and the resource's verification status will be set to `pending`; otherwise, the resource will be created with verification status set to `accepted`. For more information, see [Manage email forwarding](https://developers.google.com/workspace/gmail/api/guides/forwarding_settings). This method is only available to service account clients that have been delegated domain-wide authority.",
                  "parameters": {
                    "userId": {
                      "type": "string",
                      "default": "me",
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "location": "path",
                      "required": true
                    }
                  },
                  "request": {
                    "$ref": "ForwardingAddress"
                  },
                  "parameterOrder": [
                    "userId"
                  ],
                  "response": {
                    "$ref": "ForwardingAddress"
                  },
                  "id": "gmail.users.settings.forwardingAddresses.create",
                  "flatPath": "gmail/v1/users/{userId}/settings/forwardingAddresses",
                  "path": "gmail/v1/users/{userId}/settings/forwardingAddresses",
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.sharing"
                  ]
                },
                "delete": {
                  "path": "gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}",
                  "httpMethod": "DELETE",
                  "description": "Deletes the specified forwarding address and revokes any verification that may have been required. For more information, see [Manage email forwarding](https://developers.google.com/workspace/gmail/api/guides/forwarding_settings). This method is only available to service account clients that have been delegated domain-wide authority.",
                  "parameters": {
                    "userId": {
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "default": "me"
                    },
                    "forwardingEmail": {
                      "description": "The forwarding address to be deleted.",
                      "type": "string",
                      "location": "path",
                      "required": true
                    }
                  },
                  "id": "gmail.users.settings.forwardingAddresses.delete",
                  "flatPath": "gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}",
                  "parameterOrder": [
                    "userId",
                    "forwardingEmail"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.sharing"
                  ]
                },
                "list": {
                  "response": {
                    "$ref": "ListForwardingAddressesResponse"
                  },
                  "id": "gmail.users.settings.forwardingAddresses.list",
                  "flatPath": "gmail/v1/users/{userId}/settings/forwardingAddresses",
                  "parameterOrder": [
                    "userId"
                  ],
                  "description": "Lists the forwarding addresses for the specified account. For more information, see [Manage email forwarding](https://developers.google.com/workspace/gmail/api/guides/forwarding_settings).",
                  "parameters": {
                    "userId": {
                      "default": "me",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user."
                    }
                  },
                  "scopes": [
                    "https://mail.google.com/",
                    "https://www.googleapis.com/auth/gmail.modify",
                    "https://www.googleapis.com/auth/gmail.readonly",
                    "https://www.googleapis.com/auth/gmail.settings.basic"
                  ],
                  "path": "gmail/v1/users/{userId}/settings/forwardingAddresses",
                  "httpMethod": "GET"
                }
              }
            },
            "filters": {
              "methods": {
                "list": {
                  "scopes": [
                    "https://mail.google.com/",
                    "https://www.googleapis.com/auth/gmail.modify",
                    "https://www.googleapis.com/auth/gmail.readonly",
                    "https://www.googleapis.com/auth/gmail.settings.basic"
                  ],
                  "httpMethod": "GET",
                  "path": "gmail/v1/users/{userId}/settings/filters",
                  "parameterOrder": [
                    "userId"
                  ],
                  "id": "gmail.users.settings.filters.list",
                  "flatPath": "gmail/v1/users/{userId}/settings/filters",
                  "response": {
                    "$ref": "ListFiltersResponse"
                  },
                  "parameters": {
                    "userId": {
                      "type": "string",
                      "default": "me",
                      "location": "path",
                      "required": true,
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user."
                    }
                  },
                  "description": "Lists the message filters of a Gmail user. For more information, see [Manage Gmail filters](https://developers.google.com/workspace/gmail/api/guides/filter_settings)."
                },
                "delete": {
                  "parameterOrder": [
                    "userId",
                    "id"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.basic"
                  ],
                  "id": "gmail.users.settings.filters.delete",
                  "flatPath": "gmail/v1/users/{userId}/settings/filters/{id}",
                  "description": "Immediately and permanently deletes the specified filter. For more information, see [Manage Gmail filters](https://developers.google.com/workspace/gmail/api/guides/filter_settings).",
                  "parameters": {
                    "userId": {
                      "default": "me",
                      "type": "string",
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "required": true,
                      "location": "path"
                    },
                    "id": {
                      "description": "The ID of the filter to be deleted.",
                      "type": "string",
                      "location": "path",
                      "required": true
                    }
                  },
                  "path": "gmail/v1/users/{userId}/settings/filters/{id}",
                  "httpMethod": "DELETE"
                },
                "get": {
                  "httpMethod": "GET",
                  "path": "gmail/v1/users/{userId}/settings/filters/{id}",
                  "scopes": [
                    "https://mail.google.com/",
                    "https://www.googleapis.com/auth/gmail.modify",
                    "https://www.googleapis.com/auth/gmail.readonly",
                    "https://www.googleapis.com/auth/gmail.settings.basic"
                  ],
                  "parameters": {
                    "userId": {
                      "default": "me",
                      "type": "string",
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "required": true,
                      "location": "path"
                    },
                    "id": {
                      "required": true,
                      "location": "path",
                      "description": "The ID of the filter to be fetched.",
                      "type": "string"
                    }
                  },
                  "description": "Gets a filter. For more information, see [Manage Gmail filters](https://developers.google.com/workspace/gmail/api/guides/filter_settings).",
                  "parameterOrder": [
                    "userId",
                    "id"
                  ],
                  "id": "gmail.users.settings.filters.get",
                  "flatPath": "gmail/v1/users/{userId}/settings/filters/{id}",
                  "response": {
                    "$ref": "Filter"
                  }
                },
                "create": {
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.basic"
                  ],
                  "path": "gmail/v1/users/{userId}/settings/filters",
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "userId"
                  ],
                  "response": {
                    "$ref": "Filter"
                  },
                  "id": "gmail.users.settings.filters.create",
                  "flatPath": "gmail/v1/users/{userId}/settings/filters",
                  "description": "Creates a filter. Note: you can only create a maximum of 1,000 filters. For more information, see [Manage Gmail filters](https://developers.google.com/workspace/gmail/api/guides/filter_settings).",
                  "parameters": {
                    "userId": {
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "default": "me"
                    }
                  },
                  "request": {
                    "$ref": "Filter"
                  }
                }
              }
            },
            "delegates": {
              "methods": {
                "get": {
                  "httpMethod": "GET",
                  "path": "gmail/v1/users/{userId}/settings/delegates/{delegateEmail}",
                  "scopes": [
                    "https://mail.google.com/",
                    "https://www.googleapis.com/auth/gmail.modify",
                    "https://www.googleapis.com/auth/gmail.readonly",
                    "https://www.googleapis.com/auth/gmail.settings.basic"
                  ],
                  "parameters": {
                    "userId": {
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "default": "me"
                    },
                    "delegateEmail": {
                      "required": true,
                      "location": "path",
                      "description": "The email address of the user whose delegate relationship is to be retrieved.",
                      "type": "string"
                    }
                  },
                  "description": "Gets the specified delegate. For more information, see [Manage delegates](https://developers.google.com/workspace/gmail/api/guides/delegate_settings). A delegate user must be referred to by their primary email address, and not an email alias. This method is only available to service account clients that have been delegated domain-wide authority.",
                  "id": "gmail.users.settings.delegates.get",
                  "flatPath": "gmail/v1/users/{userId}/settings/delegates/{delegateEmail}",
                  "response": {
                    "$ref": "Delegate"
                  },
                  "parameterOrder": [
                    "userId",
                    "delegateEmail"
                  ]
                },
                "create": {
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.sharing"
                  ],
                  "path": "gmail/v1/users/{userId}/settings/delegates",
                  "httpMethod": "POST",
                  "response": {
                    "$ref": "Delegate"
                  },
                  "id": "gmail.users.settings.delegates.create",
                  "flatPath": "gmail/v1/users/{userId}/settings/delegates",
                  "parameterOrder": [
                    "userId"
                  ],
                  "request": {
                    "$ref": "Delegate"
                  },
                  "description": "Adds a delegate with its verification status set directly to `accepted`, without sending any verification email. The delegate user must be a member of the same Google Workspace organization as the delegator user. For more information, see [Manage delegates](https://developers.google.com/workspace/gmail/api/guides/delegate_settings). Gmail imposes limitations on the number of delegates and delegators each user in a Google Workspace organization can have. These limits depend on your organization, but in general each user can have up to 25 delegates and up to 10 delegators. A delegate user must be referred to by their primary email address, and not an email alias. When a new delegate is created, there may be up to a one minute delay before the new delegate is available for use. This method is only available to service account clients that have been delegated domain-wide authority.",
                  "parameters": {
                    "userId": {
                      "location": "path",
                      "required": true,
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "type": "string",
                      "default": "me"
                    }
                  }
                },
                "list": {
                  "scopes": [
                    "https://mail.google.com/",
                    "https://www.googleapis.com/auth/gmail.modify",
                    "https://www.googleapis.com/auth/gmail.readonly",
                    "https://www.googleapis.com/auth/gmail.settings.basic"
                  ],
                  "path": "gmail/v1/users/{userId}/settings/delegates",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "ListDelegatesResponse"
                  },
                  "id": "gmail.users.settings.delegates.list",
                  "flatPath": "gmail/v1/users/{userId}/settings/delegates",
                  "parameterOrder": [
                    "userId"
                  ],
                  "description": "Lists the delegates for the specified account. For more information, see [Manage delegates](https://developers.google.com/workspace/gmail/api/guides/delegate_settings). This method is only available to service account clients that have been delegated domain-wide authority.",
                  "parameters": {
                    "userId": {
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "default": "me"
                    }
                  }
                },
                "delete": {
                  "parameters": {
                    "userId": {
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "required": true,
                      "location": "path",
                      "default": "me",
                      "type": "string"
                    },
                    "delegateEmail": {
                      "required": true,
                      "location": "path",
                      "description": "The email address of the user to be removed as a delegate.",
                      "type": "string"
                    }
                  },
                  "description": "Removes the specified delegate (which can be of any verification status), and revokes any verification that may have been required for using it. For more information, see [Manage delegates](https://developers.google.com/workspace/gmail/api/guides/delegate_settings). A delegate user must be referred to by their primary email address, and not an email alias. This method is only available to service account clients that have been delegated domain-wide authority.",
                  "httpMethod": "DELETE",
                  "path": "gmail/v1/users/{userId}/settings/delegates/{delegateEmail}",
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.sharing"
                  ],
                  "parameterOrder": [
                    "userId",
                    "delegateEmail"
                  ],
                  "id": "gmail.users.settings.delegates.delete",
                  "flatPath": "gmail/v1/users/{userId}/settings/delegates/{delegateEmail}"
                }
              }
            },
            "cse": {
              "resources": {
                "identities": {
                  "methods": {
                    "delete": {
                      "parameterOrder": [
                        "userId",
                        "cseEmailAddress"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "id": "gmail.users.settings.cse.identities.delete",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}",
                      "description": "Deletes a client-side encryption identity. The authenticated user can no longer use the identity to send encrypted messages. You cannot restore the identity after you delete it. Instead, use the CreateCseIdentity method to create another identity with the same configuration. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
                      "parameters": {
                        "userId": {
                          "required": true,
                          "location": "path",
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
                          "default": "me",
                          "type": "string"
                        },
                        "cseEmailAddress": {
                          "description": "The primary email address associated with the client-side encryption identity configuration that's removed.",
                          "type": "string",
                          "required": true,
                          "location": "path"
                        }
                      },
                      "path": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}",
                      "httpMethod": "DELETE"
                    },
                    "list": {
                      "id": "gmail.users.settings.cse.identities.list",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/identities",
                      "response": {
                        "$ref": "ListCseIdentitiesResponse"
                      },
                      "parameterOrder": [
                        "userId"
                      ],
                      "parameters": {
                        "pageToken": {
                          "location": "query",
                          "description": "Pagination token indicating which page of identities to return. If the token is not supplied, then the API will return the first page of results.",
                          "type": "string"
                        },
                        "pageSize": {
                          "type": "integer",
                          "default": "20",
                          "description": "The number of identities to return. If not provided, the page size will default to 20 entries.",
                          "location": "query",
                          "format": "int32"
                        },
                        "userId": {
                          "required": true,
                          "location": "path",
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
                          "default": "me",
                          "type": "string"
                        }
                      },
                      "description": "Lists the client-side encrypted identities for an authenticated user. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
                      "scopes": [
                        "https://mail.google.com/",
                        "https://www.googleapis.com/auth/gmail.modify",
                        "https://www.googleapis.com/auth/gmail.readonly",
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "httpMethod": "GET",
                      "path": "gmail/v1/users/{userId}/settings/cse/identities"
                    },
                    "patch": {
                      "scopes": [
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "path": "gmail/v1/users/{userId}/settings/cse/identities/{emailAddress}",
                      "httpMethod": "PATCH",
                      "response": {
                        "$ref": "CseIdentity"
                      },
                      "id": "gmail.users.settings.cse.identities.patch",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{emailAddress}",
                      "parameterOrder": [
                        "userId",
                        "emailAddress"
                      ],
                      "request": {
                        "$ref": "CseIdentity"
                      },
                      "description": "Associates a different key pair with an existing client-side encryption identity. The updated key pair must validate against Google's [S/MIME certificate profiles](https://support.google.com/a/answer/7300887). For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
                      "parameters": {
                        "userId": {
                          "type": "string",
                          "default": "me",
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
                          "location": "path",
                          "required": true
                        },
                        "emailAddress": {
                          "description": "The email address of the client-side encryption identity to update.",
                          "type": "string",
                          "required": true,
                          "location": "path"
                        }
                      }
                    },
                    "create": {
                      "path": "gmail/v1/users/{userId}/settings/cse/identities",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "description": "Creates and configures a client-side encryption identity that's authorized to send mail from the user account. Google publishes the S/MIME certificate to a shared domain-wide directory so that people within a Google Workspace organization can encrypt and send mail to the identity. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
                      "parameters": {
                        "userId": {
                          "type": "string",
                          "default": "me",
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
                          "location": "path",
                          "required": true
                        }
                      },
                      "request": {
                        "$ref": "CseIdentity"
                      },
                      "parameterOrder": [
                        "userId"
                      ],
                      "response": {
                        "$ref": "CseIdentity"
                      },
                      "id": "gmail.users.settings.cse.identities.create",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/identities"
                    },
                    "get": {
                      "id": "gmail.users.settings.cse.identities.get",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}",
                      "response": {
                        "$ref": "CseIdentity"
                      },
                      "parameterOrder": [
                        "userId",
                        "cseEmailAddress"
                      ],
                      "parameters": {
                        "cseEmailAddress": {
                          "required": true,
                          "location": "path",
                          "description": "The primary email address associated with the client-side encryption identity configuration that's retrieved.",
                          "type": "string"
                        },
                        "userId": {
                          "location": "path",
                          "required": true,
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
                          "type": "string",
                          "default": "me"
                        }
                      },
                      "description": "Retrieves a client-side encryption identity configuration. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
                      "scopes": [
                        "https://mail.google.com/",
                        "https://www.googleapis.com/auth/gmail.modify",
                        "https://www.googleapis.com/auth/gmail.readonly",
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "httpMethod": "GET",
                      "path": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}"
                    }
                  }
                },
                "keypairs": {
                  "methods": {
                    "create": {
                      "path": "gmail/v1/users/{userId}/settings/cse/keypairs",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "request": {
                        "$ref": "CseKeyPair"
                      },
                      "description": "Creates and uploads a client-side encryption S/MIME public key certificate chain and private key metadata for the authenticated user. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
                      "parameters": {
                        "userId": {
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "default": "me"
                        }
                      },
                      "response": {
                        "$ref": "CseKeyPair"
                      },
                      "id": "gmail.users.settings.cse.keypairs.create",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs",
                      "parameterOrder": [
                        "userId"
                      ]
                    },
                    "enable": {
                      "description": "Turns on a client-side encryption key pair that was turned off. The key pair becomes active again for any associated client-side encryption identities. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
                      "parameters": {
                        "userId": {
                          "required": true,
                          "location": "path",
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
                          "default": "me",
                          "type": "string"
                        },
                        "keyPairId": {
                          "required": true,
                          "location": "path",
                          "description": "The identifier of the key pair to turn on.",
                          "type": "string"
                        }
                      },
                      "request": {
                        "$ref": "EnableCseKeyPairRequest"
                      },
                      "parameterOrder": [
                        "userId",
                        "keyPairId"
                      ],
                      "response": {
                        "$ref": "CseKeyPair"
                      },
                      "id": "gmail.users.settings.cse.keypairs.enable",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:enable",
                      "path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:enable",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ]
                    },
                    "get": {
                      "scopes": [
                        "https://mail.google.com/",
                        "https://www.googleapis.com/auth/gmail.modify",
                        "https://www.googleapis.com/auth/gmail.readonly",
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}",
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "userId",
                        "keyPairId"
                      ],
                      "response": {
                        "$ref": "CseKeyPair"
                      },
                      "id": "gmail.users.settings.cse.keypairs.get",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}",
                      "description": "Retrieves an existing client-side encryption key pair. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
                      "parameters": {
                        "userId": {
                          "default": "me",
                          "type": "string",
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
                          "required": true,
                          "location": "path"
                        },
                        "keyPairId": {
                          "location": "path",
                          "required": true,
                          "description": "The identifier of the key pair to retrieve.",
                          "type": "string"
                        }
                      }
                    },
                    "disable": {
                      "path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:disable",
                      "httpMethod": "POST",
                      "scopes": [
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "description": "Turns off a client-side encryption key pair. The authenticated user can no longer use the key pair to decrypt incoming CSE message texts or sign outgoing CSE mail. To regain access, use the EnableCseKeyPair to turn on the key pair. After 30 days, you can permanently delete the key pair by using the ObliterateCseKeyPair method. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
                      "parameters": {
                        "userId": {
                          "default": "me",
                          "type": "string",
                          "required": true,
                          "location": "path",
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."
                        },
                        "keyPairId": {
                          "required": true,
                          "location": "path",
                          "description": "The identifier of the key pair to turn off.",
                          "type": "string"
                        }
                      },
                      "request": {
                        "$ref": "DisableCseKeyPairRequest"
                      },
                      "parameterOrder": [
                        "userId",
                        "keyPairId"
                      ],
                      "response": {
                        "$ref": "CseKeyPair"
                      },
                      "id": "gmail.users.settings.cse.keypairs.disable",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:disable"
                    },
                    "list": {
                      "httpMethod": "GET",
                      "path": "gmail/v1/users/{userId}/settings/cse/keypairs",
                      "scopes": [
                        "https://mail.google.com/",
                        "https://www.googleapis.com/auth/gmail.modify",
                        "https://www.googleapis.com/auth/gmail.readonly",
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "parameters": {
                        "pageSize": {
                          "default": "20",
                          "type": "integer",
                          "location": "query",
                          "format": "int32",
                          "description": "The number of key pairs to return. If not provided, the page size will default to 20 entries."
                        },
                        "pageToken": {
                          "description": "Pagination token indicating which page of key pairs to return. If the token is not supplied, then the API will return the first page of results.",
                          "type": "string",
                          "location": "query"
                        },
                        "userId": {
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
                          "required": true,
                          "location": "path",
                          "default": "me",
                          "type": "string"
                        }
                      },
                      "description": "Lists client-side encryption key pairs for an authenticated user. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
                      "id": "gmail.users.settings.cse.keypairs.list",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs",
                      "response": {
                        "$ref": "ListCseKeyPairsResponse"
                      },
                      "parameterOrder": [
                        "userId"
                      ]
                    },
                    "obliterate": {
                      "scopes": [
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "httpMethod": "POST",
                      "path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:obliterate",
                      "id": "gmail.users.settings.cse.keypairs.obliterate",
                      "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:obliterate",
                      "parameterOrder": [
                        "userId",
                        "keyPairId"
                      ],
                      "request": {
                        "$ref": "ObliterateCseKeyPairRequest"
                      },
                      "parameters": {
                        "userId": {
                          "type": "string",
                          "default": "me",
                          "location": "path",
                          "required": true,
                          "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`."
                        },
                        "keyPairId": {
                          "location": "path",
                          "required": true,
                          "description": "The identifier of the key pair to obliterate.",
                          "type": "string"
                        }
                      },
                      "description": "Deletes a client-side encryption key pair permanently and immediately. You can only permanently delete key pairs that have been turned off for more than 30 days. To turn off a key pair, use the DisableCseKeyPair method. Gmail can't restore or decrypt any messages that were encrypted by an obliterated key. Authenticated users and Google Workspace administrators lose access to reading the encrypted messages. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured."
                    }
                  }
                }
              }
            },
            "sendAs": {
              "methods": {
                "delete": {
                  "description": "Deletes the specified send-as alias. Revokes any verification that may have been required for using it. For more information, see [Manage aliases and signatures with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/alias_and_signature_settings). This method is only available to service account clients that have been delegated domain-wide authority.",
                  "parameters": {
                    "userId": {
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "required": true,
                      "location": "path",
                      "default": "me",
                      "type": "string"
                    },
                    "sendAsEmail": {
                      "description": "The send-as alias to be deleted.",
                      "type": "string",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}",
                  "httpMethod": "DELETE",
                  "parameterOrder": [
                    "userId",
                    "sendAsEmail"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.sharing"
                  ],
                  "id": "gmail.users.settings.sendAs.delete",
                  "flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}"
                },
                "verify": {
                  "description": "Sends a verification email to the specified send-as alias address. The verification status must be `pending`. For more information, see [Manage aliases and signatures with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/alias_and_signature_settings). This method is only available to service account clients that have been delegated domain-wide authority.",
                  "parameters": {
                    "userId": {
                      "default": "me",
                      "type": "string",
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "required": true,
                      "location": "path"
                    },
                    "sendAsEmail": {
                      "description": "The send-as alias to be verified.",
                      "type": "string",
                      "required": true,
                      "location": "path"
                    }
                  },
                  "path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/verify",
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "userId",
                    "sendAsEmail"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.sharing"
                  ],
                  "id": "gmail.users.settings.sendAs.verify",
                  "flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/verify"
                },
                "list": {
                  "path": "gmail/v1/users/{userId}/settings/sendAs",
                  "httpMethod": "GET",
                  "scopes": [
                    "https://mail.google.com/",
                    "https://www.googleapis.com/auth/gmail.modify",
                    "https://www.googleapis.com/auth/gmail.readonly",
                    "https://www.googleapis.com/auth/gmail.settings.basic"
                  ],
                  "description": "Lists the send-as aliases for the specified account. The result includes the primary send-as address associated with the account as well as any custom \"from\" aliases. For more information, see [Manage aliases and signatures with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/alias_and_signature_settings).",
                  "parameters": {
                    "userId": {
                      "default": "me",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user."
                    }
                  },
                  "response": {
                    "$ref": "ListSendAsResponse"
                  },
                  "id": "gmail.users.settings.sendAs.list",
                  "flatPath": "gmail/v1/users/{userId}/settings/sendAs",
                  "parameterOrder": [
                    "userId"
                  ]
                },
                "update": {
                  "path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}",
                  "httpMethod": "PUT",
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.basic",
                    "https://www.googleapis.com/auth/gmail.settings.sharing"
                  ],
                  "request": {
                    "$ref": "SendAs"
                  },
                  "description": "Updates a send-as alias. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias. For more information, see [Manage aliases and signatures with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/alias_and_signature_settings). Addresses other than the primary address for the account can only be updated by service account clients that have been delegated domain-wide authority.",
                  "parameters": {
                    "userId": {
                      "type": "string",
                      "default": "me",
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "location": "path",
                      "required": true
                    },
                    "sendAsEmail": {
                      "description": "The send-as alias to be updated.",
                      "type": "string",
                      "location": "path",
                      "required": true
                    }
                  },
                  "response": {
                    "$ref": "SendAs"
                  },
                  "id": "gmail.users.settings.sendAs.update",
                  "flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}",
                  "parameterOrder": [
                    "userId",
                    "sendAsEmail"
                  ]
                },
                "patch": {
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.basic",
                    "https://www.googleapis.com/auth/gmail.settings.sharing"
                  ],
                  "path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}",
                  "httpMethod": "PATCH",
                  "parameterOrder": [
                    "userId",
                    "sendAsEmail"
                  ],
                  "response": {
                    "$ref": "SendAs"
                  },
                  "id": "gmail.users.settings.sendAs.patch",
                  "flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}",
                  "description": "Patch the specified send-as alias. For more information, see [Manage aliases and signatures with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/alias_and_signature_settings).",
                  "parameters": {
                    "userId": {
                      "type": "string",
                      "default": "me",
                      "location": "path",
                      "required": true,
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user."
                    },
                    "sendAsEmail": {
                      "location": "path",
                      "required": true,
                      "description": "The send-as alias to be updated.",
                      "type": "string"
                    }
                  },
                  "request": {
                    "$ref": "SendAs"
                  }
                },
                "get": {
                  "parameters": {
                    "userId": {
                      "default": "me",
                      "type": "string",
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "required": true,
                      "location": "path"
                    },
                    "sendAsEmail": {
                      "description": "The send-as alias to be retrieved.",
                      "type": "string",
                      "location": "path",
                      "required": true
                    }
                  },
                  "description": "Gets the specified send-as alias. Fails with an HTTP 404 error if the specified address is not a member of the collection. For more information, see [Manage aliases and signatures with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/alias_and_signature_settings).",
                  "id": "gmail.users.settings.sendAs.get",
                  "flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}",
                  "response": {
                    "$ref": "SendAs"
                  },
                  "parameterOrder": [
                    "userId",
                    "sendAsEmail"
                  ],
                  "httpMethod": "GET",
                  "path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}",
                  "scopes": [
                    "https://mail.google.com/",
                    "https://www.googleapis.com/auth/gmail.modify",
                    "https://www.googleapis.com/auth/gmail.readonly",
                    "https://www.googleapis.com/auth/gmail.settings.basic"
                  ]
                },
                "create": {
                  "request": {
                    "$ref": "SendAs"
                  },
                  "parameters": {
                    "userId": {
                      "required": true,
                      "location": "path",
                      "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
                      "default": "me",
                      "type": "string"
                    }
                  },
                  "description": "Creates a custom \"from\" send-as alias. If an SMTP MSA is specified, Gmail will attempt to connect to the SMTP service to validate the configuration before creating the alias. If ownership verification is required for the alias, a message will be sent to the email address and the resource's verification status will be set to `pending`; otherwise, the resource will be created with verification status set to `accepted`. If a signature is provided, Gmail will sanitize the HTML before saving it with the alias. For more information, see [Manage aliases and signatures with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/alias_and_signature_settings). This method is only available to service account clients that have been delegated domain-wide authority.",
                  "id": "gmail.users.settings.sendAs.create",
                  "flatPath": "gmail/v1/users/{userId}/settings/sendAs",
                  "response": {
                    "$ref": "SendAs"
                  },
                  "parameterOrder": [
                    "userId"
                  ],
                  "httpMethod": "POST",
                  "path": "gmail/v1/users/{userId}/settings/sendAs",
                  "scopes": [
                    "https://www.googleapis.com/auth/gmail.settings.sharing"
                  ]
                }
              },
              "resources": {
                "smimeInfo": {
                  "methods": {
                    "get": {
                      "scopes": [
                        "https://mail.google.com/",
                        "https://www.googleapis.com/auth/gmail.modify",
                        "https://www.googleapis.com/auth/gmail.readonly",
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}",
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "SmimeInfo"
                      },
                      "id": "gmail.users.settings.sendAs.smimeInfo.get",
                      "flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}",
                      "parameterOrder": [
                        "userId",
                        "sendAsEmail",
                        "id"
                      ],
                      "description": "Gets the specified S/MIME config for the specified send-as alias. For more information, see [Manage S/MIME certificates with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/smime_certs).",
                      "parameters": {
                        "sendAsEmail": {
                          "required": true,
                          "location": "path",
                          "description": "The email address that appears in the \"From:\" header for mail sent using this alias.",
                          "type": "string"
                        },
                        "id": {
                          "description": "The immutable ID for the SmimeInfo.",
                          "type": "string",
                          "location": "path",
                          "required": true
                        },
                        "userId": {
                          "default": "me",
                          "type": "string",
                          "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                          "required": true,
                          "location": "path"
                        }
                      }
                    },
                    "setDefault": {
                      "path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}/setDefault",
                      "httpMethod": "POST",
                      "description": "Sets the default S/MIME config for the specified send-as alias. For more information, see [Manage S/MIME certificates with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/smime_certs).",
                      "parameters": {
                        "sendAsEmail": {
                          "description": "The email address that appears in the \"From:\" header for mail sent using this alias.",
                          "type": "string",
                          "required": true,
                          "location": "path"
                        },
                        "id": {
                          "required": true,
                          "location": "path",
                          "description": "The immutable ID for the SmimeInfo.",
                          "type": "string"
                        },
                        "userId": {
                          "type": "string",
                          "default": "me",
                          "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                          "location": "path",
                          "required": true
                        }
                      },
                      "id": "gmail.users.settings.sendAs.smimeInfo.setDefault",
                      "flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}/setDefault",
                      "parameterOrder": [
                        "userId",
                        "sendAsEmail",
                        "id"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ]
                    },
                    "insert": {
                      "scopes": [
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo",
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "userId",
                        "sendAsEmail"
                      ],
                      "response": {
                        "$ref": "SmimeInfo"
                      },
                      "id": "gmail.users.settings.sendAs.smimeInfo.insert",
                      "flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo",
                      "description": "Insert (upload) the given S/MIME config for the specified send-as alias. Note that `pkcs12` format is required for the key. For more information, see [Manage S/MIME certificates with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/smime_certs).",
                      "parameters": {
                        "userId": {
                          "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                          "required": true,
                          "location": "path",
                          "default": "me",
                          "type": "string"
                        },
                        "sendAsEmail": {
                          "required": true,
                          "location": "path",
                          "description": "The email address that appears in the \"From:\" header for mail sent using this alias.",
                          "type": "string"
                        }
                      },
                      "request": {
                        "$ref": "SmimeInfo"
                      }
                    },
                    "list": {
                      "response": {
                        "$ref": "ListSmimeInfoResponse"
                      },
                      "id": "gmail.users.settings.sendAs.smimeInfo.list",
                      "flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo",
                      "parameterOrder": [
                        "userId",
                        "sendAsEmail"
                      ],
                      "description": "Lists S/MIME configs for the specified send-as alias. For more information, see [Manage S/MIME certificates with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/smime_certs).",
                      "parameters": {
                        "userId": {
                          "type": "string",
                          "default": "me",
                          "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
                          "location": "path",
                          "required": true
                        },
                        "sendAsEmail": {
                          "required": true,
                          "location": "path",
                          "description": "The email address that appears in the \"From:\" header for mail sent using this alias.",
                          "type": "string"
                        }
                      },
                      "scopes": [
                        "https://mail.google.com/",
                        "https://www.googleapis.com/auth/gmail.modify",
                        "https://www.googleapis.com/auth/gmail.readonly",
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo",
                      "httpMethod": "GET"
                    },
                    "delete": {
                      "id": "gmail.users.settings.sendAs.smimeInfo.delete",
                      "flatPath": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}",
                      "scopes": [
                        "https://www.googleapis.com/auth/gmail.settings.basic",
                        "https://www.googleapis.com/auth/gmail.settings.sharing"
                      ],
                      "parameterOrder": [
                        "userId",
                        "sendAsEmail",
                        "id"
                      ],
                      "httpMethod": "DELETE",
                      "path": "gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}",
                      "parameters": {
                        "userId": {
                          "default": "me",
                          "type": "string",
                          "required": true,
                          "location": "path",
                          "description": "The user's email address. The special value `me` can be used to indicate the authenticated user."
                        },
                        "sendAsEmail": {
                          "location": "path",
                          "required": true,
                          "description": "The email address that appears in the \"From:\" header for mail sent using this alias.",
                          "type": "string"
                        },
                        "id": {
                          "description": "The immutable ID for the SmimeInfo.",
                          "type": "string",
                          "location": "path",
                          "required": true
                        }
                      },
                      "description": "Deletes the specified S/MIME config for the specified send-as alias. For more information, see [Manage S/MIME certificates with the Gmail API](https://developers.google.com/workspace/gmail/api/guides/smime_certs)."
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "canonicalName": "Gmail",
  "schemas": {
    "ClassificationLabelFieldValue": {
      "id": "ClassificationLabelFieldValue",
      "description": "Field values for a classification label.",
      "type": "object",
      "properties": {
        "selection": {
          "description": "Selection choice ID for the selection option. Should only be set if the field type is `SELECTION` in the Google Drive `Label.Field` object. Maps to the id field of the Google Drive `Label.Field.SelectionOptions` resource.",
          "type": "string"
        },
        "fieldId": {
          "description": "Required. The field ID for the Classification Label Value. Maps to the ID field of the Google Drive `Label.Field` object.",
          "type": "string"
        }
      }
    },
    "ModifyMessageRequest": {
      "type": "object",
      "properties": {
        "addClassificationLabels": {
          "items": {
            "$ref": "ClassificationLabelValue"
          },
          "description": "A list of classification label values to add. If a Classification Label with the same label ID is already applied to the message, fields with existing field IDs will be updated and fields with new field IDs will be added. There's a limit of 20 Classification Label values per request. If the message is already classified and the final total number of Classification Label values exceeds the maximum allowed number of Classification Label values per message, the modification fails.",
          "type": "array"
        },
        "addLabelIds": {
          "items": {
            "type": "string"
          },
          "description": "A list of IDs of labels to add to this message. You can add up to 100 labels with each update.",
          "type": "array"
        },
        "removeLabelIds": {
          "description": "A list IDs of labels to remove from this message. You can remove up to 100 labels with each update.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "removeClassificationLabelIds": {
          "items": {
            "type": "string"
          },
          "description": "A list of Classification Label values to remove from this message.",
          "type": "array"
        }
      },
      "id": "ModifyMessageRequest"
    },
    "ListMessagesResponse": {
      "id": "ListMessagesResponse",
      "type": "object",
      "properties": {
        "messages": {
          "items": {
            "$ref": "Message"
          },
          "description": "List of messages. Note that each message resource contains only an `id` and a `threadId`. Additional message details can be fetched using the messages.get method.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "Token to retrieve the next page of results in the list.",
          "type": "string"
        },
        "resultSizeEstimate": {
          "format": "uint32",
          "description": "Estimated total number of results.",
          "type": "integer"
        }
      }
    },
    "LanguageSettings": {
      "id": "LanguageSettings",
      "description": "Language settings for an account. These settings correspond to the \"Language settings\" feature in the web interface.",
      "type": "object",
      "properties": {
        "displayLanguage": {
          "description": "The language to display Gmail in, formatted as an RFC 3066 Language Tag (for example `en-GB`, `fr` or `ja` for British English, French, or Japanese respectively). The set of languages supported by Gmail evolves over time, so please refer to the \"Language\" dropdown in the Gmail settings for all available options, as described in the language settings help article. For a table of sample values, see [Manage language settings](https://developers.google.com/workspace/gmail/api/guides/language-settings). Not all Gmail clients can display the same set of languages. In the case that a user's display language is not available for use on a particular client, said client automatically chooses to display in the closest supported variant (or a reasonable default).",
          "type": "string"
        }
      }
    },
    "DisableCseKeyPairRequest": {
      "description": "Requests to turn off a client-side encryption key pair.",
      "type": "object",
      "properties": {},
      "id": "DisableCseKeyPairRequest"
    },
    "CseKeyPair": {
      "id": "CseKeyPair",
      "description": "A client-side encryption S/MIME key pair, which is comprised of a public key, its certificate chain, and metadata for its paired private key. Gmail uses the key pair to complete the following tasks: - Sign outgoing client-side encrypted messages. - Save and reopen drafts of client-side encrypted messages. - Save and reopen sent messages. - Decrypt incoming or archived S/MIME messages. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
      "type": "object",
      "properties": {
        "pem": {
          "readOnly": true,
          "description": "Output only. The public key and its certificate chain, in [PEM](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail) format.",
          "type": "string"
        },
        "enablementState": {
          "readOnly": true,
          "type": "string",
          "enum": [
            "stateUnspecified",
            "enabled",
            "disabled"
          ],
          "enumDescriptions": [
            "The current state of the key pair is not set. The key pair is neither turned on nor turned off.",
            "The key pair is turned on. For any email messages that this key pair encrypts, Gmail decrypts the messages and signs any outgoing mail with the private key. To turn on a key pair, use the EnableCseKeyPair method.",
            "The key pair is turned off. Authenticated users cannot decrypt email messages nor sign outgoing messages. If a key pair is turned off for more than 30 days, you can permanently delete it. To turn off a key pair, use the DisableCseKeyPair method."
          ],
          "description": "Output only. The current state of the key pair."
        },
        "subjectEmailAddresses": {
          "description": "Output only. The email address identities that are specified on the leaf certificate.",
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "privateKeyMetadata": {
          "items": {
            "$ref": "CsePrivateKeyMetadata"
          },
          "description": "Metadata for instances of this key pair's private key.",
          "type": "array"
        },
        "pkcs7": {
          "description": "Input only. The public key and its certificate chain. The chain must be in [PKCS#7](https://en.wikipedia.org/wiki/PKCS_7) format and use PEM encoding and ASCII armor.",
          "type": "string"
        },
        "disableTime": {
          "description": "Output only. If a key pair is set to `DISABLED`, the time that the key pair's state changed from `ENABLED` to `DISABLED`. This field is present only when the key pair is in state `DISABLED`.",
          "type": "string",
          "readOnly": true,
          "format": "google-datetime"
        },
        "keyPairId": {
          "readOnly": true,
          "description": "Output only. The immutable ID for the client-side encryption S/MIME key pair.",
          "type": "string"
        }
      }
    },
    "ListDraftsResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "Token to retrieve the next page of results in the list.",
          "type": "string"
        },
        "drafts": {
          "items": {
            "$ref": "Draft"
          },
          "description": "List of drafts. Note that the `Message` property in each `Draft` resource only contains an `id` and a `threadId`. The [`messages.get`](https://developers.google.com/workspace/gmail/api/v1/reference/users/messages/get) method can fetch additional message details.",
          "type": "array"
        },
        "resultSizeEstimate": {
          "description": "Estimated total number of results.",
          "type": "integer",
          "format": "uint32"
        }
      },
      "id": "ListDraftsResponse"
    },
    "BatchDeleteMessagesRequest": {
      "type": "object",
      "properties": {
        "ids": {
          "items": {
            "type": "string"
          },
          "description": "The IDs of the messages to delete.",
          "type": "array"
        }
      },
      "id": "BatchDeleteMessagesRequest"
    },
    "LabelColor": {
      "type": "object",
      "properties": {
        "backgroundColor": {
          "description": "The background color represented as hex string #RRGGBB (ex #000000). This field is required in order to set the color of a label. Only the following predefined set of color values are allowed: \\#000000, #434343, #666666, #999999, #cccccc, #efefef, #f3f3f3, #ffffff, \\#fb4c2f, #ffad47, #fad165, #16a766, #43d692, #4a86e8, #a479e2, #f691b3, \\#f6c5be, #ffe6c7, #fef1d1, #b9e4d0, #c6f3de, #c9daf8, #e4d7f5, #fcdee8, \\#efa093, #ffd6a2, #fce8b3, #89d3b2, #a0eac9, #a4c2f4, #d0bcf1, #fbc8d9, \\#e66550, #ffbc6b, #fcda83, #44b984, #68dfa9, #6d9eeb, #b694e8, #f7a7c0, \\#cc3a21, #eaa041, #f2c960, #149e60, #3dc789, #3c78d8, #8e63ce, #e07798, \\#ac2b16, #cf8933, #d5ae49, #0b804b, #2a9c68, #285bac, #653e9b, #b65775, \\#822111, #a46a21, #aa8831, #076239, #1a764d, #1c4587, #41236d, #83334c, \\#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, #e3d7ff, \\#711a36, #fbd3e0, #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \\#594c05, #fbe983, #684e07, #fdedc1, #0b4f30, #b3efd3, #04502e, #a2dcc1, \\#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, #ff7537, #ffad46, \\#662e37, #ebdbde, #cca6ac, #094228, #42d692, #16a765, #757575, #1e53b8, \\#007286, #7858c3, #c2185b, #d93025, #54240e, #633e04, #521d28, #202124, \\#083018",
          "type": "string"
        },
        "textColor": {
          "description": "The text color of the label, represented as hex string. This field is required in order to set the color of a label. Only the following predefined set of color values are allowed: \\#000000, #434343, #666666, #999999, #cccccc, #efefef, #f3f3f3, #ffffff, \\#fb4c2f, #ffad47, #fad165, #16a766, #43d692, #4a86e8, #a479e2, #f691b3, \\#f6c5be, #ffe6c7, #fef1d1, #b9e4d0, #c6f3de, #c9daf8, #e4d7f5, #fcdee8, \\#efa093, #ffd6a2, #fce8b3, #89d3b2, #a0eac9, #a4c2f4, #d0bcf1, #fbc8d9, \\#e66550, #ffbc6b, #fcda83, #44b984, #68dfa9, #6d9eeb, #b694e8, #f7a7c0, \\#cc3a21, #eaa041, #f2c960, #149e60, #3dc789, #3c78d8, #8e63ce, #e07798, \\#ac2b16, #cf8933, #d5ae49, #0b804b, #2a9c68, #285bac, #653e9b, #b65775, \\#822111, #a46a21, #aa8831, #076239, #1a764d, #1c4587, #41236d, #83334c, \\#464646, #e7e7e7, #0d3472, #b6cff5, #0d3b44, #98d7e4, #3d188e, #e3d7ff, \\#711a36, #fbd3e0, #8a1c0a, #f2b2a8, #7a2e0b, #ffc8af, #7a4706, #ffdeb5, \\#594c05, #fbe983, #684e07, #fdedc1, #0b4f30, #b3efd3, #04502e, #a2dcc1, \\#c2c2c2, #4986e7, #2da2bb, #b99aff, #994a64, #f691b2, #ff7537, #ffad46, \\#662e37, #ebdbde, #cca6ac, #094228, #42d692, #16a765, #757575, #1e53b8, \\#007286, #7858c3, #c2185b, #d93025, #54240e, #633e04, #521d28, #202124, \\#083018",
          "type": "string"
        }
      },
      "id": "LabelColor"
    },
    "ListThreadsResponse": {
      "type": "object",
      "properties": {
        "resultSizeEstimate": {
          "description": "Estimated total number of results.",
          "type": "integer",
          "format": "uint32"
        },
        "threads": {
          "description": "List of threads. Note that each thread resource does not contain a list of `messages`. The list of `messages` for a given thread can be fetched using the [`threads.get`](https://developers.google.com/workspace/gmail/api/v1/reference/users/threads/get) method.",
          "type": "array",
          "items": {
            "$ref": "Thread"
          }
        },
        "nextPageToken": {
          "description": "Page token to retrieve the next page of results in the list.",
          "type": "string"
        }
      },
      "id": "ListThreadsResponse"
    },
    "FilterCriteria": {
      "description": "Message matching criteria.",
      "type": "object",
      "properties": {
        "sizeComparison": {
          "description": "How the message size in bytes should be in relation to the size field.",
          "type": "string",
          "enum": [
            "unspecified",
            "smaller",
            "larger"
          ],
          "enumDescriptions": [
            "",
            "Find messages smaller than the given size.",
            "Find messages larger than the given size."
          ]
        },
        "subject": {
          "description": "Case-insensitive phrase found in the message's subject. Trailing and leading whitespace are be trimmed and adjacent spaces are collapsed.",
          "type": "string"
        },
        "from": {
          "description": "The sender's display name or email address.",
          "type": "string"
        },
        "query": {
          "description": "Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: is:unread\"`.",
          "type": "string"
        },
        "to": {
          "description": "The recipient's display name or email address. Includes recipients in the \"to\", \"cc\", and \"bcc\" header fields. You can use simply the local part of the email address. For example, \"example\" and \"example@\" both match \"example@gmail.com\". This field is case-insensitive.",
          "type": "string"
        },
        "size": {
          "format": "int32",
          "description": "The size of the entire RFC822 message in bytes, including all headers and attachments.",
          "type": "integer"
        },
        "hasAttachment": {
          "description": "Whether the message has any attachment.",
          "type": "boolean"
        },
        "excludeChats": {
          "description": "Whether the response should exclude chats.",
          "type": "boolean"
        },
        "negatedQuery": {
          "description": "Only return messages not matching the specified query. Supports the same query format as the Gmail search box. For example, `\"from:someuser@example.com rfc822msgid: is:unread\"`.",
          "type": "string"
        }
      },
      "id": "FilterCriteria"
    },
    "SmtpMsa": {
      "id": "SmtpMsa",
      "description": "Configuration for communication with an SMTP service.",
      "type": "object",
      "properties": {
        "host": {
          "description": "The hostname of the SMTP service. Required.",
          "type": "string"
        },
        "securityMode": {
          "description": "The protocol that will be used to secure communication with the SMTP service. Required.",
          "type": "string",
          "enum": [
            "securityModeUnspecified",
            "none",
            "ssl",
            "starttls"
          ],
          "enumDescriptions": [
            "Unspecified security mode.",
            "Communication with the remote SMTP service is unsecured. Requires port 25.",
            "Communication with the remote SMTP service is secured using SSL.",
            "Communication with the remote SMTP service is secured using STARTTLS."
          ]
        },
        "password": {
          "description": "The password that will be used for authentication with the SMTP service. This is a write-only field that can be specified in requests to create or update SendAs settings; it is never populated in responses.",
          "type": "string"
        },
        "port": {
          "format": "int32",
          "description": "The port of the SMTP service. Required.",
          "type": "integer"
        },
        "username": {
          "description": "The username that will be used for authentication with the SMTP service. This is a write-only field that can be specified in requests to create or update SendAs settings; it is never populated in responses.",
          "type": "string"
        }
      }
    },
    "ListSmimeInfoResponse": {
      "id": "ListSmimeInfoResponse",
      "type": "object",
      "properties": {
        "smimeInfo": {
          "items": {
            "$ref": "SmimeInfo"
          },
          "description": "List of SmimeInfo.",
          "type": "array"
        }
      }
    },
    "ListFiltersResponse": {
      "id": "ListFiltersResponse",
      "description": "Response for the ListFilters method.",
      "type": "object",
      "properties": {
        "filter": {
          "items": {
            "$ref": "Filter"
          },
          "description": "List of a user's filters.",
          "type": "array"
        }
      }
    },
    "ListCseKeyPairsResponse": {
      "type": "object",
      "properties": {
        "cseKeyPairs": {
          "items": {
            "$ref": "CseKeyPair"
          },
          "description": "One page of the list of CSE key pairs installed for the user.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "Pagination token to be passed to a subsequent ListCseKeyPairs call in order to retrieve the next page of key pairs. If this value is not returned, then no further pages remain.",
          "type": "string"
        }
      },
      "id": "ListCseKeyPairsResponse"
    },
    "Label": {
      "description": "Labels are used to categorize messages and threads within the user's mailbox. The maximum number of labels supported for a user's mailbox is 10,000.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The immutable ID of the label.",
          "type": "string",
          "annotations": {
            "required": [
              "gmail.users.labels.update"
            ]
          }
        },
        "type": {
          "description": "The owner type for the label. User labels are created by the user and can be modified and deleted by the user and can be applied to any message or thread. System labels are internally created and cannot be added, modified, or deleted. System labels may be able to be applied to or removed from messages and threads under some circumstances but this is not guaranteed. For example, users can apply and remove the `INBOX` and `UNREAD` labels from messages and threads, but cannot apply or remove the `DRAFTS` or `SENT` labels from messages or threads.",
          "type": "string",
          "enum": [
            "system",
            "user"
          ],
          "enumDescriptions": [
            "Labels created by Gmail.",
            "Custom labels created by the user or application."
          ]
        },
        "threadsTotal": {
          "format": "int32",
          "description": "The total number of threads with the label.",
          "type": "integer"
        },
        "color": {
          "description": "The color to assign to the label. Color is only available for labels that have their `type` set to `user`.",
          "$ref": "LabelColor"
        },
        "messageListVisibility": {
          "enumDescriptions": [
            "Show the label in the message list.",
            "Do not show the label in the message list."
          ],
          "description": "The visibility of messages with this label in the message list in the Gmail web interface.",
          "annotations": {
            "required": [
              "gmail.users.labels.create",
              "gmail.users.labels.update"
            ]
          },
          "type": "string",
          "enum": [
            "show",
            "hide"
          ]
        },
        "threadsUnread": {
          "description": "The number of unread threads with the label.",
          "type": "integer",
          "format": "int32"
        },
        "labelListVisibility": {
          "annotations": {
            "required": [
              "gmail.users.labels.create",
              "gmail.users.labels.update"
            ]
          },
          "type": "string",
          "enum": [
            "labelShow",
            "labelShowIfUnread",
            "labelHide"
          ],
          "description": "The visibility of the label in the label list in the Gmail web interface.",
          "enumDescriptions": [
            "Show the label in the label list.",
            "Show the label if there are any unread messages with that label.",
            "Do not show the label in the label list."
          ]
        },
        "messagesTotal": {
          "description": "The total number of messages with the label.",
          "type": "integer",
          "format": "int32"
        },
        "messagesUnread": {
          "description": "The number of unread messages with the label.",
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "description": "The display name of the label.",
          "type": "string",
          "annotations": {
            "required": [
              "gmail.users.labels.create",
              "gmail.users.labels.update"
            ]
          }
        }
      },
      "id": "Label"
    },
    "WatchRequest": {
      "description": "Set up or update a new push notification watch on this user's mailbox.",
      "type": "object",
      "properties": {
        "labelIds": {
          "items": {
            "type": "string"
          },
          "description": "List of label_ids to restrict notifications about. By default, if unspecified, all changes are pushed out. If specified then dictates which labels are required for a push notification to be generated.",
          "type": "array"
        },
        "labelFilterAction": {
          "deprecated": true,
          "type": "string",
          "enum": [
            "include",
            "exclude"
          ],
          "enumDescriptions": [
            "Only get push notifications for message changes relating to labelIds specified.",
            "Get push notifications for all message changes except those relating to labelIds specified."
          ],
          "description": "Filtering behavior of `labelIds list` specified. This field is deprecated because it caused incorrect behavior in some cases; use `label_filter_behavior` instead."
        },
        "labelFilterBehavior": {
          "description": "Filtering behavior of `labelIds list` specified. This field replaces `label_filter_action`; if set, `label_filter_action` is ignored.",
          "type": "string",
          "enum": [
            "include",
            "exclude"
          ],
          "enumDescriptions": [
            "Only get push notifications for message changes relating to labelIds specified.",
            "Get push notifications for all message changes except those relating to labelIds specified."
          ]
        },
        "topicName": {
          "description": "A fully qualified Google Cloud Pub/Sub API topic name to publish the events to. This topic name **must** already exist in Cloud Pub/Sub and you **must** have already granted gmail \"publish\" permission on it. For example, \"projects/my-project-identifier/topics/my-topic-name\" (using the Cloud Pub/Sub \"v1\" topic naming format). Note that the \"my-project-identifier\" portion must exactly match your Google developer project id (the one executing this watch request).",
          "type": "string"
        }
      },
      "id": "WatchRequest"
    },
    "Filter": {
      "id": "Filter",
      "description": "Resource definition for Gmail filters. Filters apply to specific messages instead of an entire email thread.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The server assigned ID of the filter.",
          "type": "string"
        },
        "criteria": {
          "$ref": "FilterCriteria",
          "description": "Matching criteria for the filter."
        },
        "action": {
          "description": "Action that the filter performs.",
          "$ref": "FilterAction"
        }
      }
    },
    "Message": {
      "id": "Message",
      "description": "An email message.",
      "type": "object",
      "properties": {
        "snippet": {
          "description": "A short part of the message text.",
          "type": "string"
        },
        "historyId": {
          "description": "The ID of the last history record that modified this message.",
          "type": "string",
          "format": "uint64"
        },
        "raw": {
          "format": "byte",
          "description": "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. @required gmail.users.drafts.create gmail.users.drafts.update",
          "type": "string",
          "annotations": {
            "required": [
              "gmail.users.messages.insert",
              "gmail.users.messages.send"
            ]
          }
        },
        "labelIds": {
          "description": "List of IDs of labels applied to this message.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "internalDate": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        },
        "sizeEstimate": {
          "description": "Estimated size in bytes of the message.",
          "type": "integer",
          "format": "int32"
        },
        "classificationLabelValues": {
          "items": {
            "$ref": "ClassificationLabelValue"
          },
          "description": "Classification Label values on the message. Available Classification Label schemas can be queried using the Google Drive Labels API. Each classification label ID must be unique. If duplicate IDs are provided, only one will be retained, and the selection is arbitrary. Only used for Google Workspace accounts. There's a limit of 20 Classification Label values per request. If the Classification Label values exceeds the maximum allowed number, the request fails.",
          "type": "array"
        },
        "id": {
          "description": "The immutable ID of the message.",
          "type": "string"
        },
        "threadId": {
          "description": "The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met: 1. The requested `threadId` must be specified on the `Message` or `Draft.Message` you supply with your request. 2. The `References` and `In-Reply-To` headers must be set in compliance with the [RFC 2822](https://tools.ietf.org/html/rfc2822) standard. 3. The `Subject` headers must match. ",
          "type": "string"
        },
        "payload": {
          "$ref": "MessagePart",
          "description": "The parsed email structure in the message parts."
        }
      }
    },
    "ListLabelsResponse": {
      "type": "object",
      "properties": {
        "labels": {
          "description": "List of labels. Note that each label resource only contains an `id`, `name`, `messageListVisibility`, `labelListVisibility`, and `type`. The [`labels.get`](https://developers.google.com/workspace/gmail/api/v1/reference/users/labels/get) method can fetch additional label details.",
          "type": "array",
          "items": {
            "$ref": "Label"
          }
        }
      },
      "id": "ListLabelsResponse"
    },
    "ListSendAsResponse": {
      "id": "ListSendAsResponse",
      "description": "Response for the ListSendAs method.",
      "type": "object",
      "properties": {
        "sendAs": {
          "items": {
            "$ref": "SendAs"
          },
          "description": "List of send-as aliases.",
          "type": "array"
        }
      }
    },
    "ListDelegatesResponse": {
      "id": "ListDelegatesResponse",
      "description": "Response for the ListDelegates method.",
      "type": "object",
      "properties": {
        "delegates": {
          "description": "List of the user's delegates (with any verification status). If an account doesn't have delegates, this field doesn't appear.",
          "type": "array",
          "items": {
            "$ref": "Delegate"
          }
        }
      }
    },
    "HistoryLabelAdded": {
      "id": "HistoryLabelAdded",
      "type": "object",
      "properties": {
        "labelIds": {
          "items": {
            "type": "string"
          },
          "description": "Label IDs added to the message.",
          "type": "array"
        },
        "message": {
          "$ref": "Message"
        }
      }
    },
    "ObliterateCseKeyPairRequest": {
      "description": "Request to obliterate a CSE key pair.",
      "type": "object",
      "properties": {},
      "id": "ObliterateCseKeyPairRequest"
    },
    "HistoryMessageDeleted": {
      "id": "HistoryMessageDeleted",
      "type": "object",
      "properties": {
        "message": {
          "$ref": "Message"
        }
      }
    },
    "HistoryLabelRemoved": {
      "id": "HistoryLabelRemoved",
      "type": "object",
      "properties": {
        "labelIds": {
          "items": {
            "type": "string"
          },
          "description": "Label IDs removed from the message.",
          "type": "array"
        },
        "message": {
          "$ref": "Message"
        }
      }
    },
    "ListForwardingAddressesResponse": {
      "id": "ListForwardingAddressesResponse",
      "description": "Response for the ListForwardingAddresses method.",
      "type": "object",
      "properties": {
        "forwardingAddresses": {
          "items": {
            "$ref": "ForwardingAddress"
          },
          "description": "List of addresses that may be used for forwarding.",
          "type": "array"
        }
      }
    },
    "ModifyThreadRequest": {
      "type": "object",
      "properties": {
        "addLabelIds": {
          "description": "A list of IDs of labels to add to this thread. You can add up to 100 labels with each update.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "removeLabelIds": {
          "description": "A list of IDs of labels to remove from this thread. You can remove up to 100 labels with each update.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "ModifyThreadRequest"
    },
    "FilterAction": {
      "id": "FilterAction",
      "description": "A set of actions to perform on a message.",
      "type": "object",
      "properties": {
        "forward": {
          "description": "Email address that the message should be forwarded to. This effectively redirects the message to the address specified in this field, maintaining the original sender in the \"From\" field.",
          "type": "string"
        },
        "addLabelIds": {
          "description": "List of labels to add to the message.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "removeLabelIds": {
          "items": {
            "type": "string"
          },
          "description": "List of labels to remove from the message.",
          "type": "array"
        }
      }
    },
    "HistoryMessageAdded": {
      "type": "object",
      "properties": {
        "message": {
          "$ref": "Message"
        }
      },
      "id": "HistoryMessageAdded"
    },
    "MessagePartBody": {
      "id": "MessagePartBody",
      "description": "The body of a single MIME message part.",
      "type": "object",
      "properties": {
        "data": {
          "description": "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.",
          "type": "string",
          "format": "byte"
        },
        "attachmentId": {
          "description": "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.",
          "type": "string"
        },
        "size": {
          "format": "int32",
          "description": "Number of bytes for the message part data (encoding notwithstanding).",
          "type": "integer"
        }
      }
    },
    "CseIdentity": {
      "id": "CseIdentity",
      "description": "The client-side encryption (CSE) configuration for the email address of an authenticated user. Gmail uses CSE configurations to save drafts of client-side encrypted email messages, and to sign and send encrypted email messages. For administrators managing identities and keypairs for users in their organization, requests require authorization with a [service account](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the `https://www.googleapis.com/auth/gmail.settings.basic` scope. For users managing their own identities and keypairs, requests require [hardware key encryption](https://support.google.com/a/answer/14153163) turned on and configured.",
      "type": "object",
      "properties": {
        "emailAddress": {
          "description": "The email address for the sending identity. The email address must be the primary email address of the authenticated user.",
          "type": "string"
        },
        "signAndEncryptKeyPairs": {
          "description": "The configuration of a CSE identity that uses different key pairs for signing and encryption.",
          "$ref": "SignAndEncryptKeyPairs"
        },
        "primaryKeyPairId": {
          "description": "If a key pair is associated, the ID of the key pair, CseKeyPair.",
          "type": "string"
        }
      }
    },
    "SendAs": {
      "id": "SendAs",
      "description": "Settings associated with a send-as alias, which can be either the primary login address associated with the account or a custom \"from\" address. Send-as aliases correspond to the \"Send Mail As\" feature in the web interface. The send-as alias must be a valid email address.",
      "type": "object",
      "properties": {
        "sendAsEmail": {
          "description": "The email address that appears in the \"From:\" header for mail sent using this alias. This is read-only for all operations except create.",
          "type": "string"
        },
        "displayName": {
          "description": "A name that appears in the \"From:\" header for mail sent using this alias. For custom \"from\" addresses, when this is empty, Gmail will populate the \"From:\" header with the name that is used for the primary address associated with the account. If the admin has disabled the ability for users to update their name format, requests to update this field for the primary login will silently fail.",
          "type": "string"
        },
        "isPrimary": {
          "description": "Whether this address is the primary address used to login to the account. Every Gmail account has exactly one primary address, and it cannot be deleted from the collection of send-as aliases. This field is read-only.",
          "type": "boolean"
        },
        "smtpMsa": {
          "description": "An optional SMTP service that will be used as an outbound relay for mail sent using this alias. If this is empty, outbound mail will be sent directly from Gmail's servers to the destination SMTP service. This setting only applies to custom \"from\" aliases.",
          "$ref": "SmtpMsa"
        },
        "isDefault": {
          "description": "Whether this address is selected as the default \"From:\" address in situations such as composing a new message or sending a vacation auto-reply. Every Gmail account has exactly one default send-as address, so the only legal value that clients may write to this field is `true`. Changing this from `false` to `true` for an address will result in this field becoming `false` for the other previous default address.",
          "type": "boolean"
        },
        "verificationStatus": {
          "description": "Indicates whether this address has been verified for use as a send-as alias. Read-only. This setting only applies to custom \"from\" aliases.",
          "type": "string",
          "enum": [
            "verificationStatusUnspecified",
            "accepted",
            "pending"
          ],
          "enumDescriptions": [
            "Unspecified verification status.",
            "The address is ready to use as a send-as alias.",
            "The address is awaiting verification by the owner."
          ]
        },
        "treatAsAlias": {
          "description": "Whether Gmail should treat this address as an alias for the user's primary email address. This setting only applies to custom \"from\" aliases.",
          "type": "boolean"
        },
        "replyToAddress": {
          "description": "An optional email address that is included in a \"Reply-To:\" header for mail sent using this alias. If this is empty, Gmail will not generate a \"Reply-To:\" header.",
          "type": "string"
        },
        "signature": {
          "description": "An optional HTML signature that is included in messages composed with this alias in the Gmail web UI. This signature is added to new emails only.",
          "type": "string"
        }
      }
    },
    "SmimeInfo": {
      "id": "SmimeInfo",
      "description": "An S/MIME email config.",
      "type": "object",
      "properties": {
        "issuerCn": {
          "description": "The S/MIME certificate issuer's common name.",
          "type": "string"
        },
        "expiration": {
          "description": "When the certificate expires (in milliseconds since epoch).",
          "type": "string",
          "format": "int64"
        },
        "isDefault": {
          "description": "Whether this SmimeInfo is the default one for this user's send-as address.",
          "type": "boolean"
        },
        "encryptedKeyPassword": {
          "description": "Encrypted key password, when key is encrypted.",
          "type": "string"
        },
        "id": {
          "description": "The immutable ID for the SmimeInfo.",
          "type": "string"
        },
        "pem": {
          "description": "PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).",
          "type": "string"
        },
        "pkcs12": {
          "format": "byte",
          "description": "PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.",
          "type": "string"
        }
      }
    },
    "Draft": {
      "id": "Draft",
      "description": "A draft email in the user's mailbox.",
      "type": "object",
      "properties": {
        "id": {
          "annotations": {
            "required": [
              "gmail.users.drafts.send"
            ]
          },
          "description": "The immutable ID of the draft.",
          "type": "string"
        },
        "message": {
          "description": "The message content of the draft.",
          "$ref": "Message"
        }
      }
    },
    "PopSettings": {
      "id": "PopSettings",
      "description": "POP settings for an account.",
      "type": "object",
      "properties": {
        "accessWindow": {
          "description": "The range of messages which are accessible via POP.",
          "type": "string",
          "enum": [
            "accessWindowUnspecified",
            "disabled",
            "fromNowOn",
            "allMail"
          ],
          "enumDescriptions": [
            "Unspecified range.",
            "Indicates that no messages are accessible via POP.",
            "Indicates that unfetched messages received after some past point in time are accessible via POP.",
            "Indicates that all unfetched messages are accessible via POP."
          ]
        },
        "disposition": {
          "enumDescriptions": [
            "Unspecified disposition.",
            "Leave the message in the `INBOX`.",
            "Archive the message.",
            "Move the message to the `TRASH`.",
            "Leave the message in the `INBOX` and mark it as read."
          ],
          "description": "The action that will be executed on a message after it has been fetched via POP.",
          "type": "string",
          "enum": [
            "dispositionUnspecified",
            "leaveInInbox",
            "archive",
            "trash",
            "markRead"
          ]
        }
      }
    },
    "Thread": {
      "description": "A collection of messages representing a conversation.",
      "type": "object",
      "properties": {
        "historyId": {
          "format": "uint64",
          "description": "The ID of the last history record that modified this thread.",
          "type": "string"
        },
        "id": {
          "description": "The unique ID of the thread.",
          "type": "string"
        },
        "snippet": {
          "description": "A short part of the message text.",
          "type": "string"
        },
        "messages": {
          "description": "The list of messages in the thread.",
          "type": "array",
          "items": {
            "$ref": "Message"
          }
        }
      },
      "id": "Thread"
    },
    "ForwardingAddress": {
      "description": "Settings for a forwarding address.",
      "type": "object",
      "properties": {
        "verificationStatus": {
          "description": "Indicates whether this address has been verified and is usable for forwarding. Read-only.",
          "type": "string",
          "enum": [
            "verificationStatusUnspecified",
            "accepted",
            "pending"
          ],
          "enumDescriptions": [
            "Unspecified verification status.",
            "The address is ready to use for forwarding.",
            "The address is awaiting verification by the owner."
          ]
        },
        "forwardingEmail": {
          "description": "An email address to which messages can be forwarded.",
          "type": "string"
        }
      },
      "id": "ForwardingAddress"
    },
    "VacationSettings": {
      "id": "VacationSettings",
      "description": "Vacation auto-reply settings for an account. These settings correspond to the \"Vacation responder\" feature in the web interface.",
      "type": "object",
      "properties": {
        "restrictToDomain": {
          "description": "Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for Google Workspace users.",
          "type": "boolean"
        },
        "startTime": {
          "description": "An optional start time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives after the start time. If both `startTime` and `endTime` are specified, `startTime` must precede `endTime`.",
          "type": "string",
          "format": "int64"
        },
        "endTime": {
          "format": "int64",
          "description": "An optional end time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives before the end time. If both `startTime` and `endTime` are specified, `startTime` must precede `endTime`.",
          "type": "string"
        },
        "restrictToContacts": {
          "description": "Flag that determines whether responses are sent to recipients who are not in the user's list of contacts.",
          "type": "boolean"
        },
        "responseSubject": {
          "description": "Optional text to prepend to the subject line in vacation responses. In order to enable auto-replies, either the response subject or the response body must be nonempty.",
          "type": "string"
        },
        "responseBodyPlainText": {
          "description": "Response body in plain text format. If both `response_body_plain_text` and `response_body_html` are specified, `response_body_html` will be used.",
          "type": "string"
        },
        "responseBodyHtml": {
          "description": "Response body in HTML format. Gmail will sanitize the HTML before storing it. If both `response_body_plain_text` and `response_body_html` are specified, `response_body_html` will be used.",
          "type": "string"
        },
        "enableAutoReply": {
          "description": "Flag that controls whether Gmail automatically replies to messages.",
          "type": "boolean"
        }
      }
    },
    "MessagePart": {
      "id": "MessagePart",
      "description": "A single MIME message part.",
      "type": "object",
      "properties": {
        "partId": {
          "description": "The immutable ID of the message part.",
          "type": "string"
        },
        "headers": {
          "description": "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`.",
          "type": "array",
          "items": {
            "$ref": "MessagePartHeader"
          }
        },
        "mimeType": {
          "description": "The MIME type of the message part.",
          "type": "string"
        },
        "filename": {
          "description": "The filename of the attachment. Only present if this message part represents an attachment.",
          "type": "string"
        },
        "body": {
          "description": "The message part body for this part, which may be empty for container MIME message parts.",
          "$ref": "MessagePartBody"
        },
        "parts": {
          "description": "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 RFC 1521.",
          "type": "array",
          "items": {
            "$ref": "MessagePart"
          }
        }
      }
    },
    "MessagePartHeader": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the header before the `:` separator. For example, `To`.",
          "type": "string"
        },
        "value": {
          "description": "The value of the header after the `:` separator. For example, `someuser@example.com`.",
          "type": "string"
        }
      },
      "id": "MessagePartHeader"
    },
    "SignAndEncryptKeyPairs": {
      "description": "The configuration of a CSE identity that uses different key pairs for signing and encryption.",
      "type": "object",
      "properties": {
        "signingKeyPairId": {
          "description": "The ID of the CseKeyPair that signs outgoing mail.",
          "type": "string"
        },
        "encryptionKeyPairId": {
          "description": "The ID of the CseKeyPair that encrypts signed outgoing mail.",
          "type": "string"
        }
      },
      "id": "SignAndEncryptKeyPairs"
    },
    "CsePrivateKeyMetadata": {
      "description": "Metadata for a private key instance.",
      "type": "object",
      "properties": {
        "hardwareKeyMetadata": {
          "description": "Metadata for hardware keys.",
          "$ref": "HardwareKeyMetadata"
        },
        "privateKeyMetadataId": {
          "readOnly": true,
          "description": "Output only. The immutable ID for the private key metadata instance.",
          "type": "string"
        },
        "kaclsKeyMetadata": {
          "description": "Metadata for a private key instance managed by an external key access control list service.",
          "$ref": "KaclsKeyMetadata"
        }
      },
      "id": "CsePrivateKeyMetadata"
    },
    "ListCseIdentitiesResponse": {
      "id": "ListCseIdentitiesResponse",
      "type": "object",
      "properties": {
        "cseIdentities": {
          "items": {
            "$ref": "CseIdentity"
          },
          "description": "One page of the list of CSE identities configured for the user.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "Pagination token to be passed to a subsequent ListCseIdentities call in order to retrieve the next page of identities. If this value is not returned or is the empty string, then no further pages remain.",
          "type": "string"
        }
      }
    },
    "ImapSettings": {
      "description": "IMAP settings for an account.",
      "type": "object",
      "properties": {
        "autoExpunge": {
          "description": "If this value is true, Gmail will immediately expunge a message when it is marked as deleted in IMAP. Otherwise, Gmail will wait for an update from the client before expunging messages marked as deleted.",
          "type": "boolean"
        },
        "enabled": {
          "description": "Whether IMAP is enabled for the account.",
          "type": "boolean"
        },
        "expungeBehavior": {
          "description": "The action that will be executed on a message when it is marked as deleted and expunged from the last visible IMAP folder.",
          "type": "string",
          "enum": [
            "expungeBehaviorUnspecified",
            "archive",
            "trash",
            "deleteForever"
          ],
          "enumDescriptions": [
            "Unspecified behavior.",
            "Archive messages marked as deleted.",
            "Move messages marked as deleted to the trash.",
            "Immediately and permanently delete messages marked as deleted. The expunged messages cannot be recovered."
          ]
        },
        "maxFolderSize": {
          "format": "int32",
          "description": "An optional limit on the number of messages that an IMAP folder may contain. Legal values are 0, 1000, 2000, 5000 or 10000. A value of zero is interpreted to mean that there is no limit.",
          "type": "integer"
        }
      },
      "id": "ImapSettings"
    },
    "AutoForwarding": {
      "description": "Auto-forwarding settings for an account.",
      "type": "object",
      "properties": {
        "enabled": {
          "description": "Whether all incoming mail is automatically forwarded to another address.",
          "type": "boolean"
        },
        "disposition": {
          "description": "The state that a message should be left in after it has been forwarded.",
          "type": "string",
          "enum": [
            "dispositionUnspecified",
            "leaveInInbox",
            "archive",
            "trash",
            "markRead"
          ],
          "enumDescriptions": [
            "Unspecified disposition.",
            "Leave the message in the `INBOX`.",
            "Archive the message.",
            "Move the message to the `TRASH`.",
            "Leave the message in the `INBOX` and mark it as read."
          ]
        },
        "emailAddress": {
          "description": "Email address to which all incoming messages are forwarded. This email address must be a verified member of the forwarding addresses.",
          "type": "string"
        }
      },
      "id": "AutoForwarding"
    },
    "EnableCseKeyPairRequest": {
      "description": "Requests to turn on a client-side encryption key pair.",
      "type": "object",
      "properties": {},
      "id": "EnableCseKeyPairRequest"
    },
    "ListHistoryResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "description": "Page token to retrieve the next page of results in the list.",
          "type": "string"
        },
        "history": {
          "description": "List of history records. Any `messages` contained in the response will typically only have `id` and `threadId` fields populated.",
          "type": "array",
          "items": {
            "$ref": "History"
          }
        },
        "historyId": {
          "description": "The ID of the mailbox's current history record.",
          "type": "string",
          "format": "uint64"
        }
      },
      "id": "ListHistoryResponse"
    },
    "KaclsKeyMetadata": {
      "description": "Metadata for private keys managed by an external key access control list service. For details about managing key access, see [Google Workspace CSE API Reference](https://developers.google.com/workspace/cse/reference).",
      "type": "object",
      "properties": {
        "kaclsUri": {
          "description": "The URI of the key access control list service that manages the private key.",
          "type": "string"
        },
        "kaclsData": {
          "description": "Opaque data generated and used by the key access control list service. Maximum size: 8 KiB.",
          "type": "string"
        }
      },
      "id": "KaclsKeyMetadata"
    },
    "ClassificationLabelValue": {
      "description": "Classification Labels applied to the email message. Classification Labels are different from Gmail inbox labels. Only used for Google Workspace accounts. [Learn more about classification labels](https://support.google.com/a/answer/9292382).",
      "type": "object",
      "properties": {
        "labelId": {
          "description": "Required. The canonical or raw alphanumeric classification label ID. Maps to the ID field of the Google Drive Label resource.",
          "type": "string"
        },
        "fields": {
          "description": "Field values for the given classification label ID.",
          "type": "array",
          "items": {
            "$ref": "ClassificationLabelFieldValue"
          }
        }
      },
      "id": "ClassificationLabelValue"
    },
    "History": {
      "description": "A record of a change to the user's mailbox. Each history change may affect multiple messages in multiple ways.",
      "type": "object",
      "properties": {
        "labelsRemoved": {
          "items": {
            "$ref": "HistoryLabelRemoved"
          },
          "description": "Labels removed from messages in this history record.",
          "type": "array"
        },
        "messagesDeleted": {
          "description": "Messages deleted (not Trashed) from the mailbox in this history record.",
          "type": "array",
          "items": {
            "$ref": "HistoryMessageDeleted"
          }
        },
        "messages": {
          "items": {
            "$ref": "Message"
          },
          "description": "List of messages changed in this history record. The fields for specific change types, such as `messagesAdded` may duplicate messages in this field. We recommend using the specific change-type fields instead of this.",
          "type": "array"
        },
        "id": {
          "format": "uint64",
          "description": "The mailbox sequence ID.",
          "type": "string"
        },
        "messagesAdded": {
          "items": {
            "$ref": "HistoryMessageAdded"
          },
          "description": "Messages added to the mailbox in this history record.",
          "type": "array"
        },
        "labelsAdded": {
          "description": "Labels added to messages in this history record.",
          "type": "array",
          "items": {
            "$ref": "HistoryLabelAdded"
          }
        }
      },
      "id": "History"
    },
    "Profile": {
      "description": "Profile for a Gmail user.",
      "type": "object",
      "properties": {
        "messagesTotal": {
          "format": "int32",
          "description": "The total number of messages in the mailbox.",
          "type": "integer"
        },
        "historyId": {
          "description": "The ID of the mailbox's current history record.",
          "type": "string",
          "format": "uint64"
        },
        "threadsTotal": {
          "format": "int32",
          "description": "The total number of threads in the mailbox.",
          "type": "integer"
        },
        "emailAddress": {
          "description": "The user's email address.",
          "type": "string"
        }
      },
      "id": "Profile"
    },
    "BatchModifyMessagesRequest": {
      "type": "object",
      "properties": {
        "removeLabelIds": {
          "items": {
            "type": "string"
          },
          "description": "A list of label IDs to remove from messages.",
          "type": "array"
        },
        "addClassificationLabels": {
          "items": {
            "$ref": "ClassificationLabelValue"
          },
          "description": "A list of Classification Label values to add. If a Classification Label with the same label ID is already applied to the message, fields with existing field IDs will be updated and fields with new field IDs will be added. There's a limit of 20 Classification Label values per request. If the message is already classified and the final total number of Classification Label values exceeds the maximum allowed number of Classification Label values per message, the modification fails.",
          "type": "array"
        },
        "ids": {
          "description": "The IDs of the messages to modify. There is a limit of 1000 ids per request.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "addLabelIds": {
          "description": "A list of label IDs to add to messages.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "removeClassificationLabelIds": {
          "description": "A list of Classification Label values to remove from messages.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "BatchModifyMessagesRequest"
    },
    "WatchResponse": {
      "id": "WatchResponse",
      "description": "Push notification watch response.",
      "type": "object",
      "properties": {
        "historyId": {
          "description": "The ID of the mailbox's current history record.",
          "type": "string",
          "format": "uint64"
        },
        "expiration": {
          "format": "int64",
          "description": "When Gmail will stop sending notifications for mailbox updates (epoch millis). Call `watch` again before this time to renew the watch.",
          "type": "string"
        }
      }
    },
    "Delegate": {
      "description": "Settings for a delegate. Delegates can read, send, and delete messages, as well as view and add contacts, for the delegator's account. See \"Set up mail delegation\" for more information about delegates.",
      "type": "object",
      "properties": {
        "delegateEmail": {
          "description": "The email address of the delegate.",
          "type": "string"
        },
        "verificationStatus": {
          "description": "Indicates whether this address has been verified and can act as a delegate for the account. Read-only.",
          "type": "string",
          "enum": [
            "verificationStatusUnspecified",
            "accepted",
            "pending",
            "rejected",
            "expired"
          ],
          "enumDescriptions": [
            "Unspecified verification status.",
            "The address can act a delegate for the account.",
            "A verification request was mailed to the address, and the owner has not yet accepted it.",
            "A verification request was mailed to the address, and the owner rejected it.",
            "A verification request was mailed to the address, and it expired without verification."
          ]
        }
      },
      "id": "Delegate"
    },
    "HardwareKeyMetadata": {
      "id": "HardwareKeyMetadata",
      "description": "Metadata for hardware keys. If [hardware key encryption](https://support.google.com/a/answer/14153163) is set up for the Google Workspace organization, users can optionally store their private key on their smart card and use it to sign and decrypt email messages in Gmail by inserting their smart card into a reader attached to their Windows device.",
      "type": "object",
      "properties": {
        "description": {
          "description": "Description about the hardware key.",
          "type": "string"
        }
      }
    }
  },
  "description": "The Gmail API lets you view and manage Gmail mailbox data like threads, messages, and labels.",
  "parameters": {
    "uploadType": {
      "location": "query",
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "quotaUser": {
      "type": "string",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query"
    },
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "prettyPrint": {
      "default": "true",
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "location": "query"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "alt": {
      "description": "Data format for response.",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "default": "json",
      "type": "string",
      "enum": [
        "json",
        "media",
        "proto"
      ]
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "key": {
      "type": "string",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "$.xgafv": {
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "description": "V1 error format.",
      "type": "string",
      "enum": [
        "1",
        "2"
      ]
    }
  },
  "protocol": "rest"
}
