{
  "components": {
    "schemas": {
      "calendar_Acl": {
        "properties": {
          "etag": {
            "description": "ETag of the collection.",
            "type": "string"
          },
          "items": {
            "description": "List of rules on the access control list.",
            "items": {
              "$ref": "#/components/schemas/calendar_AclRule"
            },
            "type": "array"
          },
          "kind": {
            "default": "calendar#acl",
            "description": "Type of the collection (\"calendar#acl\").",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.",
            "type": "string"
          },
          "nextSyncToken": {
            "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_AclRule": {
        "properties": {
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "id": {
            "description": "Identifier of the Access Control List (ACL) rule. See Sharing calendars.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#aclRule",
            "description": "Type of the resource (\"calendar#aclRule\").",
            "type": "string"
          },
          "role": {
            "description": "The role assigned to the scope. Possible values are:  \n- \"none\" - Provides no access. \n- \"freeBusyReader\" - Provides read access to free/busy information. \n- \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writerWithoutPrivateAccess\" - Provides read and write access to the calendar. Private events will appear to users with writerWithoutPrivateAccess access, but event details will be hidden. \n- \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. Provides read access to the calendar's ACLs. \n- \"owner\" - Provides manager access to the calendar. This role has all of the permissions of the writer role with the additional ability to modify access levels of other users.\nImportant: the owner role is different from the calendar's data owner. A calendar has a single data owner, but can have multiple users with owner role.",
            "type": "string"
          },
          "scope": {
            "description": "The extent to which calendar access is granted by this ACL rule.",
            "properties": {
              "type": {
                "description": "The type of the scope. Possible values are:  \n- \"default\" - The public scope. This is the default value. \n- \"user\" - Limits the scope to a single user. \n- \"group\" - Limits the scope to a group. \n- \"domain\" - Limits the scope to a domain.  Note: The permissions granted to the \"default\", or public, scope apply to any user, authenticated or not.",
                "type": "string"
              },
              "value": {
                "description": "The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type \"default\".",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "calendar_AclRule_calendar_acl_insert": {
        "properties": {
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "id": {
            "description": "Identifier of the Access Control List (ACL) rule. See Sharing calendars.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#aclRule",
            "description": "Type of the resource (\"calendar#aclRule\").",
            "type": "string"
          },
          "role": {
            "description": "The role assigned to the scope. Possible values are:  \n- \"none\" - Provides no access. \n- \"freeBusyReader\" - Provides read access to free/busy information. \n- \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writerWithoutPrivateAccess\" - Provides read and write access to the calendar. Private events will appear to users with writerWithoutPrivateAccess access, but event details will be hidden. \n- \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. Provides read access to the calendar's ACLs. \n- \"owner\" - Provides manager access to the calendar. This role has all of the permissions of the writer role with the additional ability to modify access levels of other users.\nImportant: the owner role is different from the calendar's data owner. A calendar has a single data owner, but can have multiple users with owner role.",
            "type": "string"
          },
          "scope": {
            "description": "The extent to which calendar access is granted by this ACL rule.",
            "properties": {
              "type": {
                "description": "The type of the scope. Possible values are:  \n- \"default\" - The public scope. This is the default value. \n- \"user\" - Limits the scope to a single user. \n- \"group\" - Limits the scope to a group. \n- \"domain\" - Limits the scope to a domain.  Note: The permissions granted to the \"default\", or public, scope apply to any user, authenticated or not.",
                "type": "string"
              },
              "value": {
                "description": "The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type \"default\".",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "required": [
          "role",
          "scope"
        ],
        "type": "object"
      },
      "calendar_AclRule_calendar_acl_update": {
        "properties": {
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "id": {
            "description": "Identifier of the Access Control List (ACL) rule. See Sharing calendars.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#aclRule",
            "description": "Type of the resource (\"calendar#aclRule\").",
            "type": "string"
          },
          "role": {
            "description": "The role assigned to the scope. Possible values are:  \n- \"none\" - Provides no access. \n- \"freeBusyReader\" - Provides read access to free/busy information. \n- \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writerWithoutPrivateAccess\" - Provides read and write access to the calendar. Private events will appear to users with writerWithoutPrivateAccess access, but event details will be hidden. \n- \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. Provides read access to the calendar's ACLs. \n- \"owner\" - Provides manager access to the calendar. This role has all of the permissions of the writer role with the additional ability to modify access levels of other users.\nImportant: the owner role is different from the calendar's data owner. A calendar has a single data owner, but can have multiple users with owner role.",
            "type": "string"
          },
          "scope": {
            "description": "The extent to which calendar access is granted by this ACL rule.",
            "properties": {
              "type": {
                "description": "The type of the scope. Possible values are:  \n- \"default\" - The public scope. This is the default value. \n- \"user\" - Limits the scope to a single user. \n- \"group\" - Limits the scope to a group. \n- \"domain\" - Limits the scope to a domain.  Note: The permissions granted to the \"default\", or public, scope apply to any user, authenticated or not.",
                "type": "string"
              },
              "value": {
                "description": "The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type \"default\".",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "required": [
          "scope"
        ],
        "type": "object"
      },
      "calendar_Acl_calendar_acl_insert": {
        "properties": {
          "etag": {
            "description": "ETag of the collection.",
            "type": "string"
          },
          "items": {
            "description": "List of rules on the access control list.",
            "items": {
              "$ref": "#/components/schemas/calendar_AclRule_calendar_acl_insert"
            },
            "type": "array"
          },
          "kind": {
            "default": "calendar#acl",
            "description": "Type of the collection (\"calendar#acl\").",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.",
            "type": "string"
          },
          "nextSyncToken": {
            "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Acl_calendar_acl_update": {
        "properties": {
          "etag": {
            "description": "ETag of the collection.",
            "type": "string"
          },
          "items": {
            "description": "List of rules on the access control list.",
            "items": {
              "$ref": "#/components/schemas/calendar_AclRule_calendar_acl_update"
            },
            "type": "array"
          },
          "kind": {
            "default": "calendar#acl",
            "description": "Type of the collection (\"calendar#acl\").",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.",
            "type": "string"
          },
          "nextSyncToken": {
            "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Calendar": {
        "properties": {
          "autoAcceptInvitations": {
            "description": "Whether this calendar automatically accepts invitations. Only valid for resource calendars.",
            "type": "boolean"
          },
          "conferenceProperties": {
            "$ref": "#/components/schemas/calendar_ConferenceProperties",
            "description": "Conferencing properties for this calendar, for example what types of conferences are allowed."
          },
          "dataOwner": {
            "description": "The email of the owner of the calendar. Set only for secondary calendars. Read-only.",
            "type": "string"
          },
          "description": {
            "description": "Description of the calendar. Optional.",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "id": {
            "description": "Identifier of the calendar. To retrieve IDs call the calendarList.list() method.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#calendar",
            "description": "Type of the resource (\"calendar#calendar\").",
            "type": "string"
          },
          "labelProperties": {
            "$ref": "#/components/schemas/calendar_LabelProperties",
            "description": "Label properties defined on this calendar. If specified, overwrites the existing label properties. If not specified, the label properties remain unchanged."
          },
          "location": {
            "description": "Geographic location of the calendar as free-form text. Optional.",
            "type": "string"
          },
          "summary": {
            "description": "Title of the calendar.",
            "type": "string"
          },
          "timeZone": {
            "description": "The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) Optional.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_CalendarList": {
        "properties": {
          "etag": {
            "description": "ETag of the collection.",
            "type": "string"
          },
          "items": {
            "description": "Calendars that are present on the user's calendar list.",
            "items": {
              "$ref": "#/components/schemas/calendar_CalendarListEntry"
            },
            "type": "array"
          },
          "kind": {
            "default": "calendar#calendarList",
            "description": "Type of the collection (\"calendar#calendarList\").",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.",
            "type": "string"
          },
          "nextSyncToken": {
            "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_CalendarListEntry": {
        "properties": {
          "accessRole": {
            "description": "The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:  \n- \"freeBusyReader\" - Provides read access to free/busy information. \n- \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writerWithoutPrivateAccess\" - Provides read and write access to the calendar. Private events will appear to users with writerWithoutPrivateAccess access, but event details will be hidden. \n- \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - Provides manager access to the calendar. This role has all of the permissions of the writer role with the additional ability to see and modify access levels of other users.\nImportant: the owner role is different from the calendar's data owner. A calendar has a single data owner, but can have multiple users with owner role.",
            "type": "string"
          },
          "autoAcceptInvitations": {
            "description": "Whether this calendar automatically accepts invitations. Only valid for resource calendars. Read-only.",
            "type": "boolean"
          },
          "backgroundColor": {
            "description": "The main color of the calendar in the hexadecimal format \"#0088aa\". This property supersedes the index-based colorId property. To set or change this property, you need to specify colorRgbFormat=true in the parameters of the insert, update and patch methods. Optional.",
            "type": "string"
          },
          "colorId": {
            "description": "The color of the calendar. This is an ID referring to an entry in the calendar section of the colors definition (see the colors endpoint). This property is superseded by the backgroundColor and foregroundColor properties and can be ignored when using these properties. Optional.",
            "type": "string"
          },
          "conferenceProperties": {
            "$ref": "#/components/schemas/calendar_ConferenceProperties",
            "description": "Conferencing properties for this calendar, for example what types of conferences are allowed."
          },
          "dataOwner": {
            "description": "The email of the owner of the calendar. Set only for secondary calendars. Read-only.",
            "type": "string"
          },
          "defaultReminders": {
            "description": "The default reminders that the authenticated user has for this calendar.",
            "items": {
              "$ref": "#/components/schemas/calendar_EventReminder"
            },
            "type": "array"
          },
          "deleted": {
            "default": "false",
            "description": "Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.",
            "type": "boolean"
          },
          "description": {
            "description": "Description of the calendar. Optional. Read-only.",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "foregroundColor": {
            "description": "The foreground color of the calendar in the hexadecimal format \"#ffffff\". This property supersedes the index-based colorId property. To set or change this property, you need to specify colorRgbFormat=true in the parameters of the insert, update and patch methods. Optional.",
            "type": "string"
          },
          "hidden": {
            "default": "false",
            "description": "Whether the calendar has been hidden from the list. Optional. The attribute is only returned when the calendar is hidden, in which case the value is true.",
            "type": "boolean"
          },
          "id": {
            "description": "Identifier of the calendar.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#calendarListEntry",
            "description": "Type of the resource (\"calendar#calendarListEntry\").",
            "type": "string"
          },
          "location": {
            "description": "Geographic location of the calendar as free-form text. Optional. Read-only.",
            "type": "string"
          },
          "notificationSettings": {
            "description": "The notifications that the authenticated user is receiving for this calendar.",
            "properties": {
              "notifications": {
                "description": "The list of notifications set for this calendar.",
                "items": {
                  "$ref": "#/components/schemas/calendar_CalendarNotification"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "primary": {
            "default": "false",
            "description": "Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.",
            "type": "boolean"
          },
          "selected": {
            "default": "false",
            "description": "Whether the calendar content shows up in the calendar UI. Optional. The default is False.",
            "type": "boolean"
          },
          "summary": {
            "description": "Title of the calendar. Read-only.",
            "type": "string"
          },
          "summaryOverride": {
            "description": "The summary that the authenticated user has set for this calendar. Optional.",
            "type": "string"
          },
          "timeZone": {
            "description": "The time zone of the calendar. Optional. Read-only.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_CalendarListEntry_calendar_calendarList_insert": {
        "properties": {
          "accessRole": {
            "description": "The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:  \n- \"freeBusyReader\" - Provides read access to free/busy information. \n- \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writerWithoutPrivateAccess\" - Provides read and write access to the calendar. Private events will appear to users with writerWithoutPrivateAccess access, but event details will be hidden. \n- \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - Provides manager access to the calendar. This role has all of the permissions of the writer role with the additional ability to see and modify access levels of other users.\nImportant: the owner role is different from the calendar's data owner. A calendar has a single data owner, but can have multiple users with owner role.",
            "type": "string"
          },
          "autoAcceptInvitations": {
            "description": "Whether this calendar automatically accepts invitations. Only valid for resource calendars. Read-only.",
            "type": "boolean"
          },
          "backgroundColor": {
            "description": "The main color of the calendar in the hexadecimal format \"#0088aa\". This property supersedes the index-based colorId property. To set or change this property, you need to specify colorRgbFormat=true in the parameters of the insert, update and patch methods. Optional.",
            "type": "string"
          },
          "colorId": {
            "description": "The color of the calendar. This is an ID referring to an entry in the calendar section of the colors definition (see the colors endpoint). This property is superseded by the backgroundColor and foregroundColor properties and can be ignored when using these properties. Optional.",
            "type": "string"
          },
          "conferenceProperties": {
            "$ref": "#/components/schemas/calendar_ConferenceProperties",
            "description": "Conferencing properties for this calendar, for example what types of conferences are allowed."
          },
          "dataOwner": {
            "description": "The email of the owner of the calendar. Set only for secondary calendars. Read-only.",
            "type": "string"
          },
          "defaultReminders": {
            "description": "The default reminders that the authenticated user has for this calendar.",
            "items": {
              "$ref": "#/components/schemas/calendar_EventReminder"
            },
            "type": "array"
          },
          "deleted": {
            "default": "false",
            "description": "Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.",
            "type": "boolean"
          },
          "description": {
            "description": "Description of the calendar. Optional. Read-only.",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "foregroundColor": {
            "description": "The foreground color of the calendar in the hexadecimal format \"#ffffff\". This property supersedes the index-based colorId property. To set or change this property, you need to specify colorRgbFormat=true in the parameters of the insert, update and patch methods. Optional.",
            "type": "string"
          },
          "hidden": {
            "default": "false",
            "description": "Whether the calendar has been hidden from the list. Optional. The attribute is only returned when the calendar is hidden, in which case the value is true.",
            "type": "boolean"
          },
          "id": {
            "description": "Identifier of the calendar.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#calendarListEntry",
            "description": "Type of the resource (\"calendar#calendarListEntry\").",
            "type": "string"
          },
          "location": {
            "description": "Geographic location of the calendar as free-form text. Optional. Read-only.",
            "type": "string"
          },
          "notificationSettings": {
            "description": "The notifications that the authenticated user is receiving for this calendar.",
            "properties": {
              "notifications": {
                "description": "The list of notifications set for this calendar.",
                "items": {
                  "$ref": "#/components/schemas/calendar_CalendarNotification"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "primary": {
            "default": "false",
            "description": "Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.",
            "type": "boolean"
          },
          "selected": {
            "default": "false",
            "description": "Whether the calendar content shows up in the calendar UI. Optional. The default is False.",
            "type": "boolean"
          },
          "summary": {
            "description": "Title of the calendar. Read-only.",
            "type": "string"
          },
          "summaryOverride": {
            "description": "The summary that the authenticated user has set for this calendar. Optional.",
            "type": "string"
          },
          "timeZone": {
            "description": "The time zone of the calendar. Optional. Read-only.",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "calendar_CalendarList_calendar_calendarList_insert": {
        "properties": {
          "etag": {
            "description": "ETag of the collection.",
            "type": "string"
          },
          "items": {
            "description": "Calendars that are present on the user's calendar list.",
            "items": {
              "$ref": "#/components/schemas/calendar_CalendarListEntry_calendar_calendarList_insert"
            },
            "type": "array"
          },
          "kind": {
            "default": "calendar#calendarList",
            "description": "Type of the collection (\"calendar#calendarList\").",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.",
            "type": "string"
          },
          "nextSyncToken": {
            "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_CalendarNotification": {
        "properties": {
          "method": {
            "description": "The method used to deliver the notification. The possible value is:  \n- \"email\" - Notifications are sent via email.  \nRequired when adding a notification.",
            "type": "string"
          },
          "type": {
            "description": "The type of notification. Possible values are:  \n- \"eventCreation\" - Notification sent when a new event is put on the calendar. \n- \"eventChange\" - Notification sent when an event is changed. \n- \"eventCancellation\" - Notification sent when an event is cancelled. \n- \"eventResponse\" - Notification sent when an attendee responds to the event invitation. \n- \"agenda\" - An agenda with the events of the day (sent out in the morning).  \nRequired when adding a notification.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Calendar_calendar_calendars_insert": {
        "properties": {
          "autoAcceptInvitations": {
            "description": "Whether this calendar automatically accepts invitations. Only valid for resource calendars.",
            "type": "boolean"
          },
          "conferenceProperties": {
            "$ref": "#/components/schemas/calendar_ConferenceProperties",
            "description": "Conferencing properties for this calendar, for example what types of conferences are allowed."
          },
          "dataOwner": {
            "description": "The email of the owner of the calendar. Set only for secondary calendars. Read-only.",
            "type": "string"
          },
          "description": {
            "description": "Description of the calendar. Optional.",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "id": {
            "description": "Identifier of the calendar. To retrieve IDs call the calendarList.list() method.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#calendar",
            "description": "Type of the resource (\"calendar#calendar\").",
            "type": "string"
          },
          "labelProperties": {
            "$ref": "#/components/schemas/calendar_LabelProperties",
            "description": "Label properties defined on this calendar. If specified, overwrites the existing label properties. If not specified, the label properties remain unchanged."
          },
          "location": {
            "description": "Geographic location of the calendar as free-form text. Optional.",
            "type": "string"
          },
          "summary": {
            "description": "Title of the calendar.",
            "type": "string"
          },
          "timeZone": {
            "description": "The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) Optional.",
            "type": "string"
          }
        },
        "required": [
          "summary"
        ],
        "type": "object"
      },
      "calendar_Channel": {
        "properties": {
          "address": {
            "description": "The address where notifications are delivered for this channel.",
            "type": "string"
          },
          "expiration": {
            "description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.",
            "format": "int64",
            "type": "string"
          },
          "id": {
            "description": "A UUID or similar unique string that identifies this channel.",
            "type": "string"
          },
          "kind": {
            "default": "api#channel",
            "description": "Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".",
            "type": "string"
          },
          "params": {
            "additionalProperties": {
              "description": "Declares a new parameter by name.",
              "type": "string"
            },
            "description": "Additional parameters controlling delivery channel behavior. Optional.",
            "type": "object"
          },
          "payload": {
            "description": "A Boolean value to indicate whether payload is wanted. Optional.",
            "type": "boolean"
          },
          "resourceId": {
            "description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.",
            "type": "string"
          },
          "resourceUri": {
            "description": "A version-specific identifier for the watched resource.",
            "type": "string"
          },
          "token": {
            "description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.",
            "type": "string"
          },
          "type": {
            "description": "The type of delivery mechanism used for this channel. Valid values are \"web_hook\" (or \"webhook\"). Both values refer to a channel where Http requests are used to deliver messages.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_ColorDefinition": {
        "properties": {
          "background": {
            "description": "The background color associated with this color definition.",
            "type": "string"
          },
          "foreground": {
            "description": "The foreground color that can be used to write on top of a background with 'background' color.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Colors": {
        "properties": {
          "calendar": {
            "additionalProperties": {
              "$ref": "#/components/schemas/calendar_ColorDefinition",
              "description": "A calendar color definition."
            },
            "description": "A global palette of calendar colors, mapping from the color ID to its definition. A calendarListEntry resource refers to one of these color IDs in its colorId field. Read-only.",
            "type": "object"
          },
          "event": {
            "additionalProperties": {
              "$ref": "#/components/schemas/calendar_ColorDefinition",
              "description": "An event color definition."
            },
            "description": "A global palette of event colors, mapping from the color ID to its definition. An event resource may refer to one of these color IDs in its colorId field. Read-only.",
            "type": "object"
          },
          "kind": {
            "default": "calendar#colors",
            "description": "Type of the resource (\"calendar#colors\").",
            "type": "string"
          },
          "updated": {
            "description": "Last modification time of the color palette (as a RFC3339 timestamp). Read-only.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_ConferenceData": {
        "properties": {
          "conferenceId": {
            "description": "The ID of the conference.\nCan be used by developers to keep track of conferences, should not be displayed to users.\nThe ID value is formed differently for each conference solution type:  \n- eventHangout: ID is not set. (This conference type is deprecated.)\n- eventNamedHangout: ID is the name of the Hangout. (This conference type is deprecated.)\n- hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.\n- addOn: ID is defined by the third-party provider.  Optional.",
            "type": "string"
          },
          "conferenceSolution": {
            "$ref": "#/components/schemas/calendar_ConferenceSolution",
            "description": "The conference solution, such as Google Meet.\nUnset for a conference with a failed create request.\nEither conferenceSolution and at least one entryPoint, or createRequest is required."
          },
          "createRequest": {
            "$ref": "#/components/schemas/calendar_CreateConferenceRequest",
            "description": "A request to generate a new conference and attach it to the event. The data is generated asynchronously. To see whether the data is present check the status field.\nEither conferenceSolution and at least one entryPoint, or createRequest is required."
          },
          "entryPoints": {
            "description": "Information about individual conference entry points, such as URLs or phone numbers.\nAll of them must belong to the same conference.\nEither conferenceSolution and at least one entryPoint, or createRequest is required.",
            "items": {
              "$ref": "#/components/schemas/calendar_EntryPoint"
            },
            "type": "array"
          },
          "notes": {
            "description": "Additional notes (such as instructions from the domain administrator, legal notices) to display to the user. Can contain HTML. The maximum length is 2048 characters. Optional.",
            "type": "string"
          },
          "parameters": {
            "$ref": "#/components/schemas/calendar_ConferenceParameters",
            "description": "Additional properties related to a conference. An example would be a solution-specific setting for enabling video streaming."
          },
          "signature": {
            "description": "The signature of the conference data.\nGenerated on server side.\nUnset for a conference with a failed create request.\nOptional for a conference with a pending create request.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_ConferenceParameters": {
        "properties": {
          "addOnParameters": {
            "$ref": "#/components/schemas/calendar_ConferenceParametersAddOnParameters",
            "description": "Additional add-on specific data."
          }
        },
        "type": "object"
      },
      "calendar_ConferenceParametersAddOnParameters": {
        "properties": {
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "calendar_ConferenceProperties": {
        "properties": {
          "allowedConferenceSolutionTypes": {
            "description": "The types of conference solutions that are supported for this calendar.\nThe possible values are:  \n- \"eventHangout\" \n- \"eventNamedHangout\" \n- \"hangoutsMeet\"  Optional.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "calendar_ConferenceRequestStatus": {
        "properties": {
          "statusCode": {
            "description": "The current status of the conference create request. Read-only.\nThe possible values are:  \n- \"pending\": the conference create request is still being processed.\n- \"success\": the conference create request succeeded, the entry points are populated.\n- \"failure\": the conference create request failed, there are no entry points.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_ConferenceSolution": {
        "properties": {
          "iconUri": {
            "description": "The user-visible icon for this solution.",
            "type": "string"
          },
          "key": {
            "$ref": "#/components/schemas/calendar_ConferenceSolutionKey",
            "description": "The key which can uniquely identify the conference solution for this event."
          },
          "name": {
            "description": "The user-visible name of this solution. Not localized.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_ConferenceSolutionKey": {
        "properties": {
          "type": {
            "description": "The conference solution type.\nIf a client encounters an unfamiliar or empty type, it should still be able to display the entry points. However, it should disallow modifications.\nThe possible values are:  \n- \"eventHangout\" for Hangouts for consumers (deprecated; existing events may show this conference solution type but new conferences cannot be created)\n- \"eventNamedHangout\" for classic Hangouts for Google Workspace users (deprecated; existing events may show this conference solution type but new conferences cannot be created)\n- \"hangoutsMeet\" for Google Meet (http://meet.google.com)\n- \"addOn\" for 3P conference providers",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_CreateConferenceRequest": {
        "properties": {
          "conferenceSolutionKey": {
            "$ref": "#/components/schemas/calendar_ConferenceSolutionKey",
            "description": "The conference solution, such as Hangouts or Google Meet."
          },
          "requestId": {
            "description": "The client-generated unique ID for this request.\nClients should regenerate this ID for every new request. If an ID provided is the same as for the previous request, the request is ignored.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/calendar_ConferenceRequestStatus",
            "description": "The status of the conference create request."
          }
        },
        "type": "object"
      },
      "calendar_EntryPoint": {
        "properties": {
          "accessCode": {
            "description": "The access code to access the conference. The maximum length is 128 characters.\nWhen creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.\nOptional.",
            "type": "string"
          },
          "entryPointFeatures": {
            "description": "Features of the entry point, such as being toll or toll-free. One entry point can have multiple features. However, toll and toll-free cannot be both set on the same entry point.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "entryPointType": {
            "description": "The type of the conference entry point.\nPossible values are:  \n- \"video\" - joining a conference over HTTP. A conference can have zero or one video entry point.\n- \"phone\" - joining a conference by dialing a phone number. A conference can have zero or more phone entry points.\n- \"sip\" - joining a conference over SIP. A conference can have zero or one sip entry point.\n- \"more\" - further conference joining instructions, for example additional phone numbers. A conference can have zero or one more entry point. A conference with only a more entry point is not a valid conference.",
            "type": "string"
          },
          "label": {
            "description": "The label for the URI. Visible to end users. Not localized. The maximum length is 512 characters.\nExamples:  \n- for video: meet.google.com/aaa-bbbb-ccc\n- for phone: +1 123 268 2601\n- for sip: 12345678@example.com\n- for more: should not be filled  \nOptional.",
            "type": "string"
          },
          "meetingCode": {
            "description": "The meeting code to access the conference. The maximum length is 128 characters.\nWhen creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.\nOptional.",
            "type": "string"
          },
          "passcode": {
            "description": "The passcode to access the conference. The maximum length is 128 characters.\nWhen creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.",
            "type": "string"
          },
          "password": {
            "description": "The password to access the conference. The maximum length is 128 characters.\nWhen creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.\nOptional.",
            "type": "string"
          },
          "pin": {
            "description": "The PIN to access the conference. The maximum length is 128 characters.\nWhen creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.\nOptional.",
            "type": "string"
          },
          "regionCode": {
            "description": "The CLDR/ISO 3166 region code for the country associated with this phone access. Example: \"SE\" for Sweden.\nCalendar backend will populate this field only for EntryPointType.PHONE.",
            "type": "string"
          },
          "uri": {
            "description": "The URI of the entry point. The maximum length is 1300 characters.\nFormat:  \n- for video, http: or https: schema is required.\n- for phone, tel: schema is required. The URI should include the entire dial sequence (e.g., tel:+12345678900,,,123456789;1234).\n- for sip, sip: schema is required, e.g., sip:12345678@example.com.\n- for more, http: or https: schema is required.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Error": {
        "properties": {
          "domain": {
            "description": "Domain, or broad category, of the error.",
            "type": "string"
          },
          "reason": {
            "description": "Specific reason for the error. Some of the possible values are:  \n- \"groupTooBig\" - The group of users requested is too large for a single query. \n- \"tooManyCalendarsRequested\" - The number of calendars requested is too large for a single query. \n- \"notFound\" - The requested resource was not found. \n- \"internalError\" - The API service has encountered an internal error.  Additional error types may be added in the future, so clients should gracefully handle additional error statuses not included in this list.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Event": {
        "properties": {
          "anyoneCanAddSelf": {
            "default": "false",
            "description": "Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.",
            "type": "boolean"
          },
          "attachments": {
            "description": "File attachments for the event.\nIn order to modify attachments the supportsAttachments request parameter should be set to true.\nThere can be at most 25 attachments per event,",
            "items": {
              "$ref": "#/components/schemas/calendar_EventAttachment"
            },
            "type": "array"
          },
          "attendees": {
            "description": "The attendees of the event. See the Events with attendees guide for more information on scheduling events with other calendar users. Service accounts need to use domain-wide delegation of authority to populate the attendee list.",
            "items": {
              "$ref": "#/components/schemas/calendar_EventAttendee"
            },
            "type": "array"
          },
          "attendeesOmitted": {
            "default": "false",
            "description": "Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.",
            "type": "boolean"
          },
          "birthdayProperties": {
            "$ref": "#/components/schemas/calendar_EventBirthdayProperties",
            "description": "Birthday or special event data. Used if eventType is \"birthday\". Immutable."
          },
          "colorId": {
            "description": "The color of the event. This is an ID referring to an entry in the event section of the colors definition (see the  colors endpoint). Optional.",
            "type": "string"
          },
          "conferenceData": {
            "$ref": "#/components/schemas/calendar_ConferenceData",
            "description": "The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests. Warning: Reusing Google Meet conference data across different events can cause access issues and expose meeting details to unintended users. To help ensure meeting privacy, always generate a unique conference for each event by using the createRequest field."
          },
          "created": {
            "description": "Creation time of the event (as a RFC3339 timestamp). Read-only.",
            "format": "date-time",
            "type": "string"
          },
          "creator": {
            "description": "The creator of the event. Read-only.",
            "properties": {
              "displayName": {
                "description": "The creator's name, if available.",
                "type": "string"
              },
              "email": {
                "description": "The creator's email address, if available.",
                "type": "string"
              },
              "id": {
                "description": "The creator's Profile ID, if available.",
                "type": "string"
              },
              "self": {
                "default": "false",
                "description": "Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "description": {
            "description": "Description of the event. Can contain HTML. Optional.",
            "type": "string"
          },
          "end": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance."
          },
          "endTimeUnspecified": {
            "default": "false",
            "description": "Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.",
            "type": "boolean"
          },
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "eventLabelId": {
            "description": "The ID of the event label assigned to the event. Optional. This refers to the ID of an entry in the labelProperties.eventLabels property of the calendar (see the Calendars.get endpoint.)\nThis property supersedes the index-based colorId property. To set or change this property, you need to specify eventLabelVersion=1 in the parameters of the insert, import, update, and patch methods.\nSetting an empty string, or not setting this field at all, will remove the existing label from the event.",
            "type": "string"
          },
          "eventType": {
            "default": "default",
            "description": "Specific type of the event. This cannot be modified after the event is created. Possible values are:  \n- \"birthday\" - A special all-day event with an annual recurrence. \n- \"default\" - A regular event or not further specified. \n- \"focusTime\" - A focus-time event. \n- \"fromGmail\" - An event from Gmail. This type of event cannot be created. \n- \"outOfOffice\" - An out-of-office event. \n- \"workingLocation\" - A working location event.",
            "type": "string"
          },
          "extendedProperties": {
            "description": "Extended properties of the event.",
            "properties": {
              "private": {
                "additionalProperties": {
                  "description": "The name of the private property and the corresponding value.",
                  "type": "string"
                },
                "description": "Properties that are private to the copy of the event that appears on this calendar.",
                "type": "object"
              },
              "shared": {
                "additionalProperties": {
                  "description": "The name of the shared property and the corresponding value.",
                  "type": "string"
                },
                "description": "Properties that are shared between copies of the event on other attendees' calendars.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "focusTimeProperties": {
            "$ref": "#/components/schemas/calendar_EventFocusTimeProperties",
            "description": "Focus Time event data. Used if eventType is focusTime."
          },
          "gadget": {
            "description": "A gadget that extends this event. Gadgets are deprecated; this structure is instead only used for returning birthday calendar metadata.",
            "properties": {
              "display": {
                "description": "The gadget's display mode. Deprecated. Possible values are:  \n- \"icon\" - The gadget displays next to the event's title in the calendar view. \n- \"chip\" - The gadget displays when the event is clicked.",
                "type": "string"
              },
              "height": {
                "description": "The gadget's height in pixels. The height must be an integer greater than 0. Optional. Deprecated.",
                "format": "int32",
                "type": "integer"
              },
              "iconLink": {
                "description": "The gadget's icon URL. The URL scheme must be HTTPS. Deprecated.",
                "type": "string"
              },
              "link": {
                "description": "The gadget's URL. The URL scheme must be HTTPS. Deprecated.",
                "type": "string"
              },
              "preferences": {
                "additionalProperties": {
                  "description": "The preference name and corresponding value.",
                  "type": "string"
                },
                "description": "Preferences.",
                "type": "object"
              },
              "title": {
                "description": "The gadget's title. Deprecated.",
                "type": "string"
              },
              "type": {
                "description": "The gadget's type. Deprecated.",
                "type": "string"
              },
              "width": {
                "description": "The gadget's width in pixels. The width must be an integer greater than 0. Optional. Deprecated.",
                "format": "int32",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "guestsCanInviteOthers": {
            "default": "true",
            "description": "Whether attendees other than the organizer can invite others to the event. Optional. The default is True.",
            "type": "boolean"
          },
          "guestsCanModify": {
            "default": "false",
            "description": "Whether attendees other than the organizer can modify the event. Optional. The default is False.",
            "type": "boolean"
          },
          "guestsCanSeeOtherGuests": {
            "default": "true",
            "description": "Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.",
            "type": "boolean"
          },
          "hangoutLink": {
            "description": "An absolute link to the Google Hangout associated with this event. Read-only.",
            "type": "string"
          },
          "htmlLink": {
            "description": "An absolute link to this event in the Google Calendar Web UI. Read-only.",
            "type": "string"
          },
          "iCalUID": {
            "description": "Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.\nNote that the iCalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same iCalUIDs. To retrieve an event using its iCalUID, call the events.list method using the iCalUID parameter. To retrieve an event using its id, call the events.get method.",
            "type": "string"
          },
          "id": {
            "description": "Opaque identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:  \n- characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938 \n- the length of the ID must be between 5 and 1024 characters \n- the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.\nIf you do not specify an ID, it will be automatically generated by the server.\nNote that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#event",
            "description": "Type of the resource (\"calendar#event\").",
            "type": "string"
          },
          "location": {
            "description": "Geographic location of the event as free-form text. Optional.",
            "type": "string"
          },
          "locked": {
            "default": "false",
            "description": "Whether this is a locked event copy where no changes can be made to the main event fields \"summary\", \"description\", \"location\", \"start\", \"end\" or \"recurrence\". The default is False. Read-Only.",
            "type": "boolean"
          },
          "organizer": {
            "description": "The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.",
            "properties": {
              "displayName": {
                "description": "The organizer's name, if available.",
                "type": "string"
              },
              "email": {
                "description": "The organizer's email address, if available. It must be a valid email address as per RFC5322.",
                "type": "string"
              },
              "id": {
                "description": "The organizer's Profile ID, if available.",
                "type": "string"
              },
              "self": {
                "default": "false",
                "description": "Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "originalStartTime": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable."
          },
          "outOfOfficeProperties": {
            "$ref": "#/components/schemas/calendar_EventOutOfOfficeProperties",
            "description": "Out of office event data. Used if eventType is outOfOffice."
          },
          "privateCopy": {
            "default": "false",
            "description": "If set to True, Event propagation is disabled. Note that it is not the same thing as Private event properties. Optional. Immutable. The default is False.",
            "type": "boolean"
          },
          "recurrence": {
            "description": "List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. Note that DTSTART and DTEND lines are not allowed in this field; event start and end times are specified in the start and end fields. This field is omitted for single events or instances of recurring events.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "recurringEventId": {
            "description": "For an instance of a recurring event, this is the id of the recurring event to which this instance belongs. Immutable.",
            "type": "string"
          },
          "reminders": {
            "description": "Information about the event's reminders for the authenticated user. Note that changing reminders does not also change the updated property of the enclosing event.",
            "properties": {
              "overrides": {
                "description": "If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event. The maximum number of override reminders is 5.",
                "items": {
                  "$ref": "#/components/schemas/calendar_EventReminder"
                },
                "type": "array"
              },
              "useDefault": {
                "description": "Whether the default reminders of the calendar apply to the event.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "sequence": {
            "description": "Sequence number as per iCalendar.",
            "format": "int32",
            "type": "integer"
          },
          "source": {
            "description": "Source from which the event was created. For example, a web page, an email message or any document identifiable by an URL with HTTP or HTTPS scheme. Can only be seen or modified by the creator of the event.",
            "properties": {
              "title": {
                "description": "Title of the source; for example a title of a web page or an email subject.",
                "type": "string"
              },
              "url": {
                "description": "URL of the source pointing to a resource. The URL scheme must be HTTP or HTTPS.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "start": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance."
          },
          "status": {
            "description": "Status of the event. Optional. Possible values are:  \n- \"confirmed\" - The event is confirmed. This is the default status. \n- \"tentative\" - The event is tentatively confirmed. \n- \"cancelled\" - The event is cancelled (deleted). The list method returns cancelled events only on incremental sync (when syncToken or updatedMin are specified) or if the showDeleted flag is set to true. The get method always returns them.\nA cancelled status represents two different states depending on the event type:  \n- Cancelled exceptions of an uncancelled recurring event indicate that this instance should no longer be presented to the user. Clients should store these events for the lifetime of the parent recurring event.\nCancelled exceptions are only guaranteed to have values for the id, recurringEventId and originalStartTime fields populated. The other fields might be empty.  \n- All other cancelled events represent deleted events. Clients should remove their locally synced copies. Such cancelled events will eventually disappear, so do not rely on them being available indefinitely.\nDeleted events are only guaranteed to have the id field populated.   On the organizer's calendar, cancelled events continue to expose event details (summary, location, etc.) so that they can be restored (undeleted). Similarly, the events to which the user was invited and that they manually removed continue to provide details. However, incremental sync requests with showDeleted set to false will not return these details.\nIf an event changes its organizer (for example via the move operation) and the original organizer is not on the attendee list, it will leave behind a cancelled event where only the id field is guaranteed to be populated.",
            "type": "string"
          },
          "summary": {
            "description": "Title of the event.",
            "type": "string"
          },
          "transparency": {
            "default": "opaque",
            "description": "Whether the event blocks time on the calendar. Optional. Possible values are:  \n- \"opaque\" - Default value. The event does block time on the calendar. This is equivalent to setting Show me as to Busy in the Calendar UI. \n- \"transparent\" - The event does not block time on the calendar. This is equivalent to setting Show me as to Available in the Calendar UI.",
            "type": "string"
          },
          "updated": {
            "description": "Last modification time of the main event data (as a RFC3339 timestamp). Updating event reminders will not cause this to change. Read-only.",
            "format": "date-time",
            "type": "string"
          },
          "visibility": {
            "default": "default",
            "description": "Visibility of the event. Optional. Possible values are:  \n- \"default\" - Uses the default visibility for events on the calendar. This is the default value. \n- \"public\" - The event is public and event details are visible to all readers of the calendar. \n- \"private\" - The event is private and only event attendees may view event details. \n- \"confidential\" - The event is private. This value is provided for compatibility reasons.  \nNote on recurring events: Changing the visibility of a single instance of a recurring event can affect all instances of the series. If the new setting is more restrictive (e.g. from public to private), it is applied to all instances. If the new setting is less restrictive (e.g. from private to public), the change is ignored. To make a recurring event less restrictive, you must update the parent recurring event.",
            "type": "string"
          },
          "workingLocationProperties": {
            "$ref": "#/components/schemas/calendar_EventWorkingLocationProperties",
            "description": "Working location event data."
          }
        },
        "type": "object"
      },
      "calendar_EventAttachment": {
        "properties": {
          "fileId": {
            "description": "ID of the attached file. Read-only.\nFor Google Drive files, this is the ID of the corresponding Files resource entry in the Drive API.",
            "type": "string"
          },
          "fileUrl": {
            "description": "URL link to the attachment.\nFor adding Google Drive file attachments use the same format as in alternateLink property of the Files resource in the Drive API.\nRequired when adding an attachment.",
            "type": "string"
          },
          "iconLink": {
            "description": "URL link to the attachment's icon. This field can only be modified for custom third-party attachments.",
            "type": "string"
          },
          "mimeType": {
            "description": "Internet media type (MIME type) of the attachment.",
            "type": "string"
          },
          "title": {
            "description": "Attachment title.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_EventAttendee": {
        "properties": {
          "additionalGuests": {
            "default": "0",
            "description": "Number of additional guests. Optional. The default is 0.",
            "format": "int32",
            "type": "integer"
          },
          "asyncOperation": {
            "default": "",
            "description": "If present, indicates the status of an asynchronous operation ongoing for this attendee (e.g. listing of members of large attendee groups). Read-only. The default is to not be present.\nPossible values are:  \n- \"inProgress\" - The asynchronous operation is in progress. \n- (not present) - Otherwise.",
            "type": "string"
          },
          "comment": {
            "description": "The attendee's response comment. Optional.",
            "type": "string"
          },
          "displayName": {
            "description": "The attendee's name, if available. Optional.",
            "type": "string"
          },
          "email": {
            "description": "The attendee's email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.\nRequired when adding an attendee.",
            "type": "string"
          },
          "id": {
            "description": "The attendee's Profile ID, if available.",
            "type": "string"
          },
          "optional": {
            "default": "false",
            "description": "Whether this is an optional attendee. Optional. The default is False.",
            "type": "boolean"
          },
          "organizer": {
            "description": "Whether the attendee is the organizer of the event. Read-only. The default is False.",
            "type": "boolean"
          },
          "resource": {
            "default": "false",
            "description": "Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.",
            "type": "boolean"
          },
          "responseStatus": {
            "description": "The attendee's response status. Possible values are:  \n- \"needsAction\" - The attendee has not responded to the invitation (recommended for new events). \n- \"declined\" - The attendee has declined the invitation. \n- \"tentative\" - The attendee has tentatively accepted the invitation. \n- \"accepted\" - The attendee has accepted the invitation.  Warning: If you add an event using the values declined, tentative, or accepted, attendees with the \"Add invitations to my calendar\" setting set to \"When I respond to invitation in email\" or \"Only if the sender is known\" might have their response reset to needsAction and won't see an event in their calendar unless they change their response in the event invitation email. Furthermore, if more than 200 guests are invited to the event, response status is not propagated to the guests.",
            "type": "string"
          },
          "self": {
            "default": "false",
            "description": "Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "calendar_EventBirthdayProperties": {
        "properties": {
          "contact": {
            "description": "Resource name of the contact this birthday event is linked to. This can be used to fetch contact details from People API. Format: \"people/c12345\". Read-only.",
            "type": "string"
          },
          "customTypeName": {
            "description": "Custom type label specified for this event. This is populated if birthdayProperties.type is set to \"custom\". Read-only.",
            "type": "string"
          },
          "type": {
            "default": "birthday",
            "description": "Type of birthday or special event. Possible values are:  \n- \"anniversary\" - An anniversary other than birthday. Always has a contact. \n- \"birthday\" - A birthday event. This is the default value. \n- \"custom\" - A special date whose label is further specified in the customTypeName field. Always has a contact. \n- \"other\" - A special date which does not fall into the other categories, and does not have a custom label. Always has a contact. \n- \"self\" - Calendar owner's own birthday. Cannot have a contact.  The Calendar API only supports creating events with the type \"birthday\". The type cannot be changed after the event is created.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_EventDateTime": {
        "properties": {
          "date": {
            "description": "The date, in the format \"yyyy-mm-dd\", if this is an all-day event.",
            "format": "date",
            "type": "string"
          },
          "dateTime": {
            "description": "The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.",
            "format": "date-time",
            "type": "string"
          },
          "timeZone": {
            "description": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_EventFocusTimeProperties": {
        "properties": {
          "autoDeclineMode": {
            "description": "Whether to decline meeting invitations which overlap Focus Time events. Valid values are declineNone, meaning that no meeting invitations are declined; declineAllConflictingInvitations, meaning that all conflicting meeting invitations that conflict with the event are declined; and declineOnlyNewConflictingInvitations, meaning that only new conflicting meeting invitations which arrive while the Focus Time event is present are to be declined.",
            "type": "string"
          },
          "chatStatus": {
            "description": "The status to mark the user in Chat and related products. This can be available or doNotDisturb.",
            "type": "string"
          },
          "declineMessage": {
            "description": "Response message to set if an existing event or new invitation is automatically declined by Calendar.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_EventLabel": {
        "properties": {
          "backgroundColor": {
            "description": "Background color of the label in hexadecimal format, such as \"#039be5\". Events with this label are displayed in this color. Required.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the label. Optional when inserting a new label. If not provided, a unique ID will be generated. Required when updating a label.\nIf provided, the ID must be unique within the calendar and follow UUID format.",
            "type": "string"
          },
          "name": {
            "description": "Name of the label. Optional.\nIf provided this must have at most 50 characters.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_EventOutOfOfficeProperties": {
        "properties": {
          "autoDeclineMode": {
            "description": "Whether to decline meeting invitations which overlap Out of office events. Valid values are declineNone, meaning that no meeting invitations are declined; declineAllConflictingInvitations, meaning that all conflicting meeting invitations that conflict with the event are declined; and declineOnlyNewConflictingInvitations, meaning that only new conflicting meeting invitations which arrive while the Out of office event is present are to be declined.",
            "type": "string"
          },
          "declineMessage": {
            "description": "Response message to set if an existing event or new invitation is automatically declined by Calendar.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_EventReminder": {
        "properties": {
          "method": {
            "description": "The method used by this reminder. Possible values are:  \n- \"email\" - Reminders are sent via email. \n- \"popup\" - Reminders are sent via a UI popup.  \nRequired when adding a reminder.",
            "type": "string"
          },
          "minutes": {
            "description": "Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).\nRequired when adding a reminder.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "calendar_EventWorkingLocationProperties": {
        "properties": {
          "customLocation": {
            "description": "If present, specifies that the user is working from a custom location.",
            "properties": {
              "label": {
                "description": "An optional extra label for additional information.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "homeOffice": {
            "description": "If present, specifies that the user is working at home."
          },
          "officeLocation": {
            "description": "If present, specifies that the user is working from an office.",
            "properties": {
              "buildingId": {
                "description": "An optional building identifier. This should reference a building ID in the organization's Resources database.",
                "type": "string"
              },
              "deskId": {
                "description": "An optional desk identifier.",
                "type": "string"
              },
              "floorId": {
                "description": "An optional floor identifier.",
                "type": "string"
              },
              "floorSectionId": {
                "description": "An optional floor section identifier.",
                "type": "string"
              },
              "label": {
                "description": "The office name that's displayed in Calendar Web and Mobile clients. We recommend you reference a building name in the organization's Resources database.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "type": {
            "description": "Type of the working location. Possible values are:  \n- \"homeOffice\" - The user is working at home. \n- \"officeLocation\" - The user is working from an office. \n- \"customLocation\" - The user is working from a custom location.  Any details are specified in a sub-field of the specified name, but this field may be missing if empty. Any other fields are ignored.\nRequired when adding working location properties.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Event_calendar_events_import": {
        "properties": {
          "anyoneCanAddSelf": {
            "default": "false",
            "description": "Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.",
            "type": "boolean"
          },
          "attachments": {
            "description": "File attachments for the event.\nIn order to modify attachments the supportsAttachments request parameter should be set to true.\nThere can be at most 25 attachments per event,",
            "items": {
              "$ref": "#/components/schemas/calendar_EventAttachment"
            },
            "type": "array"
          },
          "attendees": {
            "description": "The attendees of the event. See the Events with attendees guide for more information on scheduling events with other calendar users. Service accounts need to use domain-wide delegation of authority to populate the attendee list.",
            "items": {
              "$ref": "#/components/schemas/calendar_EventAttendee"
            },
            "type": "array"
          },
          "attendeesOmitted": {
            "default": "false",
            "description": "Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.",
            "type": "boolean"
          },
          "birthdayProperties": {
            "$ref": "#/components/schemas/calendar_EventBirthdayProperties",
            "description": "Birthday or special event data. Used if eventType is \"birthday\". Immutable."
          },
          "colorId": {
            "description": "The color of the event. This is an ID referring to an entry in the event section of the colors definition (see the  colors endpoint). Optional.",
            "type": "string"
          },
          "conferenceData": {
            "$ref": "#/components/schemas/calendar_ConferenceData",
            "description": "The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests. Warning: Reusing Google Meet conference data across different events can cause access issues and expose meeting details to unintended users. To help ensure meeting privacy, always generate a unique conference for each event by using the createRequest field."
          },
          "created": {
            "description": "Creation time of the event (as a RFC3339 timestamp). Read-only.",
            "format": "date-time",
            "type": "string"
          },
          "creator": {
            "description": "The creator of the event. Read-only.",
            "properties": {
              "displayName": {
                "description": "The creator's name, if available.",
                "type": "string"
              },
              "email": {
                "description": "The creator's email address, if available.",
                "type": "string"
              },
              "id": {
                "description": "The creator's Profile ID, if available.",
                "type": "string"
              },
              "self": {
                "default": "false",
                "description": "Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "description": {
            "description": "Description of the event. Can contain HTML. Optional.",
            "type": "string"
          },
          "end": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance."
          },
          "endTimeUnspecified": {
            "default": "false",
            "description": "Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.",
            "type": "boolean"
          },
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "eventLabelId": {
            "description": "The ID of the event label assigned to the event. Optional. This refers to the ID of an entry in the labelProperties.eventLabels property of the calendar (see the Calendars.get endpoint.)\nThis property supersedes the index-based colorId property. To set or change this property, you need to specify eventLabelVersion=1 in the parameters of the insert, import, update, and patch methods.\nSetting an empty string, or not setting this field at all, will remove the existing label from the event.",
            "type": "string"
          },
          "eventType": {
            "default": "default",
            "description": "Specific type of the event. This cannot be modified after the event is created. Possible values are:  \n- \"birthday\" - A special all-day event with an annual recurrence. \n- \"default\" - A regular event or not further specified. \n- \"focusTime\" - A focus-time event. \n- \"fromGmail\" - An event from Gmail. This type of event cannot be created. \n- \"outOfOffice\" - An out-of-office event. \n- \"workingLocation\" - A working location event.",
            "type": "string"
          },
          "extendedProperties": {
            "description": "Extended properties of the event.",
            "properties": {
              "private": {
                "additionalProperties": {
                  "description": "The name of the private property and the corresponding value.",
                  "type": "string"
                },
                "description": "Properties that are private to the copy of the event that appears on this calendar.",
                "type": "object"
              },
              "shared": {
                "additionalProperties": {
                  "description": "The name of the shared property and the corresponding value.",
                  "type": "string"
                },
                "description": "Properties that are shared between copies of the event on other attendees' calendars.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "focusTimeProperties": {
            "$ref": "#/components/schemas/calendar_EventFocusTimeProperties",
            "description": "Focus Time event data. Used if eventType is focusTime."
          },
          "gadget": {
            "description": "A gadget that extends this event. Gadgets are deprecated; this structure is instead only used for returning birthday calendar metadata.",
            "properties": {
              "display": {
                "description": "The gadget's display mode. Deprecated. Possible values are:  \n- \"icon\" - The gadget displays next to the event's title in the calendar view. \n- \"chip\" - The gadget displays when the event is clicked.",
                "type": "string"
              },
              "height": {
                "description": "The gadget's height in pixels. The height must be an integer greater than 0. Optional. Deprecated.",
                "format": "int32",
                "type": "integer"
              },
              "iconLink": {
                "description": "The gadget's icon URL. The URL scheme must be HTTPS. Deprecated.",
                "type": "string"
              },
              "link": {
                "description": "The gadget's URL. The URL scheme must be HTTPS. Deprecated.",
                "type": "string"
              },
              "preferences": {
                "additionalProperties": {
                  "description": "The preference name and corresponding value.",
                  "type": "string"
                },
                "description": "Preferences.",
                "type": "object"
              },
              "title": {
                "description": "The gadget's title. Deprecated.",
                "type": "string"
              },
              "type": {
                "description": "The gadget's type. Deprecated.",
                "type": "string"
              },
              "width": {
                "description": "The gadget's width in pixels. The width must be an integer greater than 0. Optional. Deprecated.",
                "format": "int32",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "guestsCanInviteOthers": {
            "default": "true",
            "description": "Whether attendees other than the organizer can invite others to the event. Optional. The default is True.",
            "type": "boolean"
          },
          "guestsCanModify": {
            "default": "false",
            "description": "Whether attendees other than the organizer can modify the event. Optional. The default is False.",
            "type": "boolean"
          },
          "guestsCanSeeOtherGuests": {
            "default": "true",
            "description": "Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.",
            "type": "boolean"
          },
          "hangoutLink": {
            "description": "An absolute link to the Google Hangout associated with this event. Read-only.",
            "type": "string"
          },
          "htmlLink": {
            "description": "An absolute link to this event in the Google Calendar Web UI. Read-only.",
            "type": "string"
          },
          "iCalUID": {
            "description": "Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.\nNote that the iCalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same iCalUIDs. To retrieve an event using its iCalUID, call the events.list method using the iCalUID parameter. To retrieve an event using its id, call the events.get method.",
            "type": "string"
          },
          "id": {
            "description": "Opaque identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:  \n- characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938 \n- the length of the ID must be between 5 and 1024 characters \n- the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.\nIf you do not specify an ID, it will be automatically generated by the server.\nNote that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#event",
            "description": "Type of the resource (\"calendar#event\").",
            "type": "string"
          },
          "location": {
            "description": "Geographic location of the event as free-form text. Optional.",
            "type": "string"
          },
          "locked": {
            "default": "false",
            "description": "Whether this is a locked event copy where no changes can be made to the main event fields \"summary\", \"description\", \"location\", \"start\", \"end\" or \"recurrence\". The default is False. Read-Only.",
            "type": "boolean"
          },
          "organizer": {
            "description": "The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.",
            "properties": {
              "displayName": {
                "description": "The organizer's name, if available.",
                "type": "string"
              },
              "email": {
                "description": "The organizer's email address, if available. It must be a valid email address as per RFC5322.",
                "type": "string"
              },
              "id": {
                "description": "The organizer's Profile ID, if available.",
                "type": "string"
              },
              "self": {
                "default": "false",
                "description": "Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "originalStartTime": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable."
          },
          "outOfOfficeProperties": {
            "$ref": "#/components/schemas/calendar_EventOutOfOfficeProperties",
            "description": "Out of office event data. Used if eventType is outOfOffice."
          },
          "privateCopy": {
            "default": "false",
            "description": "If set to True, Event propagation is disabled. Note that it is not the same thing as Private event properties. Optional. Immutable. The default is False.",
            "type": "boolean"
          },
          "recurrence": {
            "description": "List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. Note that DTSTART and DTEND lines are not allowed in this field; event start and end times are specified in the start and end fields. This field is omitted for single events or instances of recurring events.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "recurringEventId": {
            "description": "For an instance of a recurring event, this is the id of the recurring event to which this instance belongs. Immutable.",
            "type": "string"
          },
          "reminders": {
            "description": "Information about the event's reminders for the authenticated user. Note that changing reminders does not also change the updated property of the enclosing event.",
            "properties": {
              "overrides": {
                "description": "If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event. The maximum number of override reminders is 5.",
                "items": {
                  "$ref": "#/components/schemas/calendar_EventReminder"
                },
                "type": "array"
              },
              "useDefault": {
                "description": "Whether the default reminders of the calendar apply to the event.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "sequence": {
            "description": "Sequence number as per iCalendar.",
            "format": "int32",
            "type": "integer"
          },
          "source": {
            "description": "Source from which the event was created. For example, a web page, an email message or any document identifiable by an URL with HTTP or HTTPS scheme. Can only be seen or modified by the creator of the event.",
            "properties": {
              "title": {
                "description": "Title of the source; for example a title of a web page or an email subject.",
                "type": "string"
              },
              "url": {
                "description": "URL of the source pointing to a resource. The URL scheme must be HTTP or HTTPS.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "start": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance."
          },
          "status": {
            "description": "Status of the event. Optional. Possible values are:  \n- \"confirmed\" - The event is confirmed. This is the default status. \n- \"tentative\" - The event is tentatively confirmed. \n- \"cancelled\" - The event is cancelled (deleted). The list method returns cancelled events only on incremental sync (when syncToken or updatedMin are specified) or if the showDeleted flag is set to true. The get method always returns them.\nA cancelled status represents two different states depending on the event type:  \n- Cancelled exceptions of an uncancelled recurring event indicate that this instance should no longer be presented to the user. Clients should store these events for the lifetime of the parent recurring event.\nCancelled exceptions are only guaranteed to have values for the id, recurringEventId and originalStartTime fields populated. The other fields might be empty.  \n- All other cancelled events represent deleted events. Clients should remove their locally synced copies. Such cancelled events will eventually disappear, so do not rely on them being available indefinitely.\nDeleted events are only guaranteed to have the id field populated.   On the organizer's calendar, cancelled events continue to expose event details (summary, location, etc.) so that they can be restored (undeleted). Similarly, the events to which the user was invited and that they manually removed continue to provide details. However, incremental sync requests with showDeleted set to false will not return these details.\nIf an event changes its organizer (for example via the move operation) and the original organizer is not on the attendee list, it will leave behind a cancelled event where only the id field is guaranteed to be populated.",
            "type": "string"
          },
          "summary": {
            "description": "Title of the event.",
            "type": "string"
          },
          "transparency": {
            "default": "opaque",
            "description": "Whether the event blocks time on the calendar. Optional. Possible values are:  \n- \"opaque\" - Default value. The event does block time on the calendar. This is equivalent to setting Show me as to Busy in the Calendar UI. \n- \"transparent\" - The event does not block time on the calendar. This is equivalent to setting Show me as to Available in the Calendar UI.",
            "type": "string"
          },
          "updated": {
            "description": "Last modification time of the main event data (as a RFC3339 timestamp). Updating event reminders will not cause this to change. Read-only.",
            "format": "date-time",
            "type": "string"
          },
          "visibility": {
            "default": "default",
            "description": "Visibility of the event. Optional. Possible values are:  \n- \"default\" - Uses the default visibility for events on the calendar. This is the default value. \n- \"public\" - The event is public and event details are visible to all readers of the calendar. \n- \"private\" - The event is private and only event attendees may view event details. \n- \"confidential\" - The event is private. This value is provided for compatibility reasons.  \nNote on recurring events: Changing the visibility of a single instance of a recurring event can affect all instances of the series. If the new setting is more restrictive (e.g. from public to private), it is applied to all instances. If the new setting is less restrictive (e.g. from private to public), the change is ignored. To make a recurring event less restrictive, you must update the parent recurring event.",
            "type": "string"
          },
          "workingLocationProperties": {
            "$ref": "#/components/schemas/calendar_EventWorkingLocationProperties",
            "description": "Working location event data."
          }
        },
        "required": [
          "end",
          "iCalUID",
          "start"
        ],
        "type": "object"
      },
      "calendar_Event_calendar_events_insert": {
        "properties": {
          "anyoneCanAddSelf": {
            "default": "false",
            "description": "Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.",
            "type": "boolean"
          },
          "attachments": {
            "description": "File attachments for the event.\nIn order to modify attachments the supportsAttachments request parameter should be set to true.\nThere can be at most 25 attachments per event,",
            "items": {
              "$ref": "#/components/schemas/calendar_EventAttachment"
            },
            "type": "array"
          },
          "attendees": {
            "description": "The attendees of the event. See the Events with attendees guide for more information on scheduling events with other calendar users. Service accounts need to use domain-wide delegation of authority to populate the attendee list.",
            "items": {
              "$ref": "#/components/schemas/calendar_EventAttendee"
            },
            "type": "array"
          },
          "attendeesOmitted": {
            "default": "false",
            "description": "Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.",
            "type": "boolean"
          },
          "birthdayProperties": {
            "$ref": "#/components/schemas/calendar_EventBirthdayProperties",
            "description": "Birthday or special event data. Used if eventType is \"birthday\". Immutable."
          },
          "colorId": {
            "description": "The color of the event. This is an ID referring to an entry in the event section of the colors definition (see the  colors endpoint). Optional.",
            "type": "string"
          },
          "conferenceData": {
            "$ref": "#/components/schemas/calendar_ConferenceData",
            "description": "The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests. Warning: Reusing Google Meet conference data across different events can cause access issues and expose meeting details to unintended users. To help ensure meeting privacy, always generate a unique conference for each event by using the createRequest field."
          },
          "created": {
            "description": "Creation time of the event (as a RFC3339 timestamp). Read-only.",
            "format": "date-time",
            "type": "string"
          },
          "creator": {
            "description": "The creator of the event. Read-only.",
            "properties": {
              "displayName": {
                "description": "The creator's name, if available.",
                "type": "string"
              },
              "email": {
                "description": "The creator's email address, if available.",
                "type": "string"
              },
              "id": {
                "description": "The creator's Profile ID, if available.",
                "type": "string"
              },
              "self": {
                "default": "false",
                "description": "Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "description": {
            "description": "Description of the event. Can contain HTML. Optional.",
            "type": "string"
          },
          "end": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance."
          },
          "endTimeUnspecified": {
            "default": "false",
            "description": "Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.",
            "type": "boolean"
          },
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "eventLabelId": {
            "description": "The ID of the event label assigned to the event. Optional. This refers to the ID of an entry in the labelProperties.eventLabels property of the calendar (see the Calendars.get endpoint.)\nThis property supersedes the index-based colorId property. To set or change this property, you need to specify eventLabelVersion=1 in the parameters of the insert, import, update, and patch methods.\nSetting an empty string, or not setting this field at all, will remove the existing label from the event.",
            "type": "string"
          },
          "eventType": {
            "default": "default",
            "description": "Specific type of the event. This cannot be modified after the event is created. Possible values are:  \n- \"birthday\" - A special all-day event with an annual recurrence. \n- \"default\" - A regular event or not further specified. \n- \"focusTime\" - A focus-time event. \n- \"fromGmail\" - An event from Gmail. This type of event cannot be created. \n- \"outOfOffice\" - An out-of-office event. \n- \"workingLocation\" - A working location event.",
            "type": "string"
          },
          "extendedProperties": {
            "description": "Extended properties of the event.",
            "properties": {
              "private": {
                "additionalProperties": {
                  "description": "The name of the private property and the corresponding value.",
                  "type": "string"
                },
                "description": "Properties that are private to the copy of the event that appears on this calendar.",
                "type": "object"
              },
              "shared": {
                "additionalProperties": {
                  "description": "The name of the shared property and the corresponding value.",
                  "type": "string"
                },
                "description": "Properties that are shared between copies of the event on other attendees' calendars.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "focusTimeProperties": {
            "$ref": "#/components/schemas/calendar_EventFocusTimeProperties",
            "description": "Focus Time event data. Used if eventType is focusTime."
          },
          "gadget": {
            "description": "A gadget that extends this event. Gadgets are deprecated; this structure is instead only used for returning birthday calendar metadata.",
            "properties": {
              "display": {
                "description": "The gadget's display mode. Deprecated. Possible values are:  \n- \"icon\" - The gadget displays next to the event's title in the calendar view. \n- \"chip\" - The gadget displays when the event is clicked.",
                "type": "string"
              },
              "height": {
                "description": "The gadget's height in pixels. The height must be an integer greater than 0. Optional. Deprecated.",
                "format": "int32",
                "type": "integer"
              },
              "iconLink": {
                "description": "The gadget's icon URL. The URL scheme must be HTTPS. Deprecated.",
                "type": "string"
              },
              "link": {
                "description": "The gadget's URL. The URL scheme must be HTTPS. Deprecated.",
                "type": "string"
              },
              "preferences": {
                "additionalProperties": {
                  "description": "The preference name and corresponding value.",
                  "type": "string"
                },
                "description": "Preferences.",
                "type": "object"
              },
              "title": {
                "description": "The gadget's title. Deprecated.",
                "type": "string"
              },
              "type": {
                "description": "The gadget's type. Deprecated.",
                "type": "string"
              },
              "width": {
                "description": "The gadget's width in pixels. The width must be an integer greater than 0. Optional. Deprecated.",
                "format": "int32",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "guestsCanInviteOthers": {
            "default": "true",
            "description": "Whether attendees other than the organizer can invite others to the event. Optional. The default is True.",
            "type": "boolean"
          },
          "guestsCanModify": {
            "default": "false",
            "description": "Whether attendees other than the organizer can modify the event. Optional. The default is False.",
            "type": "boolean"
          },
          "guestsCanSeeOtherGuests": {
            "default": "true",
            "description": "Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.",
            "type": "boolean"
          },
          "hangoutLink": {
            "description": "An absolute link to the Google Hangout associated with this event. Read-only.",
            "type": "string"
          },
          "htmlLink": {
            "description": "An absolute link to this event in the Google Calendar Web UI. Read-only.",
            "type": "string"
          },
          "iCalUID": {
            "description": "Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.\nNote that the iCalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same iCalUIDs. To retrieve an event using its iCalUID, call the events.list method using the iCalUID parameter. To retrieve an event using its id, call the events.get method.",
            "type": "string"
          },
          "id": {
            "description": "Opaque identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:  \n- characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938 \n- the length of the ID must be between 5 and 1024 characters \n- the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.\nIf you do not specify an ID, it will be automatically generated by the server.\nNote that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#event",
            "description": "Type of the resource (\"calendar#event\").",
            "type": "string"
          },
          "location": {
            "description": "Geographic location of the event as free-form text. Optional.",
            "type": "string"
          },
          "locked": {
            "default": "false",
            "description": "Whether this is a locked event copy where no changes can be made to the main event fields \"summary\", \"description\", \"location\", \"start\", \"end\" or \"recurrence\". The default is False. Read-Only.",
            "type": "boolean"
          },
          "organizer": {
            "description": "The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.",
            "properties": {
              "displayName": {
                "description": "The organizer's name, if available.",
                "type": "string"
              },
              "email": {
                "description": "The organizer's email address, if available. It must be a valid email address as per RFC5322.",
                "type": "string"
              },
              "id": {
                "description": "The organizer's Profile ID, if available.",
                "type": "string"
              },
              "self": {
                "default": "false",
                "description": "Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "originalStartTime": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable."
          },
          "outOfOfficeProperties": {
            "$ref": "#/components/schemas/calendar_EventOutOfOfficeProperties",
            "description": "Out of office event data. Used if eventType is outOfOffice."
          },
          "privateCopy": {
            "default": "false",
            "description": "If set to True, Event propagation is disabled. Note that it is not the same thing as Private event properties. Optional. Immutable. The default is False.",
            "type": "boolean"
          },
          "recurrence": {
            "description": "List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. Note that DTSTART and DTEND lines are not allowed in this field; event start and end times are specified in the start and end fields. This field is omitted for single events or instances of recurring events.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "recurringEventId": {
            "description": "For an instance of a recurring event, this is the id of the recurring event to which this instance belongs. Immutable.",
            "type": "string"
          },
          "reminders": {
            "description": "Information about the event's reminders for the authenticated user. Note that changing reminders does not also change the updated property of the enclosing event.",
            "properties": {
              "overrides": {
                "description": "If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event. The maximum number of override reminders is 5.",
                "items": {
                  "$ref": "#/components/schemas/calendar_EventReminder"
                },
                "type": "array"
              },
              "useDefault": {
                "description": "Whether the default reminders of the calendar apply to the event.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "sequence": {
            "description": "Sequence number as per iCalendar.",
            "format": "int32",
            "type": "integer"
          },
          "source": {
            "description": "Source from which the event was created. For example, a web page, an email message or any document identifiable by an URL with HTTP or HTTPS scheme. Can only be seen or modified by the creator of the event.",
            "properties": {
              "title": {
                "description": "Title of the source; for example a title of a web page or an email subject.",
                "type": "string"
              },
              "url": {
                "description": "URL of the source pointing to a resource. The URL scheme must be HTTP or HTTPS.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "start": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance."
          },
          "status": {
            "description": "Status of the event. Optional. Possible values are:  \n- \"confirmed\" - The event is confirmed. This is the default status. \n- \"tentative\" - The event is tentatively confirmed. \n- \"cancelled\" - The event is cancelled (deleted). The list method returns cancelled events only on incremental sync (when syncToken or updatedMin are specified) or if the showDeleted flag is set to true. The get method always returns them.\nA cancelled status represents two different states depending on the event type:  \n- Cancelled exceptions of an uncancelled recurring event indicate that this instance should no longer be presented to the user. Clients should store these events for the lifetime of the parent recurring event.\nCancelled exceptions are only guaranteed to have values for the id, recurringEventId and originalStartTime fields populated. The other fields might be empty.  \n- All other cancelled events represent deleted events. Clients should remove their locally synced copies. Such cancelled events will eventually disappear, so do not rely on them being available indefinitely.\nDeleted events are only guaranteed to have the id field populated.   On the organizer's calendar, cancelled events continue to expose event details (summary, location, etc.) so that they can be restored (undeleted). Similarly, the events to which the user was invited and that they manually removed continue to provide details. However, incremental sync requests with showDeleted set to false will not return these details.\nIf an event changes its organizer (for example via the move operation) and the original organizer is not on the attendee list, it will leave behind a cancelled event where only the id field is guaranteed to be populated.",
            "type": "string"
          },
          "summary": {
            "description": "Title of the event.",
            "type": "string"
          },
          "transparency": {
            "default": "opaque",
            "description": "Whether the event blocks time on the calendar. Optional. Possible values are:  \n- \"opaque\" - Default value. The event does block time on the calendar. This is equivalent to setting Show me as to Busy in the Calendar UI. \n- \"transparent\" - The event does not block time on the calendar. This is equivalent to setting Show me as to Available in the Calendar UI.",
            "type": "string"
          },
          "updated": {
            "description": "Last modification time of the main event data (as a RFC3339 timestamp). Updating event reminders will not cause this to change. Read-only.",
            "format": "date-time",
            "type": "string"
          },
          "visibility": {
            "default": "default",
            "description": "Visibility of the event. Optional. Possible values are:  \n- \"default\" - Uses the default visibility for events on the calendar. This is the default value. \n- \"public\" - The event is public and event details are visible to all readers of the calendar. \n- \"private\" - The event is private and only event attendees may view event details. \n- \"confidential\" - The event is private. This value is provided for compatibility reasons.  \nNote on recurring events: Changing the visibility of a single instance of a recurring event can affect all instances of the series. If the new setting is more restrictive (e.g. from public to private), it is applied to all instances. If the new setting is less restrictive (e.g. from private to public), the change is ignored. To make a recurring event less restrictive, you must update the parent recurring event.",
            "type": "string"
          },
          "workingLocationProperties": {
            "$ref": "#/components/schemas/calendar_EventWorkingLocationProperties",
            "description": "Working location event data."
          }
        },
        "required": [
          "end",
          "start"
        ],
        "type": "object"
      },
      "calendar_Event_calendar_events_update": {
        "properties": {
          "anyoneCanAddSelf": {
            "default": "false",
            "description": "Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.",
            "type": "boolean"
          },
          "attachments": {
            "description": "File attachments for the event.\nIn order to modify attachments the supportsAttachments request parameter should be set to true.\nThere can be at most 25 attachments per event,",
            "items": {
              "$ref": "#/components/schemas/calendar_EventAttachment"
            },
            "type": "array"
          },
          "attendees": {
            "description": "The attendees of the event. See the Events with attendees guide for more information on scheduling events with other calendar users. Service accounts need to use domain-wide delegation of authority to populate the attendee list.",
            "items": {
              "$ref": "#/components/schemas/calendar_EventAttendee"
            },
            "type": "array"
          },
          "attendeesOmitted": {
            "default": "false",
            "description": "Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.",
            "type": "boolean"
          },
          "birthdayProperties": {
            "$ref": "#/components/schemas/calendar_EventBirthdayProperties",
            "description": "Birthday or special event data. Used if eventType is \"birthday\". Immutable."
          },
          "colorId": {
            "description": "The color of the event. This is an ID referring to an entry in the event section of the colors definition (see the  colors endpoint). Optional.",
            "type": "string"
          },
          "conferenceData": {
            "$ref": "#/components/schemas/calendar_ConferenceData",
            "description": "The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests. Warning: Reusing Google Meet conference data across different events can cause access issues and expose meeting details to unintended users. To help ensure meeting privacy, always generate a unique conference for each event by using the createRequest field."
          },
          "created": {
            "description": "Creation time of the event (as a RFC3339 timestamp). Read-only.",
            "format": "date-time",
            "type": "string"
          },
          "creator": {
            "description": "The creator of the event. Read-only.",
            "properties": {
              "displayName": {
                "description": "The creator's name, if available.",
                "type": "string"
              },
              "email": {
                "description": "The creator's email address, if available.",
                "type": "string"
              },
              "id": {
                "description": "The creator's Profile ID, if available.",
                "type": "string"
              },
              "self": {
                "default": "false",
                "description": "Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "description": {
            "description": "Description of the event. Can contain HTML. Optional.",
            "type": "string"
          },
          "end": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance."
          },
          "endTimeUnspecified": {
            "default": "false",
            "description": "Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.",
            "type": "boolean"
          },
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "eventLabelId": {
            "description": "The ID of the event label assigned to the event. Optional. This refers to the ID of an entry in the labelProperties.eventLabels property of the calendar (see the Calendars.get endpoint.)\nThis property supersedes the index-based colorId property. To set or change this property, you need to specify eventLabelVersion=1 in the parameters of the insert, import, update, and patch methods.\nSetting an empty string, or not setting this field at all, will remove the existing label from the event.",
            "type": "string"
          },
          "eventType": {
            "default": "default",
            "description": "Specific type of the event. This cannot be modified after the event is created. Possible values are:  \n- \"birthday\" - A special all-day event with an annual recurrence. \n- \"default\" - A regular event or not further specified. \n- \"focusTime\" - A focus-time event. \n- \"fromGmail\" - An event from Gmail. This type of event cannot be created. \n- \"outOfOffice\" - An out-of-office event. \n- \"workingLocation\" - A working location event.",
            "type": "string"
          },
          "extendedProperties": {
            "description": "Extended properties of the event.",
            "properties": {
              "private": {
                "additionalProperties": {
                  "description": "The name of the private property and the corresponding value.",
                  "type": "string"
                },
                "description": "Properties that are private to the copy of the event that appears on this calendar.",
                "type": "object"
              },
              "shared": {
                "additionalProperties": {
                  "description": "The name of the shared property and the corresponding value.",
                  "type": "string"
                },
                "description": "Properties that are shared between copies of the event on other attendees' calendars.",
                "type": "object"
              }
            },
            "type": "object"
          },
          "focusTimeProperties": {
            "$ref": "#/components/schemas/calendar_EventFocusTimeProperties",
            "description": "Focus Time event data. Used if eventType is focusTime."
          },
          "gadget": {
            "description": "A gadget that extends this event. Gadgets are deprecated; this structure is instead only used for returning birthday calendar metadata.",
            "properties": {
              "display": {
                "description": "The gadget's display mode. Deprecated. Possible values are:  \n- \"icon\" - The gadget displays next to the event's title in the calendar view. \n- \"chip\" - The gadget displays when the event is clicked.",
                "type": "string"
              },
              "height": {
                "description": "The gadget's height in pixels. The height must be an integer greater than 0. Optional. Deprecated.",
                "format": "int32",
                "type": "integer"
              },
              "iconLink": {
                "description": "The gadget's icon URL. The URL scheme must be HTTPS. Deprecated.",
                "type": "string"
              },
              "link": {
                "description": "The gadget's URL. The URL scheme must be HTTPS. Deprecated.",
                "type": "string"
              },
              "preferences": {
                "additionalProperties": {
                  "description": "The preference name and corresponding value.",
                  "type": "string"
                },
                "description": "Preferences.",
                "type": "object"
              },
              "title": {
                "description": "The gadget's title. Deprecated.",
                "type": "string"
              },
              "type": {
                "description": "The gadget's type. Deprecated.",
                "type": "string"
              },
              "width": {
                "description": "The gadget's width in pixels. The width must be an integer greater than 0. Optional. Deprecated.",
                "format": "int32",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "guestsCanInviteOthers": {
            "default": "true",
            "description": "Whether attendees other than the organizer can invite others to the event. Optional. The default is True.",
            "type": "boolean"
          },
          "guestsCanModify": {
            "default": "false",
            "description": "Whether attendees other than the organizer can modify the event. Optional. The default is False.",
            "type": "boolean"
          },
          "guestsCanSeeOtherGuests": {
            "default": "true",
            "description": "Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.",
            "type": "boolean"
          },
          "hangoutLink": {
            "description": "An absolute link to the Google Hangout associated with this event. Read-only.",
            "type": "string"
          },
          "htmlLink": {
            "description": "An absolute link to this event in the Google Calendar Web UI. Read-only.",
            "type": "string"
          },
          "iCalUID": {
            "description": "Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.\nNote that the iCalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same iCalUIDs. To retrieve an event using its iCalUID, call the events.list method using the iCalUID parameter. To retrieve an event using its id, call the events.get method.",
            "type": "string"
          },
          "id": {
            "description": "Opaque identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:  \n- characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938 \n- the length of the ID must be between 5 and 1024 characters \n- the ID must be unique per calendar  Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122.\nIf you do not specify an ID, it will be automatically generated by the server.\nNote that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#event",
            "description": "Type of the resource (\"calendar#event\").",
            "type": "string"
          },
          "location": {
            "description": "Geographic location of the event as free-form text. Optional.",
            "type": "string"
          },
          "locked": {
            "default": "false",
            "description": "Whether this is a locked event copy where no changes can be made to the main event fields \"summary\", \"description\", \"location\", \"start\", \"end\" or \"recurrence\". The default is False. Read-Only.",
            "type": "boolean"
          },
          "organizer": {
            "description": "The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.",
            "properties": {
              "displayName": {
                "description": "The organizer's name, if available.",
                "type": "string"
              },
              "email": {
                "description": "The organizer's email address, if available. It must be a valid email address as per RFC5322.",
                "type": "string"
              },
              "id": {
                "description": "The organizer's Profile ID, if available.",
                "type": "string"
              },
              "self": {
                "default": "false",
                "description": "Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "originalStartTime": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable."
          },
          "outOfOfficeProperties": {
            "$ref": "#/components/schemas/calendar_EventOutOfOfficeProperties",
            "description": "Out of office event data. Used if eventType is outOfOffice."
          },
          "privateCopy": {
            "default": "false",
            "description": "If set to True, Event propagation is disabled. Note that it is not the same thing as Private event properties. Optional. Immutable. The default is False.",
            "type": "boolean"
          },
          "recurrence": {
            "description": "List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. Note that DTSTART and DTEND lines are not allowed in this field; event start and end times are specified in the start and end fields. This field is omitted for single events or instances of recurring events.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "recurringEventId": {
            "description": "For an instance of a recurring event, this is the id of the recurring event to which this instance belongs. Immutable.",
            "type": "string"
          },
          "reminders": {
            "description": "Information about the event's reminders for the authenticated user. Note that changing reminders does not also change the updated property of the enclosing event.",
            "properties": {
              "overrides": {
                "description": "If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event. The maximum number of override reminders is 5.",
                "items": {
                  "$ref": "#/components/schemas/calendar_EventReminder"
                },
                "type": "array"
              },
              "useDefault": {
                "description": "Whether the default reminders of the calendar apply to the event.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "sequence": {
            "description": "Sequence number as per iCalendar.",
            "format": "int32",
            "type": "integer"
          },
          "source": {
            "description": "Source from which the event was created. For example, a web page, an email message or any document identifiable by an URL with HTTP or HTTPS scheme. Can only be seen or modified by the creator of the event.",
            "properties": {
              "title": {
                "description": "Title of the source; for example a title of a web page or an email subject.",
                "type": "string"
              },
              "url": {
                "description": "URL of the source pointing to a resource. The URL scheme must be HTTP or HTTPS.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "start": {
            "$ref": "#/components/schemas/calendar_EventDateTime",
            "description": "The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance."
          },
          "status": {
            "description": "Status of the event. Optional. Possible values are:  \n- \"confirmed\" - The event is confirmed. This is the default status. \n- \"tentative\" - The event is tentatively confirmed. \n- \"cancelled\" - The event is cancelled (deleted). The list method returns cancelled events only on incremental sync (when syncToken or updatedMin are specified) or if the showDeleted flag is set to true. The get method always returns them.\nA cancelled status represents two different states depending on the event type:  \n- Cancelled exceptions of an uncancelled recurring event indicate that this instance should no longer be presented to the user. Clients should store these events for the lifetime of the parent recurring event.\nCancelled exceptions are only guaranteed to have values for the id, recurringEventId and originalStartTime fields populated. The other fields might be empty.  \n- All other cancelled events represent deleted events. Clients should remove their locally synced copies. Such cancelled events will eventually disappear, so do not rely on them being available indefinitely.\nDeleted events are only guaranteed to have the id field populated.   On the organizer's calendar, cancelled events continue to expose event details (summary, location, etc.) so that they can be restored (undeleted). Similarly, the events to which the user was invited and that they manually removed continue to provide details. However, incremental sync requests with showDeleted set to false will not return these details.\nIf an event changes its organizer (for example via the move operation) and the original organizer is not on the attendee list, it will leave behind a cancelled event where only the id field is guaranteed to be populated.",
            "type": "string"
          },
          "summary": {
            "description": "Title of the event.",
            "type": "string"
          },
          "transparency": {
            "default": "opaque",
            "description": "Whether the event blocks time on the calendar. Optional. Possible values are:  \n- \"opaque\" - Default value. The event does block time on the calendar. This is equivalent to setting Show me as to Busy in the Calendar UI. \n- \"transparent\" - The event does not block time on the calendar. This is equivalent to setting Show me as to Available in the Calendar UI.",
            "type": "string"
          },
          "updated": {
            "description": "Last modification time of the main event data (as a RFC3339 timestamp). Updating event reminders will not cause this to change. Read-only.",
            "format": "date-time",
            "type": "string"
          },
          "visibility": {
            "default": "default",
            "description": "Visibility of the event. Optional. Possible values are:  \n- \"default\" - Uses the default visibility for events on the calendar. This is the default value. \n- \"public\" - The event is public and event details are visible to all readers of the calendar. \n- \"private\" - The event is private and only event attendees may view event details. \n- \"confidential\" - The event is private. This value is provided for compatibility reasons.  \nNote on recurring events: Changing the visibility of a single instance of a recurring event can affect all instances of the series. If the new setting is more restrictive (e.g. from public to private), it is applied to all instances. If the new setting is less restrictive (e.g. from private to public), the change is ignored. To make a recurring event less restrictive, you must update the parent recurring event.",
            "type": "string"
          },
          "workingLocationProperties": {
            "$ref": "#/components/schemas/calendar_EventWorkingLocationProperties",
            "description": "Working location event data."
          }
        },
        "required": [
          "end",
          "start"
        ],
        "type": "object"
      },
      "calendar_Events": {
        "properties": {
          "accessRole": {
            "description": "The user's access role for this calendar. Read-only. Possible values are:  \n- \"none\" - The user has no access. \n- \"freeBusyReader\" - The user has read access to free/busy information. \n- \"reader\" - The user has read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writerWithoutPrivateAccess\" - The user has read and write access to the calendar. Private events will appear to users with writerWithoutPrivateAccess access, but event details will be hidden. \n- \"writer\" - The user has read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - The user has manager access to the calendar. This role has all of the permissions of the writer role with the additional ability to see and modify access levels of other users.\nImportant: the owner role is different from the calendar's data owner. A calendar has a single data owner, but can have multiple users with owner role.",
            "type": "string"
          },
          "defaultReminders": {
            "description": "The default reminders on the calendar for the authenticated user. These reminders apply to all events on this calendar that do not explicitly override them (i.e. do not have reminders.useDefault set to True).",
            "items": {
              "$ref": "#/components/schemas/calendar_EventReminder"
            },
            "type": "array"
          },
          "description": {
            "description": "Description of the calendar. Read-only.",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the collection.",
            "type": "string"
          },
          "items": {
            "description": "List of events on the calendar.",
            "items": {
              "$ref": "#/components/schemas/calendar_Event"
            },
            "type": "array"
          },
          "kind": {
            "default": "calendar#events",
            "description": "Type of the collection (\"calendar#events\").",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.",
            "type": "string"
          },
          "nextSyncToken": {
            "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.",
            "type": "string"
          },
          "summary": {
            "description": "Title of the calendar. Read-only.",
            "type": "string"
          },
          "timeZone": {
            "description": "The time zone of the calendar. Read-only.",
            "type": "string"
          },
          "updated": {
            "description": "Last modification time of the calendar (as a RFC3339 timestamp). Read-only.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Events_calendar_events_import": {
        "properties": {
          "accessRole": {
            "description": "The user's access role for this calendar. Read-only. Possible values are:  \n- \"none\" - The user has no access. \n- \"freeBusyReader\" - The user has read access to free/busy information. \n- \"reader\" - The user has read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writerWithoutPrivateAccess\" - The user has read and write access to the calendar. Private events will appear to users with writerWithoutPrivateAccess access, but event details will be hidden. \n- \"writer\" - The user has read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - The user has manager access to the calendar. This role has all of the permissions of the writer role with the additional ability to see and modify access levels of other users.\nImportant: the owner role is different from the calendar's data owner. A calendar has a single data owner, but can have multiple users with owner role.",
            "type": "string"
          },
          "defaultReminders": {
            "description": "The default reminders on the calendar for the authenticated user. These reminders apply to all events on this calendar that do not explicitly override them (i.e. do not have reminders.useDefault set to True).",
            "items": {
              "$ref": "#/components/schemas/calendar_EventReminder"
            },
            "type": "array"
          },
          "description": {
            "description": "Description of the calendar. Read-only.",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the collection.",
            "type": "string"
          },
          "items": {
            "description": "List of events on the calendar.",
            "items": {
              "$ref": "#/components/schemas/calendar_Event_calendar_events_import"
            },
            "type": "array"
          },
          "kind": {
            "default": "calendar#events",
            "description": "Type of the collection (\"calendar#events\").",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.",
            "type": "string"
          },
          "nextSyncToken": {
            "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.",
            "type": "string"
          },
          "summary": {
            "description": "Title of the calendar. Read-only.",
            "type": "string"
          },
          "timeZone": {
            "description": "The time zone of the calendar. Read-only.",
            "type": "string"
          },
          "updated": {
            "description": "Last modification time of the calendar (as a RFC3339 timestamp). Read-only.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Events_calendar_events_insert": {
        "properties": {
          "accessRole": {
            "description": "The user's access role for this calendar. Read-only. Possible values are:  \n- \"none\" - The user has no access. \n- \"freeBusyReader\" - The user has read access to free/busy information. \n- \"reader\" - The user has read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writerWithoutPrivateAccess\" - The user has read and write access to the calendar. Private events will appear to users with writerWithoutPrivateAccess access, but event details will be hidden. \n- \"writer\" - The user has read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - The user has manager access to the calendar. This role has all of the permissions of the writer role with the additional ability to see and modify access levels of other users.\nImportant: the owner role is different from the calendar's data owner. A calendar has a single data owner, but can have multiple users with owner role.",
            "type": "string"
          },
          "defaultReminders": {
            "description": "The default reminders on the calendar for the authenticated user. These reminders apply to all events on this calendar that do not explicitly override them (i.e. do not have reminders.useDefault set to True).",
            "items": {
              "$ref": "#/components/schemas/calendar_EventReminder"
            },
            "type": "array"
          },
          "description": {
            "description": "Description of the calendar. Read-only.",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the collection.",
            "type": "string"
          },
          "items": {
            "description": "List of events on the calendar.",
            "items": {
              "$ref": "#/components/schemas/calendar_Event_calendar_events_insert"
            },
            "type": "array"
          },
          "kind": {
            "default": "calendar#events",
            "description": "Type of the collection (\"calendar#events\").",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.",
            "type": "string"
          },
          "nextSyncToken": {
            "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.",
            "type": "string"
          },
          "summary": {
            "description": "Title of the calendar. Read-only.",
            "type": "string"
          },
          "timeZone": {
            "description": "The time zone of the calendar. Read-only.",
            "type": "string"
          },
          "updated": {
            "description": "Last modification time of the calendar (as a RFC3339 timestamp). Read-only.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Events_calendar_events_update": {
        "properties": {
          "accessRole": {
            "description": "The user's access role for this calendar. Read-only. Possible values are:  \n- \"none\" - The user has no access. \n- \"freeBusyReader\" - The user has read access to free/busy information. \n- \"reader\" - The user has read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. \n- \"writerWithoutPrivateAccess\" - The user has read and write access to the calendar. Private events will appear to users with writerWithoutPrivateAccess access, but event details will be hidden. \n- \"writer\" - The user has read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. \n- \"owner\" - The user has manager access to the calendar. This role has all of the permissions of the writer role with the additional ability to see and modify access levels of other users.\nImportant: the owner role is different from the calendar's data owner. A calendar has a single data owner, but can have multiple users with owner role.",
            "type": "string"
          },
          "defaultReminders": {
            "description": "The default reminders on the calendar for the authenticated user. These reminders apply to all events on this calendar that do not explicitly override them (i.e. do not have reminders.useDefault set to True).",
            "items": {
              "$ref": "#/components/schemas/calendar_EventReminder"
            },
            "type": "array"
          },
          "description": {
            "description": "Description of the calendar. Read-only.",
            "type": "string"
          },
          "etag": {
            "description": "ETag of the collection.",
            "type": "string"
          },
          "items": {
            "description": "List of events on the calendar.",
            "items": {
              "$ref": "#/components/schemas/calendar_Event_calendar_events_update"
            },
            "type": "array"
          },
          "kind": {
            "default": "calendar#events",
            "description": "Type of the collection (\"calendar#events\").",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.",
            "type": "string"
          },
          "nextSyncToken": {
            "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.",
            "type": "string"
          },
          "summary": {
            "description": "Title of the calendar. Read-only.",
            "type": "string"
          },
          "timeZone": {
            "description": "The time zone of the calendar. Read-only.",
            "type": "string"
          },
          "updated": {
            "description": "Last modification time of the calendar (as a RFC3339 timestamp). Read-only.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_FreeBusyCalendar": {
        "properties": {
          "busy": {
            "description": "List of time ranges during which this calendar should be regarded as busy.",
            "items": {
              "$ref": "#/components/schemas/calendar_TimePeriod"
            },
            "type": "array"
          },
          "errors": {
            "description": "Optional error(s) (if computation for the calendar failed).",
            "items": {
              "$ref": "#/components/schemas/calendar_Error"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "calendar_FreeBusyGroup": {
        "properties": {
          "calendars": {
            "description": "List of calendars' identifiers within a group.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "errors": {
            "description": "Optional error(s) (if computation for the group failed).",
            "items": {
              "$ref": "#/components/schemas/calendar_Error"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "calendar_FreeBusyRequest": {
        "properties": {
          "calendarExpansionMax": {
            "description": "Maximal number of calendars for which FreeBusy information is to be provided. Optional. Maximum value is 50.",
            "format": "int32",
            "type": "integer"
          },
          "groupExpansionMax": {
            "description": "Maximal number of calendar identifiers to be provided for a single group. Optional. An error is returned for a group with more members than this value. Maximum value is 100.",
            "format": "int32",
            "type": "integer"
          },
          "items": {
            "description": "List of calendars and/or groups to query.",
            "items": {
              "$ref": "#/components/schemas/calendar_FreeBusyRequestItem"
            },
            "type": "array"
          },
          "timeMax": {
            "description": "The end of the interval for the query formatted as per RFC3339.",
            "format": "date-time",
            "type": "string"
          },
          "timeMin": {
            "description": "The start of the interval for the query formatted as per RFC3339.",
            "format": "date-time",
            "type": "string"
          },
          "timeZone": {
            "default": "UTC",
            "description": "Time zone used in the response. Optional. The default is UTC.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_FreeBusyRequestItem": {
        "properties": {
          "id": {
            "description": "The identifier of a calendar or a group.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_FreeBusyResponse": {
        "properties": {
          "calendars": {
            "additionalProperties": {
              "$ref": "#/components/schemas/calendar_FreeBusyCalendar",
              "description": "Free/busy expansions for a single calendar."
            },
            "description": "List of free/busy information for calendars.",
            "type": "object"
          },
          "groups": {
            "additionalProperties": {
              "$ref": "#/components/schemas/calendar_FreeBusyGroup",
              "description": "List of calendars that are members of this group."
            },
            "description": "Expansion of groups.",
            "type": "object"
          },
          "kind": {
            "default": "calendar#freeBusy",
            "description": "Type of the resource (\"calendar#freeBusy\").",
            "type": "string"
          },
          "timeMax": {
            "description": "The end of the interval.",
            "format": "date-time",
            "type": "string"
          },
          "timeMin": {
            "description": "The start of the interval.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_LabelProperties": {
        "properties": {
          "eventLabels": {
            "description": "Event labels defined on this calendar. If this is present when updating the calendar, it will replace the existing event labels.\nExtend the list to add a new event label, and remove entities from the list to delete a label from calendar.\nEach calendar can have a maximum of 200 labels.",
            "items": {
              "$ref": "#/components/schemas/calendar_EventLabel"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "calendar_Setting": {
        "properties": {
          "etag": {
            "description": "ETag of the resource.",
            "type": "string"
          },
          "id": {
            "description": "The id of the user setting.",
            "type": "string"
          },
          "kind": {
            "default": "calendar#setting",
            "description": "Type of the resource (\"calendar#setting\").",
            "type": "string"
          },
          "value": {
            "description": "Value of the user setting. The format of the value depends on the ID of the setting. It must always be a UTF-8 string of length up to 1024 characters.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_Settings": {
        "properties": {
          "etag": {
            "description": "Etag of the collection.",
            "type": "string"
          },
          "items": {
            "description": "List of user settings.",
            "items": {
              "$ref": "#/components/schemas/calendar_Setting"
            },
            "type": "array"
          },
          "kind": {
            "default": "calendar#settings",
            "description": "Type of the collection (\"calendar#settings\").",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.",
            "type": "string"
          },
          "nextSyncToken": {
            "description": "Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "calendar_TimePeriod": {
        "properties": {
          "end": {
            "description": "The (exclusive) end of the time period.",
            "format": "date-time",
            "type": "string"
          },
          "start": {
            "description": "The (inclusive) start of the time period.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_About": {
        "description": "Information about the user, the user's Drive, and system capabilities.",
        "properties": {
          "appInstalled": {
            "description": "Whether the user has installed the requesting app.",
            "type": "boolean"
          },
          "canCreateDrives": {
            "description": "Whether the user can create shared drives.",
            "type": "boolean"
          },
          "canCreateTeamDrives": {
            "description": "Deprecated: Use `canCreateDrives` instead.",
            "type": "boolean"
          },
          "driveThemes": {
            "description": "A list of themes that are supported for shared drives.",
            "items": {
              "properties": {
                "backgroundImageLink": {
                  "description": "A link to this theme's background image.",
                  "type": "string"
                },
                "colorRgb": {
                  "description": "The color of this theme as an RGB hex string.",
                  "type": "string"
                },
                "id": {
                  "description": "The ID of the theme.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "exportFormats": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "description": "A map of source MIME type to possible targets for all supported exports.",
            "type": "object"
          },
          "folderColorPalette": {
            "description": "The currently supported folder colors as RGB hex strings.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "importFormats": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "description": "A map of source MIME type to possible targets for all supported imports.",
            "type": "object"
          },
          "kind": {
            "default": "drive#about",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#about\"`.",
            "type": "string"
          },
          "maxImportSizes": {
            "additionalProperties": {
              "format": "int64",
              "type": "string"
            },
            "description": "A map of maximum import sizes by MIME type, in bytes.",
            "type": "object"
          },
          "maxUploadSize": {
            "description": "The maximum upload size in bytes.",
            "format": "int64",
            "type": "string"
          },
          "storageQuota": {
            "description": "The user's storage quota limits and usage. For users that are part of an organization with pooled storage, information about the limit and usage across all services is for the organization, rather than the individual user. All fields are measured in bytes.",
            "properties": {
              "limit": {
                "description": "The usage limit, if applicable. This will not be present if the user has unlimited storage. For users that are part of an organization with pooled storage, this is the limit for the organization, rather than the individual user.",
                "format": "int64",
                "type": "string"
              },
              "usage": {
                "description": "The total usage across all services. For users that are part of an organization with pooled storage, this is the usage across all services for the organization, rather than the individual user.",
                "format": "int64",
                "type": "string"
              },
              "usageInDrive": {
                "description": "The usage by all files in Google Drive.",
                "format": "int64",
                "type": "string"
              },
              "usageInDriveTrash": {
                "description": "The usage by trashed files in Google Drive.",
                "format": "int64",
                "type": "string"
              }
            },
            "type": "object"
          },
          "teamDriveThemes": {
            "description": "Deprecated: Use `driveThemes` instead.",
            "items": {
              "properties": {
                "backgroundImageLink": {
                  "description": "Deprecated: Use `driveThemes/backgroundImageLink` instead.",
                  "type": "string"
                },
                "colorRgb": {
                  "description": "Deprecated: Use `driveThemes/colorRgb` instead.",
                  "type": "string"
                },
                "id": {
                  "description": "Deprecated: Use `driveThemes/id` instead.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "user": {
            "$ref": "#/components/schemas/drive_User",
            "description": "The authenticated user."
          }
        },
        "type": "object"
      },
      "drive_AccessProposal": {
        "description": "Manage outstanding access proposals on a file.",
        "properties": {
          "createTime": {
            "description": "The creation time.",
            "format": "google-datetime",
            "type": "string"
          },
          "fileId": {
            "description": "The file ID that the proposal for access is on.",
            "type": "string"
          },
          "proposalId": {
            "description": "The ID of the access proposal.",
            "type": "string"
          },
          "recipientEmailAddress": {
            "description": "The email address of the user that will receive permissions, if accepted.",
            "type": "string"
          },
          "requestMessage": {
            "description": "The message that the requester added to the proposal.",
            "type": "string"
          },
          "requesterEmailAddress": {
            "description": "The email address of the requesting user.",
            "type": "string"
          },
          "rolesAndViews": {
            "description": "A wrapper for the role and view of an access proposal. For more information, see [Roles and permissions](https://developers.google.com/workspace/drive/api/guides/ref-roles).",
            "items": {
              "$ref": "#/components/schemas/drive_AccessProposalRoleAndView"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_AccessProposalRoleAndView": {
        "description": "A wrapper for the role and view of an access proposal. For more information, see [Roles and permissions](https://developers.google.com/workspace/drive/api/guides/ref-roles).",
        "properties": {
          "role": {
            "description": "The role that was proposed by the requester. The supported values are: * `writer` * `commenter` * `reader`",
            "type": "string"
          },
          "view": {
            "description": "Indicates the view for this access proposal. Only populated for proposals that belong to a view. Only `published` is supported.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_AddReviewer": {
        "description": "Representation of a reviewer addition.",
        "properties": {
          "addedReviewerEmail": {
            "description": "Required. The email of the reviewer to add.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_App": {
        "description": "The `apps` resource provides a list of apps that a user has installed, with information about each app's supported MIME types, file extensions, and other details. Some resource methods (such as `apps.get`) require an `appId`. Use the `apps.list` method to retrieve the ID for an installed application.",
        "properties": {
          "authorized": {
            "description": "Whether the app is authorized to access data on the user's Drive.",
            "type": "boolean"
          },
          "createInFolderTemplate": {
            "description": "The template URL to create a file with this app in a given folder. The template contains the {folderId} to be replaced by the folder ID house the new file.",
            "type": "string"
          },
          "createUrl": {
            "description": "The URL to create a file with this app.",
            "type": "string"
          },
          "hasDriveWideScope": {
            "description": "Whether the app has Drive-wide scope. An app with Drive-wide scope can access all files in the user's Drive.",
            "type": "boolean"
          },
          "icons": {
            "description": "The various icons for the app.",
            "items": {
              "$ref": "#/components/schemas/drive_AppIcons"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of the app.",
            "type": "string"
          },
          "installed": {
            "description": "Whether the app is installed.",
            "type": "boolean"
          },
          "kind": {
            "default": "drive#app",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string \"drive#app\".",
            "type": "string"
          },
          "longDescription": {
            "description": "A long description of the app.",
            "type": "string"
          },
          "name": {
            "description": "The name of the app.",
            "type": "string"
          },
          "objectType": {
            "description": "The type of object this app creates such as a Chart. If empty, the app name should be used instead.",
            "type": "string"
          },
          "openUrlTemplate": {
            "description": "The template URL for opening files with this app. The template contains {ids} or {exportIds} to be replaced by the actual file IDs. For more information, see Open Files for the full documentation.",
            "type": "string"
          },
          "primaryFileExtensions": {
            "description": "The list of primary file extensions.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "primaryMimeTypes": {
            "description": "The list of primary MIME types.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "productId": {
            "description": "The ID of the product listing for this app.",
            "type": "string"
          },
          "productUrl": {
            "description": "A link to the product listing for this app.",
            "type": "string"
          },
          "secondaryFileExtensions": {
            "description": "The list of secondary file extensions.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "secondaryMimeTypes": {
            "description": "The list of secondary MIME types.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "shortDescription": {
            "description": "A short description of the app.",
            "type": "string"
          },
          "supportsCreate": {
            "description": "Whether this app supports creating objects.",
            "type": "boolean"
          },
          "supportsImport": {
            "description": "Whether this app supports importing from Google Docs.",
            "type": "boolean"
          },
          "supportsMultiOpen": {
            "description": "Whether this app supports opening more than one file.",
            "type": "boolean"
          },
          "supportsOfflineCreate": {
            "description": "Whether this app supports creating files when offline.",
            "type": "boolean"
          },
          "useByDefault": {
            "description": "Whether the app is selected as the default handler for the types it supports.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "drive_AppIcons": {
        "properties": {
          "category": {
            "description": "Category of the icon. Allowed values are: * `application` - The icon for the application. * `document` - The icon for a file associated with the app. * `documentShared` - The icon for a shared file associated with the app.",
            "type": "string"
          },
          "iconUrl": {
            "description": "URL for the icon.",
            "type": "string"
          },
          "size": {
            "description": "Size of the icon. Represented as the maximum of the width and height.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "drive_AppList": {
        "description": "A list of third-party applications which the user has installed or given access to Google Drive.",
        "properties": {
          "defaultAppIds": {
            "description": "The list of app IDs that the user has specified to use by default. The list is in reverse-priority order (lowest to highest).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "items": {
            "description": "The list of apps.",
            "items": {
              "$ref": "#/components/schemas/drive_App"
            },
            "type": "array"
          },
          "kind": {
            "default": "drive#appList",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string \"drive#appList\".",
            "type": "string"
          },
          "selfLink": {
            "description": "A link back to this list.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_Approval": {
        "description": "Metadata for an approval. An approval is a review or approve process for a Drive item.",
        "properties": {
          "approvalId": {
            "description": "The approval ID.",
            "type": "string"
          },
          "completeTime": {
            "description": "The time the approval was completed.",
            "format": "google-datetime",
            "type": "string"
          },
          "createTime": {
            "description": "The time the approval was created.",
            "format": "google-datetime",
            "type": "string"
          },
          "dueTime": {
            "description": "The time that the approval is due.",
            "format": "google-datetime",
            "type": "string"
          },
          "fileContentChangeBehavior": {
            "description": "The behavior of the approval when the file content changes.",
            "enum": [
              "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED",
              "RESET_APPROVAL",
              "NO_APPROVAL_ACTION"
            ],
            "type": "string"
          },
          "initiator": {
            "$ref": "#/components/schemas/drive_User",
            "description": "The user that requested the approval."
          },
          "kind": {
            "description": "This is always drive#approval.",
            "type": "string"
          },
          "modifyTime": {
            "description": "The most recent time the approval was modified.",
            "format": "google-datetime",
            "type": "string"
          },
          "reviewerResponses": {
            "description": "The responses made on the approval by reviewers.",
            "items": {
              "$ref": "#/components/schemas/drive_ReviewerResponse"
            },
            "type": "array"
          },
          "status": {
            "description": "The status of the approval at the time this resource was requested.",
            "enum": [
              "STATUS_UNSPECIFIED",
              "IN_PROGRESS",
              "APPROVED",
              "CANCELLED",
              "DECLINED"
            ],
            "type": "string"
          },
          "targetFileId": {
            "description": "Target file id of the approval.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_ApprovalList": {
        "description": "The response of an approvals list request.",
        "properties": {
          "items": {
            "description": "The list of approvals. If `nextPageToken` is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Approval"
            },
            "type": "array"
          },
          "kind": {
            "description": "This is always drive#approvalList",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of approvals. This is absent if the end of the approvals list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_ApproveApprovalRequest": {
        "description": "Request for approving an approval as a reviewer.",
        "properties": {
          "message": {
            "description": "Optional. A message to accompany the reviewer response on the approval. This message is included in notifications for the action and in the approval activity log.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_CancelApprovalRequest": {
        "description": "Request for cancelling an approval as an initiator.",
        "properties": {
          "message": {
            "description": "Optional. A message to accompany the cancellation of the approval. This message is included in notifications for the action and in the approval activity log.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_Change": {
        "description": "A change to a file or shared drive.",
        "properties": {
          "changeType": {
            "description": "The type of the change. Possible values are `file` and `drive`.",
            "type": "string"
          },
          "drive": {
            "$ref": "#/components/schemas/drive_Drive",
            "description": "The updated state of the shared drive. Present if the changeType is drive, the user is still a member of the shared drive, and the shared drive has not been deleted."
          },
          "driveId": {
            "description": "The ID of the shared drive associated with this change.",
            "type": "string"
          },
          "file": {
            "$ref": "#/components/schemas/drive_File",
            "description": "The updated state of the file. Present if the type is file and the file has not been removed from this list of changes."
          },
          "fileId": {
            "description": "The ID of the file which has changed.",
            "type": "string"
          },
          "kind": {
            "default": "drive#change",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#change\"`.",
            "type": "string"
          },
          "removed": {
            "description": "Whether the file or shared drive has been removed from this list of changes, for example by deletion or loss of access.",
            "type": "boolean"
          },
          "teamDrive": {
            "$ref": "#/components/schemas/drive_TeamDrive",
            "description": "Deprecated: Use `drive` instead."
          },
          "teamDriveId": {
            "description": "Deprecated: Use `driveId` instead.",
            "type": "string"
          },
          "time": {
            "description": "The time of this change (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "type": {
            "description": "Deprecated: Use `changeType` instead.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_ChangeList": {
        "description": "A list of changes for a user.",
        "properties": {
          "changes": {
            "description": "The list of changes. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Change"
            },
            "type": "array"
          },
          "kind": {
            "default": "drive#changeList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#changeList\"`.",
            "type": "string"
          },
          "newStartPageToken": {
            "description": "The starting page token for future changes. This will be present only if the end of the current changes list has been reached. The page token doesn't expire.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of changes. This will be absent if the end of the changes list has been reached. The page token doesn't expire.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_ChangeList_drive_permissions_create": {
        "description": "A list of changes for a user.",
        "properties": {
          "changes": {
            "description": "The list of changes. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Change_drive_permissions_create"
            },
            "type": "array"
          },
          "kind": {
            "default": "drive#changeList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#changeList\"`.",
            "type": "string"
          },
          "newStartPageToken": {
            "description": "The starting page token for future changes. This will be present only if the end of the current changes list has been reached. The page token doesn't expire.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of changes. This will be absent if the end of the changes list has been reached. The page token doesn't expire.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_Change_drive_permissions_create": {
        "description": "A change to a file or shared drive.",
        "properties": {
          "changeType": {
            "description": "The type of the change. Possible values are `file` and `drive`.",
            "type": "string"
          },
          "drive": {
            "$ref": "#/components/schemas/drive_Drive",
            "description": "The updated state of the shared drive. Present if the changeType is drive, the user is still a member of the shared drive, and the shared drive has not been deleted."
          },
          "driveId": {
            "description": "The ID of the shared drive associated with this change.",
            "type": "string"
          },
          "file": {
            "$ref": "#/components/schemas/drive_File_drive_permissions_create",
            "description": "The updated state of the file. Present if the type is file and the file has not been removed from this list of changes."
          },
          "fileId": {
            "description": "The ID of the file which has changed.",
            "type": "string"
          },
          "kind": {
            "default": "drive#change",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#change\"`.",
            "type": "string"
          },
          "removed": {
            "description": "Whether the file or shared drive has been removed from this list of changes, for example by deletion or loss of access.",
            "type": "boolean"
          },
          "teamDrive": {
            "$ref": "#/components/schemas/drive_TeamDrive",
            "description": "Deprecated: Use `drive` instead."
          },
          "teamDriveId": {
            "description": "Deprecated: Use `driveId` instead.",
            "type": "string"
          },
          "time": {
            "description": "The time of this change (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "type": {
            "description": "Deprecated: Use `changeType` instead.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_Channel": {
        "description": "A notification channel used to watch for resource changes.",
        "properties": {
          "address": {
            "description": "The address where notifications are delivered for this channel.",
            "type": "string"
          },
          "expiration": {
            "description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.",
            "format": "int64",
            "type": "string"
          },
          "id": {
            "description": "A UUID or similar unique string that identifies this channel.",
            "type": "string"
          },
          "kind": {
            "default": "api#channel",
            "description": "Identifies this as a notification channel used to watch for changes to a resource, which is `api#channel`.",
            "type": "string"
          },
          "params": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Additional parameters controlling delivery channel behavior. Optional.",
            "type": "object"
          },
          "payload": {
            "description": "A Boolean value to indicate whether payload is wanted. Optional.",
            "type": "boolean"
          },
          "resourceId": {
            "description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.",
            "type": "string"
          },
          "resourceUri": {
            "description": "A version-specific identifier for the watched resource.",
            "type": "string"
          },
          "token": {
            "description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.",
            "type": "string"
          },
          "type": {
            "description": "The type of delivery mechanism used for this channel. Valid values are \"web_hook\" or \"webhook\".",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_ClientEncryptionDetails": {
        "description": "Details about the client-side encryption applied to the file.",
        "properties": {
          "decryptionMetadata": {
            "$ref": "#/components/schemas/drive_DecryptionMetadata",
            "description": "The metadata used for client-side operations."
          },
          "encryptionState": {
            "description": "The encryption state of the file. The values expected here are: - encrypted - unencrypted ",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_Comment": {
        "description": "A comment on a file. Some resource methods (such as `comments.update`) require a `commentId`. Use the `comments.list` method to retrieve the ID for a comment in a file.",
        "properties": {
          "anchor": {
            "description": "A region of the document represented as a JSON string. For details on defining anchor properties, refer to [Manage comments and replies](https://developers.google.com/workspace/drive/api/v3/manage-comments).",
            "type": "string"
          },
          "assigneeEmailAddress": {
            "description": "Output only. The email address of the user assigned to this comment. If no user is assigned, the field is unset.",
            "readOnly": true,
            "type": "string"
          },
          "author": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The author of the comment. The author's email address and permission ID will not be populated."
          },
          "content": {
            "description": "The plain text content of the comment. This field is used for setting the content, while `htmlContent` should be displayed.",
            "type": "string"
          },
          "createdTime": {
            "description": "The time at which the comment was created (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "deleted": {
            "description": "Output only. Whether the comment has been deleted. A deleted comment has no content.",
            "type": "boolean"
          },
          "htmlContent": {
            "description": "Output only. The content of the comment with HTML formatting.",
            "type": "string"
          },
          "id": {
            "description": "Output only. The ID of the comment.",
            "type": "string"
          },
          "kind": {
            "default": "drive#comment",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#comment\"`.",
            "type": "string"
          },
          "mentionedEmailAddresses": {
            "description": "Output only. A list of email addresses for users mentioned in this comment. If no users are mentioned, the list is empty.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "modifiedTime": {
            "description": "The last time the comment or any of its replies was modified (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "quotedFileContent": {
            "description": "The file content to which the comment refers, typically within the anchor region. For a text file, for example, this would be the text at the location of the comment.",
            "properties": {
              "mimeType": {
                "description": "The MIME type of the quoted content.",
                "type": "string"
              },
              "value": {
                "description": "The quoted content itself. This is interpreted as plain text if set through the API.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "replies": {
            "description": "Output only. The full list of replies to the comment in chronological order.",
            "items": {
              "$ref": "#/components/schemas/drive_Reply"
            },
            "type": "array"
          },
          "resolved": {
            "description": "Output only. Whether the comment has been resolved by one of its replies.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "drive_CommentApprovalRequest": {
        "description": "Request for commenting on an approval.",
        "properties": {
          "message": {
            "description": "Required. A message to comment on the approval. This message is included in notifications for the action and in the approval activity log.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_CommentList": {
        "description": "A list of comments on a file.",
        "properties": {
          "comments": {
            "description": "The list of comments. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Comment"
            },
            "type": "array"
          },
          "kind": {
            "default": "drive#commentList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#commentList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of comments. This will be absent if the end of the comments list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_CommentList_drive_comments_create": {
        "description": "A list of comments on a file.",
        "properties": {
          "comments": {
            "description": "The list of comments. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Comment_drive_comments_create"
            },
            "type": "array"
          },
          "kind": {
            "default": "drive#commentList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#commentList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of comments. This will be absent if the end of the comments list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_CommentList_drive_comments_update": {
        "description": "A list of comments on a file.",
        "properties": {
          "comments": {
            "description": "The list of comments. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Comment_drive_comments_update"
            },
            "type": "array"
          },
          "kind": {
            "default": "drive#commentList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#commentList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of comments. This will be absent if the end of the comments list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_CommentList_drive_replies_update": {
        "description": "A list of comments on a file.",
        "properties": {
          "comments": {
            "description": "The list of comments. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Comment_drive_replies_update"
            },
            "type": "array"
          },
          "kind": {
            "default": "drive#commentList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#commentList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of comments. This will be absent if the end of the comments list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_Comment_drive_comments_create": {
        "description": "A comment on a file. Some resource methods (such as `comments.update`) require a `commentId`. Use the `comments.list` method to retrieve the ID for a comment in a file.",
        "properties": {
          "anchor": {
            "description": "A region of the document represented as a JSON string. For details on defining anchor properties, refer to [Manage comments and replies](https://developers.google.com/workspace/drive/api/v3/manage-comments).",
            "type": "string"
          },
          "assigneeEmailAddress": {
            "description": "Output only. The email address of the user assigned to this comment. If no user is assigned, the field is unset.",
            "readOnly": true,
            "type": "string"
          },
          "author": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The author of the comment. The author's email address and permission ID will not be populated."
          },
          "content": {
            "description": "The plain text content of the comment. This field is used for setting the content, while `htmlContent` should be displayed.",
            "type": "string"
          },
          "createdTime": {
            "description": "The time at which the comment was created (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "deleted": {
            "description": "Output only. Whether the comment has been deleted. A deleted comment has no content.",
            "type": "boolean"
          },
          "htmlContent": {
            "description": "Output only. The content of the comment with HTML formatting.",
            "type": "string"
          },
          "id": {
            "description": "Output only. The ID of the comment.",
            "type": "string"
          },
          "kind": {
            "default": "drive#comment",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#comment\"`.",
            "type": "string"
          },
          "mentionedEmailAddresses": {
            "description": "Output only. A list of email addresses for users mentioned in this comment. If no users are mentioned, the list is empty.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "modifiedTime": {
            "description": "The last time the comment or any of its replies was modified (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "quotedFileContent": {
            "description": "The file content to which the comment refers, typically within the anchor region. For a text file, for example, this would be the text at the location of the comment.",
            "properties": {
              "mimeType": {
                "description": "The MIME type of the quoted content.",
                "type": "string"
              },
              "value": {
                "description": "The quoted content itself. This is interpreted as plain text if set through the API.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "replies": {
            "description": "Output only. The full list of replies to the comment in chronological order.",
            "items": {
              "$ref": "#/components/schemas/drive_Reply"
            },
            "type": "array"
          },
          "resolved": {
            "description": "Output only. Whether the comment has been resolved by one of its replies.",
            "type": "boolean"
          }
        },
        "required": [
          "content"
        ],
        "type": "object"
      },
      "drive_Comment_drive_comments_update": {
        "description": "A comment on a file. Some resource methods (such as `comments.update`) require a `commentId`. Use the `comments.list` method to retrieve the ID for a comment in a file.",
        "properties": {
          "anchor": {
            "description": "A region of the document represented as a JSON string. For details on defining anchor properties, refer to [Manage comments and replies](https://developers.google.com/workspace/drive/api/v3/manage-comments).",
            "type": "string"
          },
          "assigneeEmailAddress": {
            "description": "Output only. The email address of the user assigned to this comment. If no user is assigned, the field is unset.",
            "readOnly": true,
            "type": "string"
          },
          "author": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The author of the comment. The author's email address and permission ID will not be populated."
          },
          "content": {
            "description": "The plain text content of the comment. This field is used for setting the content, while `htmlContent` should be displayed.",
            "type": "string"
          },
          "createdTime": {
            "description": "The time at which the comment was created (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "deleted": {
            "description": "Output only. Whether the comment has been deleted. A deleted comment has no content.",
            "type": "boolean"
          },
          "htmlContent": {
            "description": "Output only. The content of the comment with HTML formatting.",
            "type": "string"
          },
          "id": {
            "description": "Output only. The ID of the comment.",
            "type": "string"
          },
          "kind": {
            "default": "drive#comment",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#comment\"`.",
            "type": "string"
          },
          "mentionedEmailAddresses": {
            "description": "Output only. A list of email addresses for users mentioned in this comment. If no users are mentioned, the list is empty.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "modifiedTime": {
            "description": "The last time the comment or any of its replies was modified (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "quotedFileContent": {
            "description": "The file content to which the comment refers, typically within the anchor region. For a text file, for example, this would be the text at the location of the comment.",
            "properties": {
              "mimeType": {
                "description": "The MIME type of the quoted content.",
                "type": "string"
              },
              "value": {
                "description": "The quoted content itself. This is interpreted as plain text if set through the API.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "replies": {
            "description": "Output only. The full list of replies to the comment in chronological order.",
            "items": {
              "$ref": "#/components/schemas/drive_Reply"
            },
            "type": "array"
          },
          "resolved": {
            "description": "Output only. Whether the comment has been resolved by one of its replies.",
            "type": "boolean"
          }
        },
        "required": [
          "content"
        ],
        "type": "object"
      },
      "drive_Comment_drive_replies_update": {
        "description": "A comment on a file. Some resource methods (such as `comments.update`) require a `commentId`. Use the `comments.list` method to retrieve the ID for a comment in a file.",
        "properties": {
          "anchor": {
            "description": "A region of the document represented as a JSON string. For details on defining anchor properties, refer to [Manage comments and replies](https://developers.google.com/workspace/drive/api/v3/manage-comments).",
            "type": "string"
          },
          "assigneeEmailAddress": {
            "description": "Output only. The email address of the user assigned to this comment. If no user is assigned, the field is unset.",
            "readOnly": true,
            "type": "string"
          },
          "author": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The author of the comment. The author's email address and permission ID will not be populated."
          },
          "content": {
            "description": "The plain text content of the comment. This field is used for setting the content, while `htmlContent` should be displayed.",
            "type": "string"
          },
          "createdTime": {
            "description": "The time at which the comment was created (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "deleted": {
            "description": "Output only. Whether the comment has been deleted. A deleted comment has no content.",
            "type": "boolean"
          },
          "htmlContent": {
            "description": "Output only. The content of the comment with HTML formatting.",
            "type": "string"
          },
          "id": {
            "description": "Output only. The ID of the comment.",
            "type": "string"
          },
          "kind": {
            "default": "drive#comment",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#comment\"`.",
            "type": "string"
          },
          "mentionedEmailAddresses": {
            "description": "Output only. A list of email addresses for users mentioned in this comment. If no users are mentioned, the list is empty.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "modifiedTime": {
            "description": "The last time the comment or any of its replies was modified (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "quotedFileContent": {
            "description": "The file content to which the comment refers, typically within the anchor region. For a text file, for example, this would be the text at the location of the comment.",
            "properties": {
              "mimeType": {
                "description": "The MIME type of the quoted content.",
                "type": "string"
              },
              "value": {
                "description": "The quoted content itself. This is interpreted as plain text if set through the API.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "replies": {
            "description": "Output only. The full list of replies to the comment in chronological order.",
            "items": {
              "$ref": "#/components/schemas/drive_Reply_drive_replies_update"
            },
            "type": "array"
          },
          "resolved": {
            "description": "Output only. Whether the comment has been resolved by one of its replies.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "drive_ContentRestriction": {
        "description": "A restriction for accessing the content of the file.",
        "properties": {
          "ownerRestricted": {
            "description": "Whether the content restriction can only be modified or removed by a user who owns the file. For files in shared drives, any user with `organizer` capabilities can modify or remove this content restriction.",
            "type": "boolean"
          },
          "readOnly": {
            "description": "Whether the content of the file is read-only. If a file is read-only, a new revision of the file may not be added, comments may not be added or modified, and the title of the file may not be modified.",
            "type": "boolean"
          },
          "reason": {
            "description": "Reason for why the content of the file is restricted. This is only mutable on requests that also set `readOnly=true`.",
            "type": "string"
          },
          "restrictingUser": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The user who set the content restriction. Only populated if `readOnly=true`."
          },
          "restrictionTime": {
            "description": "The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.",
            "format": "date-time",
            "type": "string"
          },
          "systemRestricted": {
            "description": "Output only. Whether the content restriction was applied by the system, for example due to an esignature. Users cannot modify or remove system restricted content restrictions.",
            "type": "boolean"
          },
          "type": {
            "description": "Output only. The type of the content restriction. Currently the only possible value is `globalContentRestriction`.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_DeclineApprovalRequest": {
        "description": "Request for declining an approval as a reviewer.",
        "properties": {
          "message": {
            "description": "Optional. A message to accompany the reviewer response on the approval. This message is included in notifications for the action and in the approval activity log.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_DecryptionMetadata": {
        "description": "Representation of the CSE DecryptionMetadata.",
        "properties": {
          "aes256GcmChunkSize": {
            "description": "Chunk size used if content was encrypted with the AES 256 GCM Cipher. Possible values are: - default - small ",
            "type": "string"
          },
          "encryptionResourceKeyHash": {
            "description": "The URL-safe Base64 encoded HMAC-SHA256 digest of the resource metadata with its DEK (Data Encryption Key); see https://developers.google.com/workspace/cse/reference",
            "type": "string"
          },
          "jwt": {
            "description": "The signed JSON Web Token (JWT) which can be used to authorize the requesting user with the Key ACL Service (KACLS). The JWT asserts that the requesting user has at least read permissions on the file.",
            "type": "string"
          },
          "kaclsId": {
            "description": "The ID of the KACLS (Key ACL Service) used to encrypt the file.",
            "format": "int64",
            "type": "string"
          },
          "kaclsName": {
            "description": "The name of the KACLS (Key ACL Service) used to encrypt the file.",
            "type": "string"
          },
          "keyFormat": {
            "description": "Key format for the unwrapped key. Must be `tinkAesGcmKey`.",
            "type": "string"
          },
          "wrappedKey": {
            "description": "The URL-safe Base64 encoded wrapped key used to encrypt the contents of the file.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_DownloadRestriction": {
        "description": "A restriction for copy and download of the file.",
        "properties": {
          "restrictedForReaders": {
            "description": "Whether download and copy is restricted for readers.",
            "type": "boolean"
          },
          "restrictedForWriters": {
            "description": "Whether download and copy is restricted for writers. If true, download is also restricted for readers.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "drive_DownloadRestrictionsMetadata": {
        "description": "Download restrictions applied to the file.",
        "properties": {
          "effectiveDownloadRestrictionWithContext": {
            "$ref": "#/components/schemas/drive_DownloadRestriction",
            "description": "Output only. The effective download restriction applied to this file. This considers all restriction settings and DLP rules."
          },
          "itemDownloadRestriction": {
            "$ref": "#/components/schemas/drive_DownloadRestriction",
            "description": "The download restriction of the file applied directly by the owner or organizer. This doesn't take into account shared drive settings or DLP rules."
          }
        },
        "type": "object"
      },
      "drive_Drive": {
        "description": "Representation of a shared drive. Some resource methods (such as `drives.update`) require a `driveId`. Use the `drives.list` method to retrieve the ID for a shared drive.",
        "properties": {
          "backgroundImageFile": {
            "description": "An image file and cropping parameters from which a background image for this shared drive is set. This is a write only field; it can only be set on `drive.drives.update` requests that don't set `themeId`. When specified, all fields of the `backgroundImageFile` must be set.",
            "properties": {
              "id": {
                "description": "The ID of an image file in Google Drive to use for the background image.",
                "type": "string"
              },
              "width": {
                "description": "The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.",
                "format": "float",
                "type": "number"
              },
              "xCoordinate": {
                "description": "The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.",
                "format": "float",
                "type": "number"
              },
              "yCoordinate": {
                "description": "The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "backgroundImageLink": {
            "description": "Output only. A short-lived link to this shared drive's background image.",
            "type": "string"
          },
          "capabilities": {
            "description": "Output only. Capabilities the current user has on this shared drive.",
            "properties": {
              "canAddChildren": {
                "description": "Output only. Whether the current user can add children to folders in this shared drive.",
                "type": "boolean"
              },
              "canChangeCopyRequiresWriterPermissionRestriction": {
                "description": "Output only. Whether the current user can change the `copyRequiresWriterPermission` restriction of this shared drive.",
                "type": "boolean"
              },
              "canChangeDomainUsersOnlyRestriction": {
                "description": "Output only. Whether the current user can change the `domainUsersOnly` restriction of this shared drive.",
                "type": "boolean"
              },
              "canChangeDownloadRestriction": {
                "description": "Output only. Whether the current user can change organizer-applied download restrictions of this shared drive.",
                "type": "boolean"
              },
              "canChangeDriveBackground": {
                "description": "Output only. Whether the current user can change the background of this shared drive.",
                "type": "boolean"
              },
              "canChangeDriveMembersOnlyRestriction": {
                "description": "Output only. Whether the current user can change the `driveMembersOnly` restriction of this shared drive.",
                "type": "boolean"
              },
              "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": {
                "description": "Output only. Whether the current user can change the `sharingFoldersRequiresOrganizerPermission` restriction of this shared drive.",
                "type": "boolean"
              },
              "canComment": {
                "description": "Output only. Whether the current user can comment on files in this shared drive.",
                "type": "boolean"
              },
              "canCopy": {
                "description": "Output only. Whether the current user can copy files in this shared drive.",
                "type": "boolean"
              },
              "canDeleteChildren": {
                "description": "Output only. Whether the current user can delete children from folders in this shared drive.",
                "type": "boolean"
              },
              "canDeleteDrive": {
                "description": "Output only. Whether the current user can delete this shared drive. Attempting to delete the shared drive may still fail if there are untrashed items inside the shared drive.",
                "type": "boolean"
              },
              "canDownload": {
                "description": "Output only. Whether the current user can download files in this shared drive.",
                "type": "boolean"
              },
              "canEdit": {
                "description": "Output only. Whether the current user can edit files in this shared drive",
                "type": "boolean"
              },
              "canListChildren": {
                "description": "Output only. Whether the current user can list the children of folders in this shared drive.",
                "type": "boolean"
              },
              "canManageMembers": {
                "description": "Output only. Whether the current user can add members to this shared drive or remove them or change their role.",
                "type": "boolean"
              },
              "canReadRevisions": {
                "description": "Output only. Whether the current user can read the revisions resource of files in this shared drive.",
                "type": "boolean"
              },
              "canRename": {
                "description": "Output only. Whether the current user can rename files or folders in this shared drive.",
                "type": "boolean"
              },
              "canRenameDrive": {
                "description": "Output only. Whether the current user can rename this shared drive.",
                "type": "boolean"
              },
              "canResetDriveRestrictions": {
                "description": "Output only. Whether the current user can reset the shared drive restrictions to defaults.",
                "type": "boolean"
              },
              "canShare": {
                "description": "Output only. Whether the current user can share files or folders in this shared drive.",
                "type": "boolean"
              },
              "canTrashChildren": {
                "description": "Output only. Whether the current user can trash children from folders in this shared drive.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "colorRgb": {
            "description": "The color of this shared drive as an RGB hex string. It can only be set on a `drive.drives.update` request that does not set `themeId`.",
            "type": "string"
          },
          "createdTime": {
            "description": "The time at which the shared drive was created (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "hidden": {
            "description": "Whether the shared drive is hidden from default view.",
            "type": "boolean"
          },
          "id": {
            "description": "Output only. The ID of this shared drive which is also the ID of the top level folder of this shared drive.",
            "type": "string"
          },
          "kind": {
            "default": "drive#drive",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#drive\"`.",
            "type": "string"
          },
          "name": {
            "description": "The name of this shared drive.",
            "type": "string"
          },
          "orgUnitId": {
            "description": "Output only. The organizational unit of this shared drive. This field is only populated on `drives.list` responses when the `useDomainAdminAccess` parameter is set to `true`.",
            "type": "string"
          },
          "restrictions": {
            "description": "A set of restrictions that apply to this shared drive or items inside this shared drive. Note that restrictions can't be set when creating a shared drive. To add a restriction, first create a shared drive and then use `drives.update` to add restrictions.",
            "properties": {
              "adminManagedRestrictions": {
                "description": "Whether administrative privileges on this shared drive are required to modify restrictions.",
                "type": "boolean"
              },
              "copyRequiresWriterPermission": {
                "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to `true`, it will override the similarly named field to `true` for any file inside this shared drive.",
                "type": "boolean"
              },
              "domainUsersOnly": {
                "description": "Whether access to this shared drive and items inside this shared drive is restricted to users of the domain to which this shared drive belongs. This restriction may be overridden by other sharing policies controlled outside of this shared drive.",
                "type": "boolean"
              },
              "downloadRestriction": {
                "$ref": "#/components/schemas/drive_DownloadRestriction",
                "description": "Download restrictions applied by shared drive managers."
              },
              "driveMembersOnly": {
                "description": "Whether access to items inside this shared drive is restricted to its members.",
                "type": "boolean"
              },
              "sharingFoldersRequiresOrganizerPermission": {
                "description": "If true, only users with the organizer role can share folders. If false, users with either the organizer role or the file organizer role can share folders.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "themeId": {
            "description": "The ID of the theme from which the background image and color will be set. The set of possible `driveThemes` can be retrieved from a `drive.about.get` response. When not specified on a `drive.drives.create` request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set `colorRgb` or `backgroundImageFile`.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_DriveList": {
        "description": "A list of shared drives.",
        "properties": {
          "drives": {
            "description": "The list of shared drives. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Drive"
            },
            "type": "array"
          },
          "kind": {
            "default": "drive#driveList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#driveList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of shared drives. This will be absent if the end of the list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_File": {
        "description": "The metadata for a file. Some resource methods (such as `files.update`) require a `fileId`. Use the `files.list` method to retrieve the ID for a file.",
        "properties": {
          "appProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A collection of arbitrary key-value pairs which are private to the requesting app.\nEntries with null values are cleared in update and copy requests. These properties can only be retrieved using an authenticated request. An authenticated request uses an access token obtained with a OAuth 2 client ID. You cannot use an API key to retrieve private properties.",
            "type": "object"
          },
          "capabilities": {
            "description": "Output only. Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take. For more information, see [Understand file capabilities](https://developers.google.com/workspace/drive/api/guides/manage-sharing#capabilities).",
            "properties": {
              "canAcceptOwnership": {
                "description": "Output only. Whether the current user is the pending owner of the file. Not populated for shared drive files.",
                "type": "boolean"
              },
              "canAccessViaGenAi": {
                "description": "Whether the current user can access this file via Gen AI features. For more information, see [Drive MCP file eligibility](https://developers.google.com/workspace/drive/api/guides/drive-mcp-server-file-eligibility).",
                "type": "boolean"
              },
              "canAddChildren": {
                "description": "Output only. Whether the current user can add children to this folder. This is always `false` when the item isn't a folder.",
                "type": "boolean"
              },
              "canAddFolderFromAnotherDrive": {
                "description": "Output only. Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is `false` when the item isn't a folder. Only populated for items in shared drives.",
                "type": "boolean"
              },
              "canAddMyDriveParent": {
                "description": "Output only. Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.",
                "type": "boolean"
              },
              "canChangeCopyRequiresWriterPermission": {
                "description": "Output only. Whether the current user can change the `copyRequiresWriterPermission` restriction of this file.",
                "type": "boolean"
              },
              "canChangeItemDownloadRestriction": {
                "description": "Output only. Whether the current user can change the owner or organizer-applied download restrictions of the file.",
                "type": "boolean"
              },
              "canChangeSecurityUpdateEnabled": {
                "description": "Output only. Whether the current user can change the `securityUpdateEnabled` field on link share metadata.",
                "type": "boolean"
              },
              "canChangeViewersCanCopyContent": {
                "description": "Deprecated: Output only.",
                "type": "boolean"
              },
              "canComment": {
                "description": "Output only. Whether the current user can comment on this file.",
                "type": "boolean"
              },
              "canCopy": {
                "description": "Output only. Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item if it's not a folder.",
                "type": "boolean"
              },
              "canDelete": {
                "description": "Output only. Whether the current user can delete this file.",
                "type": "boolean"
              },
              "canDeleteChildren": {
                "description": "Output only. Whether the current user can delete children of this folder. This is `false` when the item isn't a folder. Only populated for items in shared drives.",
                "type": "boolean"
              },
              "canDisableInheritedPermissions": {
                "description": "Whether a user can disable inherited permissions.",
                "type": "boolean"
              },
              "canDownload": {
                "description": "Output only. Whether the current user can download this file.",
                "type": "boolean"
              },
              "canEdit": {
                "description": "Output only. Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see `canChangeCopyRequiresWriterPermission` or `canModifyContent`.",
                "type": "boolean"
              },
              "canEnableInheritedPermissions": {
                "description": "Whether a user can re-enable inherited permissions.",
                "type": "boolean"
              },
              "canListChildren": {
                "description": "Output only. Whether the current user can list the children of this folder. This is always `false` when the item isn't a folder.",
                "type": "boolean"
              },
              "canModifyContent": {
                "description": "Output only. Whether the current user can modify the content of this file.",
                "type": "boolean"
              },
              "canModifyContentRestriction": {
                "description": "Deprecated: Output only. Use one of `canModifyEditorContentRestriction`, `canModifyOwnerContentRestriction`, or `canRemoveContentRestriction`.",
                "type": "boolean"
              },
              "canModifyEditorContentRestriction": {
                "description": "Output only. Whether the current user can add or modify content restrictions on the file which are editor restricted.",
                "type": "boolean"
              },
              "canModifyLabels": {
                "description": "Output only. Whether the current user can modify the labels on the file.",
                "type": "boolean"
              },
              "canModifyOwnerContentRestriction": {
                "description": "Output only. Whether the current user can add or modify content restrictions which are owner restricted.",
                "type": "boolean"
              },
              "canMoveChildrenOutOfDrive": {
                "description": "Output only. Whether the current user can move children of this folder outside of the shared drive. This is `false` when the item isn't a folder. Only populated for items in shared drives.",
                "type": "boolean"
              },
              "canMoveChildrenOutOfTeamDrive": {
                "description": "Deprecated: Output only. Use `canMoveChildrenOutOfDrive` instead.",
                "type": "boolean"
              },
              "canMoveChildrenWithinDrive": {
                "description": "Output only. Whether the current user can move children of this folder within this drive. This is `false` when the item isn't a folder. Note that a request to move the child may still fail depending on the current user's access to the child and to the destination folder.",
                "type": "boolean"
              },
              "canMoveChildrenWithinTeamDrive": {
                "description": "Deprecated: Output only. Use `canMoveChildrenWithinDrive` instead.",
                "type": "boolean"
              },
              "canMoveItemIntoTeamDrive": {
                "description": "Deprecated: Output only. Use `canMoveItemOutOfDrive` instead.",
                "type": "boolean"
              },
              "canMoveItemOutOfDrive": {
                "description": "Output only. Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that's being added.",
                "type": "boolean"
              },
              "canMoveItemOutOfTeamDrive": {
                "description": "Deprecated: Output only. Use `canMoveItemOutOfDrive` instead.",
                "type": "boolean"
              },
              "canMoveItemWithinDrive": {
                "description": "Output only. Whether the current user can move this item within this drive. Note that a request to change the parent of the item may still fail depending on the new parent that's being added and the parent that is being removed.",
                "type": "boolean"
              },
              "canMoveItemWithinTeamDrive": {
                "description": "Deprecated: Output only. Use `canMoveItemWithinDrive` instead.",
                "type": "boolean"
              },
              "canMoveTeamDriveItem": {
                "description": "Deprecated: Output only. Use `canMoveItemWithinDrive` or `canMoveItemOutOfDrive` instead.",
                "type": "boolean"
              },
              "canReadDrive": {
                "description": "Output only. Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.",
                "type": "boolean"
              },
              "canReadLabels": {
                "description": "Output only. Whether the current user can read the labels on the file.",
                "type": "boolean"
              },
              "canReadRevisions": {
                "description": "Output only. Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item if it's not a folder, can be read.",
                "type": "boolean"
              },
              "canReadTeamDrive": {
                "description": "Deprecated: Output only. Use `canReadDrive` instead.",
                "type": "boolean"
              },
              "canRemoveChildren": {
                "description": "Output only. Whether the current user can remove children from this folder. This is always `false` when the item isn't a folder. For a folder in a shared drive, use `canDeleteChildren` or `canTrashChildren` instead.",
                "type": "boolean"
              },
              "canRemoveContentRestriction": {
                "description": "Output only. Whether there's a content restriction on the file that can be removed by the current user.",
                "type": "boolean"
              },
              "canRemoveMyDriveParent": {
                "description": "Output only. Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.",
                "type": "boolean"
              },
              "canRename": {
                "description": "Output only. Whether the current user can rename this file.",
                "type": "boolean"
              },
              "canShare": {
                "description": "Output only. Whether the current user can modify the sharing settings for this file.",
                "type": "boolean"
              },
              "canStartApproval": {
                "description": "Whether the current user can start an approval on the file.",
                "type": "boolean"
              },
              "canTrash": {
                "description": "Output only. Whether the current user can move this file to trash.",
                "type": "boolean"
              },
              "canTrashChildren": {
                "description": "Output only. Whether the current user can trash children of this folder. This is `false` when the item isn't a folder. Only populated for items in shared drives.",
                "type": "boolean"
              },
              "canUntrash": {
                "description": "Output only. Whether the current user can restore this file from trash.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "clientEncryptionDetails": {
            "$ref": "#/components/schemas/drive_ClientEncryptionDetails",
            "description": "Client Side Encryption related details. Contains details about the encryption state of the file and details regarding the encryption mechanism that clients need to use when decrypting the contents of this item. This will only be present on files and not on folders or shortcuts."
          },
          "contentHints": {
            "description": "Additional information about the content of the file. These fields are never populated in responses.",
            "properties": {
              "indexableText": {
                "description": "Text to be indexed for the file to improve fullText queries. This is limited to 128 KB in length and may contain HTML elements.",
                "type": "string"
              },
              "thumbnail": {
                "description": "A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.",
                "properties": {
                  "image": {
                    "description": "The thumbnail data encoded with URL-safe Base64 ([RFC 4648 section 5](https://datatracker.ietf.org/doc/html/rfc4648#section-5)).",
                    "format": "byte",
                    "type": "string"
                  },
                  "mimeType": {
                    "description": "The MIME type of the thumbnail.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "contentRestrictions": {
            "description": "Restrictions for accessing the content of the file. Only populated if such a restriction exists.",
            "items": {
              "$ref": "#/components/schemas/drive_ContentRestriction"
            },
            "type": "array"
          },
          "copyRequiresWriterPermission": {
            "description": "Whether the options to copy, print, or download this file should be disabled for readers and commenters.",
            "type": "boolean"
          },
          "createdTime": {
            "description": "The time at which the file was created (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A short description of the file.",
            "type": "string"
          },
          "downloadRestrictions": {
            "$ref": "#/components/schemas/drive_DownloadRestrictionsMetadata",
            "description": "Download restrictions applied on the file."
          },
          "driveId": {
            "description": "Output only. ID of the shared drive the file resides in. Only populated for items in shared drives.",
            "type": "string"
          },
          "explicitlyTrashed": {
            "description": "Output only. Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.",
            "type": "boolean"
          },
          "exportLinks": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Output only. Links for exporting Docs Editors files to specific formats.",
            "readOnly": true,
            "type": "object"
          },
          "fileExtension": {
            "description": "Output only. The final component of `fullFileExtension`. This is only available for files with binary content in Google Drive.",
            "type": "string"
          },
          "folderColorRgb": {
            "description": "The color for a folder or a shortcut to a folder as an RGB hex string. The supported colors are published in the `folderColorPalette` field of the [`about`](/workspace/drive/api/reference/rest/v3/about) resource. If an unsupported color is specified, the closest color in the palette is used instead.",
            "type": "string"
          },
          "fullFileExtension": {
            "description": "Output only. The full file extension extracted from the `name` field. May contain multiple concatenated extensions, such as \"tar.gz\". This is only available for files with binary content in Google Drive. This is automatically updated when the `name` field changes, however it's not cleared if the new name doesn't contain a valid extension.",
            "type": "string"
          },
          "hasAugmentedPermissions": {
            "description": "Output only. Whether there are permissions directly on this file. This field is only populated for items in shared drives.",
            "type": "boolean"
          },
          "hasThumbnail": {
            "description": "Output only. Whether this file has a thumbnail. This doesn't indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.",
            "type": "boolean"
          },
          "headRevisionId": {
            "description": "Output only. The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.",
            "type": "string"
          },
          "iconLink": {
            "description": "Output only. A static, unauthenticated link to the file's icon.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the file.",
            "type": "string"
          },
          "imageMediaMetadata": {
            "description": "Output only. Additional metadata about image media, if available.",
            "properties": {
              "aperture": {
                "description": "Output only. The aperture used to create the photo (f-number).",
                "format": "float",
                "type": "number"
              },
              "cameraMake": {
                "description": "Output only. The make of the camera used to create the photo.",
                "type": "string"
              },
              "cameraModel": {
                "description": "Output only. The model of the camera used to create the photo.",
                "type": "string"
              },
              "colorSpace": {
                "description": "Output only. The color space of the photo.",
                "type": "string"
              },
              "exposureBias": {
                "description": "Output only. The exposure bias of the photo (APEX value).",
                "format": "float",
                "type": "number"
              },
              "exposureMode": {
                "description": "Output only. The exposure mode used to create the photo.",
                "type": "string"
              },
              "exposureTime": {
                "description": "Output only. The length of the exposure, in seconds.",
                "format": "float",
                "type": "number"
              },
              "flashUsed": {
                "description": "Output only. Whether a flash was used to create the photo.",
                "type": "boolean"
              },
              "focalLength": {
                "description": "Output only. The focal length used to create the photo, in millimeters.",
                "format": "float",
                "type": "number"
              },
              "height": {
                "description": "Output only. The height of the image in pixels.",
                "format": "int32",
                "type": "integer"
              },
              "isoSpeed": {
                "description": "Output only. The ISO speed used to create the photo.",
                "format": "int32",
                "type": "integer"
              },
              "lens": {
                "description": "Output only. The lens used to create the photo.",
                "type": "string"
              },
              "location": {
                "description": "Output only. Geographic location information stored in the image.",
                "properties": {
                  "altitude": {
                    "description": "Output only. The altitude stored in the image.",
                    "format": "double",
                    "type": "number"
                  },
                  "latitude": {
                    "description": "Output only. The latitude stored in the image.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "Output only. The longitude stored in the image.",
                    "format": "double",
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "maxApertureValue": {
                "description": "Output only. The smallest f-number of the lens at the focal length used to create the photo (APEX value).",
                "format": "float",
                "type": "number"
              },
              "meteringMode": {
                "description": "Output only. The metering mode used to create the photo.",
                "type": "string"
              },
              "rotation": {
                "description": "Output only. The number of clockwise 90 degree rotations applied from the image's original orientation.",
                "format": "int32",
                "type": "integer"
              },
              "sensor": {
                "description": "Output only. The type of sensor used to create the photo.",
                "type": "string"
              },
              "subjectDistance": {
                "description": "Output only. The distance to the subject of the photo, in meters.",
                "format": "int32",
                "type": "integer"
              },
              "time": {
                "description": "Output only. The date and time the photo was taken (EXIF DateTime).",
                "type": "string"
              },
              "whiteBalance": {
                "description": "Output only. The white balance mode used to create the photo.",
                "type": "string"
              },
              "width": {
                "description": "Output only. The width of the image in pixels.",
                "format": "int32",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "inheritedPermissionsDisabled": {
            "description": "Whether this file has inherited permissions disabled. Inherited permissions are enabled by default.",
            "type": "boolean"
          },
          "isAppAuthorized": {
            "description": "Output only. Whether the file was created or opened by the requesting app.",
            "type": "boolean"
          },
          "kind": {
            "default": "drive#file",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#file\"`.",
            "type": "string"
          },
          "labelInfo": {
            "description": "Label information on the file.",
            "properties": {
              "labels": {
                "description": "Output only. The set of labels on the file as requested by the label IDs in the `includeLabels` parameter. By default, no labels are returned.",
                "items": {
                  "$ref": "#/components/schemas/drive_Label"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "lastModifyingUser": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The last user to modify the file. This field is only populated when the last modification was performed by a signed-in user."
          },
          "linkShareMetadata": {
            "description": "Contains details about the link URLs that clients are using to refer to this item.",
            "properties": {
              "securityUpdateEligible": {
                "description": "Output only. Whether the file is eligible for security update.",
                "type": "boolean"
              },
              "securityUpdateEnabled": {
                "description": "Output only. Whether the security update is enabled for this file.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "md5Checksum": {
            "description": "Output only. The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.",
            "type": "string"
          },
          "mimeType": {
            "description": "The MIME type of the file. Google Drive attempts to automatically detect an appropriate value from uploaded content, if no value is provided. The value cannot be changed unless a new revision is uploaded. If a file is created with a Google Doc MIME type, the uploaded content is imported, if possible. The supported import formats are published in the [`about`](/workspace/drive/api/reference/rest/v3/about) resource.",
            "type": "string"
          },
          "modifiedByMe": {
            "description": "Output only. Whether the file has been modified by this user.",
            "type": "boolean"
          },
          "modifiedByMeTime": {
            "description": "The last time the file was modified by the user (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "modifiedTime": {
            "description": "he last time the file was modified by anyone (RFC 3339 date-time). Note that setting modifiedTime will also update modifiedByMeTime for the user.",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "description": "The name of the file. This isn't necessarily unique within a folder. Note that for immutable items such as the top-level folders of shared drives, the My Drive root folder, and the Application Data folder, the name is constant.",
            "type": "string"
          },
          "originalFilename": {
            "description": "The original filename of the uploaded content if available, or else the original value of the `name` field. This is only available for files with binary content in Google Drive.",
            "type": "string"
          },
          "ownedByMe": {
            "description": "Output only. Whether the user owns the file. Not populated for items in shared drives.",
            "type": "boolean"
          },
          "owners": {
            "description": "Output only. The owner of this file. Only certain legacy files may have more than one owner. This field isn't populated for items in shared drives.",
            "items": {
              "$ref": "#/components/schemas/drive_User"
            },
            "type": "array"
          },
          "parents": {
            "description": "The ID of the parent folder containing the file. A file can only have one parent folder; specifying multiple parents isn't supported. If not specified as part of a create request, the file is placed directly in the user's My Drive folder. If not specified as part of a copy request, the file inherits any discoverable parent of the source file. Update requests must use the `addParents` and `removeParents` parameters to modify the parents list.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "permissionIds": {
            "description": "Output only. List of permission IDs for users with access to this file.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "permissions": {
            "description": "Output only. The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.",
            "items": {
              "$ref": "#/components/schemas/drive_Permission"
            },
            "type": "array"
          },
          "properties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A collection of arbitrary key-value pairs which are visible to all apps.\nEntries with null values are cleared in update and copy requests.",
            "type": "object"
          },
          "quotaBytesUsed": {
            "description": "Output only. The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with `keepForever` enabled.",
            "format": "int64",
            "type": "string"
          },
          "resourceKey": {
            "description": "Output only. A key needed to access the item via a shared link.",
            "type": "string"
          },
          "sha1Checksum": {
            "description": "Output only. The SHA1 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it's not populated for Docs Editors or shortcut files.",
            "type": "string"
          },
          "sha256Checksum": {
            "description": "Output only. The SHA256 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it's not populated for Docs Editors or shortcut files.",
            "type": "string"
          },
          "shared": {
            "description": "Output only. Whether the file has been shared. Not populated for items in shared drives.",
            "type": "boolean"
          },
          "sharedWithMeTime": {
            "description": "The time at which the file was shared with the user, if applicable (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "sharingUser": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The user who shared the file with the requesting user, if applicable."
          },
          "shortcutDetails": {
            "description": "Information about a shortcut file.",
            "properties": {
              "targetId": {
                "description": "The ID of the file that this shortcut points to. Can only be set on `files.create` requests.",
                "type": "string"
              },
              "targetMimeType": {
                "description": "Output only. The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target's MIME type, captured when the shortcut is created.",
                "type": "string"
              },
              "targetResourceKey": {
                "description": "Output only. The `resourceKey` for the target file.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "size": {
            "description": "Output only. Size in bytes of blobs and Google Workspace editor files. Won't be populated for files that have no size, like shortcuts and folders.",
            "format": "int64",
            "type": "string"
          },
          "spaces": {
            "description": "Output only. The list of spaces which contain the file. The currently supported values are `drive`, `appDataFolder`, and `photos`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "starred": {
            "description": "Whether the user has starred the file.",
            "type": "boolean"
          },
          "teamDriveId": {
            "description": "Deprecated: Output only. Use `driveId` instead.",
            "type": "string"
          },
          "thumbnailLink": {
            "description": "Output only. A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Not intended for direct usage on web applications due to [Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies. Consider using a proxy server. Only populated when the requesting app can access the file's content. If the file isn't shared publicly, the URL returned in `files.thumbnailLink` must be fetched using a credentialed request.",
            "type": "string"
          },
          "thumbnailVersion": {
            "description": "Output only. The thumbnail version for use in thumbnail cache invalidation.",
            "format": "int64",
            "type": "string"
          },
          "trashed": {
            "description": "Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, but other users can still access the file in the owner's trash until it's permanently deleted.",
            "type": "boolean"
          },
          "trashedTime": {
            "description": "The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.",
            "format": "date-time",
            "type": "string"
          },
          "trashingUser": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives."
          },
          "version": {
            "description": "Output only. A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.",
            "format": "int64",
            "type": "string"
          },
          "videoMediaMetadata": {
            "description": "Output only. Additional metadata about video media. This may not be available immediately upon upload.",
            "properties": {
              "durationMillis": {
                "description": "Output only. The duration of the video in milliseconds.",
                "format": "int64",
                "type": "string"
              },
              "height": {
                "description": "Output only. The height of the video in pixels.",
                "format": "int32",
                "type": "integer"
              },
              "width": {
                "description": "Output only. The width of the video in pixels.",
                "format": "int32",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "viewedByMe": {
            "description": "Output only. Whether the file has been viewed by this user.",
            "type": "boolean"
          },
          "viewedByMeTime": {
            "description": "The last time the file was viewed by the user (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "viewersCanCopyContent": {
            "description": "Deprecated: Use `copyRequiresWriterPermission` instead.",
            "type": "boolean"
          },
          "webContentLink": {
            "description": "Output only. A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.",
            "type": "string"
          },
          "webViewLink": {
            "description": "Output only. A link for opening the file in a relevant Google editor or viewer in a browser.",
            "type": "string"
          },
          "writersCanShare": {
            "description": "Whether users with only `writer` permission can modify the file's permissions. Not populated for items in shared drives.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "drive_FileList": {
        "description": "A list of files.",
        "properties": {
          "files": {
            "description": "The list of files. If `nextPageToken` is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_File"
            },
            "type": "array"
          },
          "incompleteSearch": {
            "description": "Whether the search process was incomplete. If true, then some search results might be missing, since all documents were not searched. This can occur when searching multiple drives with the `allDrives` corpora, but all corpora couldn't be searched. When this happens, it's suggested that clients narrow their query by choosing a different corpus such as `user` or `drive`.",
            "type": "boolean"
          },
          "kind": {
            "default": "drive#fileList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#fileList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of files. This will be absent if the end of the files list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_FileList_drive_permissions_create": {
        "description": "A list of files.",
        "properties": {
          "files": {
            "description": "The list of files. If `nextPageToken` is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_File_drive_permissions_create"
            },
            "type": "array"
          },
          "incompleteSearch": {
            "description": "Whether the search process was incomplete. If true, then some search results might be missing, since all documents were not searched. This can occur when searching multiple drives with the `allDrives` corpora, but all corpora couldn't be searched. When this happens, it's suggested that clients narrow their query by choosing a different corpus such as `user` or `drive`.",
            "type": "boolean"
          },
          "kind": {
            "default": "drive#fileList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#fileList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of files. This will be absent if the end of the files list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_File_drive_permissions_create": {
        "description": "The metadata for a file. Some resource methods (such as `files.update`) require a `fileId`. Use the `files.list` method to retrieve the ID for a file.",
        "properties": {
          "appProperties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A collection of arbitrary key-value pairs which are private to the requesting app.\nEntries with null values are cleared in update and copy requests. These properties can only be retrieved using an authenticated request. An authenticated request uses an access token obtained with a OAuth 2 client ID. You cannot use an API key to retrieve private properties.",
            "type": "object"
          },
          "capabilities": {
            "description": "Output only. Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take. For more information, see [Understand file capabilities](https://developers.google.com/workspace/drive/api/guides/manage-sharing#capabilities).",
            "properties": {
              "canAcceptOwnership": {
                "description": "Output only. Whether the current user is the pending owner of the file. Not populated for shared drive files.",
                "type": "boolean"
              },
              "canAccessViaGenAi": {
                "description": "Whether the current user can access this file via Gen AI features. For more information, see [Drive MCP file eligibility](https://developers.google.com/workspace/drive/api/guides/drive-mcp-server-file-eligibility).",
                "type": "boolean"
              },
              "canAddChildren": {
                "description": "Output only. Whether the current user can add children to this folder. This is always `false` when the item isn't a folder.",
                "type": "boolean"
              },
              "canAddFolderFromAnotherDrive": {
                "description": "Output only. Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is `false` when the item isn't a folder. Only populated for items in shared drives.",
                "type": "boolean"
              },
              "canAddMyDriveParent": {
                "description": "Output only. Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.",
                "type": "boolean"
              },
              "canChangeCopyRequiresWriterPermission": {
                "description": "Output only. Whether the current user can change the `copyRequiresWriterPermission` restriction of this file.",
                "type": "boolean"
              },
              "canChangeItemDownloadRestriction": {
                "description": "Output only. Whether the current user can change the owner or organizer-applied download restrictions of the file.",
                "type": "boolean"
              },
              "canChangeSecurityUpdateEnabled": {
                "description": "Output only. Whether the current user can change the `securityUpdateEnabled` field on link share metadata.",
                "type": "boolean"
              },
              "canChangeViewersCanCopyContent": {
                "description": "Deprecated: Output only.",
                "type": "boolean"
              },
              "canComment": {
                "description": "Output only. Whether the current user can comment on this file.",
                "type": "boolean"
              },
              "canCopy": {
                "description": "Output only. Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item if it's not a folder.",
                "type": "boolean"
              },
              "canDelete": {
                "description": "Output only. Whether the current user can delete this file.",
                "type": "boolean"
              },
              "canDeleteChildren": {
                "description": "Output only. Whether the current user can delete children of this folder. This is `false` when the item isn't a folder. Only populated for items in shared drives.",
                "type": "boolean"
              },
              "canDisableInheritedPermissions": {
                "description": "Whether a user can disable inherited permissions.",
                "type": "boolean"
              },
              "canDownload": {
                "description": "Output only. Whether the current user can download this file.",
                "type": "boolean"
              },
              "canEdit": {
                "description": "Output only. Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see `canChangeCopyRequiresWriterPermission` or `canModifyContent`.",
                "type": "boolean"
              },
              "canEnableInheritedPermissions": {
                "description": "Whether a user can re-enable inherited permissions.",
                "type": "boolean"
              },
              "canListChildren": {
                "description": "Output only. Whether the current user can list the children of this folder. This is always `false` when the item isn't a folder.",
                "type": "boolean"
              },
              "canModifyContent": {
                "description": "Output only. Whether the current user can modify the content of this file.",
                "type": "boolean"
              },
              "canModifyContentRestriction": {
                "description": "Deprecated: Output only. Use one of `canModifyEditorContentRestriction`, `canModifyOwnerContentRestriction`, or `canRemoveContentRestriction`.",
                "type": "boolean"
              },
              "canModifyEditorContentRestriction": {
                "description": "Output only. Whether the current user can add or modify content restrictions on the file which are editor restricted.",
                "type": "boolean"
              },
              "canModifyLabels": {
                "description": "Output only. Whether the current user can modify the labels on the file.",
                "type": "boolean"
              },
              "canModifyOwnerContentRestriction": {
                "description": "Output only. Whether the current user can add or modify content restrictions which are owner restricted.",
                "type": "boolean"
              },
              "canMoveChildrenOutOfDrive": {
                "description": "Output only. Whether the current user can move children of this folder outside of the shared drive. This is `false` when the item isn't a folder. Only populated for items in shared drives.",
                "type": "boolean"
              },
              "canMoveChildrenOutOfTeamDrive": {
                "description": "Deprecated: Output only. Use `canMoveChildrenOutOfDrive` instead.",
                "type": "boolean"
              },
              "canMoveChildrenWithinDrive": {
                "description": "Output only. Whether the current user can move children of this folder within this drive. This is `false` when the item isn't a folder. Note that a request to move the child may still fail depending on the current user's access to the child and to the destination folder.",
                "type": "boolean"
              },
              "canMoveChildrenWithinTeamDrive": {
                "description": "Deprecated: Output only. Use `canMoveChildrenWithinDrive` instead.",
                "type": "boolean"
              },
              "canMoveItemIntoTeamDrive": {
                "description": "Deprecated: Output only. Use `canMoveItemOutOfDrive` instead.",
                "type": "boolean"
              },
              "canMoveItemOutOfDrive": {
                "description": "Output only. Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that's being added.",
                "type": "boolean"
              },
              "canMoveItemOutOfTeamDrive": {
                "description": "Deprecated: Output only. Use `canMoveItemOutOfDrive` instead.",
                "type": "boolean"
              },
              "canMoveItemWithinDrive": {
                "description": "Output only. Whether the current user can move this item within this drive. Note that a request to change the parent of the item may still fail depending on the new parent that's being added and the parent that is being removed.",
                "type": "boolean"
              },
              "canMoveItemWithinTeamDrive": {
                "description": "Deprecated: Output only. Use `canMoveItemWithinDrive` instead.",
                "type": "boolean"
              },
              "canMoveTeamDriveItem": {
                "description": "Deprecated: Output only. Use `canMoveItemWithinDrive` or `canMoveItemOutOfDrive` instead.",
                "type": "boolean"
              },
              "canReadDrive": {
                "description": "Output only. Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.",
                "type": "boolean"
              },
              "canReadLabels": {
                "description": "Output only. Whether the current user can read the labels on the file.",
                "type": "boolean"
              },
              "canReadRevisions": {
                "description": "Output only. Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item if it's not a folder, can be read.",
                "type": "boolean"
              },
              "canReadTeamDrive": {
                "description": "Deprecated: Output only. Use `canReadDrive` instead.",
                "type": "boolean"
              },
              "canRemoveChildren": {
                "description": "Output only. Whether the current user can remove children from this folder. This is always `false` when the item isn't a folder. For a folder in a shared drive, use `canDeleteChildren` or `canTrashChildren` instead.",
                "type": "boolean"
              },
              "canRemoveContentRestriction": {
                "description": "Output only. Whether there's a content restriction on the file that can be removed by the current user.",
                "type": "boolean"
              },
              "canRemoveMyDriveParent": {
                "description": "Output only. Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.",
                "type": "boolean"
              },
              "canRename": {
                "description": "Output only. Whether the current user can rename this file.",
                "type": "boolean"
              },
              "canShare": {
                "description": "Output only. Whether the current user can modify the sharing settings for this file.",
                "type": "boolean"
              },
              "canStartApproval": {
                "description": "Whether the current user can start an approval on the file.",
                "type": "boolean"
              },
              "canTrash": {
                "description": "Output only. Whether the current user can move this file to trash.",
                "type": "boolean"
              },
              "canTrashChildren": {
                "description": "Output only. Whether the current user can trash children of this folder. This is `false` when the item isn't a folder. Only populated for items in shared drives.",
                "type": "boolean"
              },
              "canUntrash": {
                "description": "Output only. Whether the current user can restore this file from trash.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "clientEncryptionDetails": {
            "$ref": "#/components/schemas/drive_ClientEncryptionDetails",
            "description": "Client Side Encryption related details. Contains details about the encryption state of the file and details regarding the encryption mechanism that clients need to use when decrypting the contents of this item. This will only be present on files and not on folders or shortcuts."
          },
          "contentHints": {
            "description": "Additional information about the content of the file. These fields are never populated in responses.",
            "properties": {
              "indexableText": {
                "description": "Text to be indexed for the file to improve fullText queries. This is limited to 128 KB in length and may contain HTML elements.",
                "type": "string"
              },
              "thumbnail": {
                "description": "A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.",
                "properties": {
                  "image": {
                    "description": "The thumbnail data encoded with URL-safe Base64 ([RFC 4648 section 5](https://datatracker.ietf.org/doc/html/rfc4648#section-5)).",
                    "format": "byte",
                    "type": "string"
                  },
                  "mimeType": {
                    "description": "The MIME type of the thumbnail.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "contentRestrictions": {
            "description": "Restrictions for accessing the content of the file. Only populated if such a restriction exists.",
            "items": {
              "$ref": "#/components/schemas/drive_ContentRestriction"
            },
            "type": "array"
          },
          "copyRequiresWriterPermission": {
            "description": "Whether the options to copy, print, or download this file should be disabled for readers and commenters.",
            "type": "boolean"
          },
          "createdTime": {
            "description": "The time at which the file was created (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A short description of the file.",
            "type": "string"
          },
          "downloadRestrictions": {
            "$ref": "#/components/schemas/drive_DownloadRestrictionsMetadata",
            "description": "Download restrictions applied on the file."
          },
          "driveId": {
            "description": "Output only. ID of the shared drive the file resides in. Only populated for items in shared drives.",
            "type": "string"
          },
          "explicitlyTrashed": {
            "description": "Output only. Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.",
            "type": "boolean"
          },
          "exportLinks": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Output only. Links for exporting Docs Editors files to specific formats.",
            "readOnly": true,
            "type": "object"
          },
          "fileExtension": {
            "description": "Output only. The final component of `fullFileExtension`. This is only available for files with binary content in Google Drive.",
            "type": "string"
          },
          "folderColorRgb": {
            "description": "The color for a folder or a shortcut to a folder as an RGB hex string. The supported colors are published in the `folderColorPalette` field of the [`about`](/workspace/drive/api/reference/rest/v3/about) resource. If an unsupported color is specified, the closest color in the palette is used instead.",
            "type": "string"
          },
          "fullFileExtension": {
            "description": "Output only. The full file extension extracted from the `name` field. May contain multiple concatenated extensions, such as \"tar.gz\". This is only available for files with binary content in Google Drive. This is automatically updated when the `name` field changes, however it's not cleared if the new name doesn't contain a valid extension.",
            "type": "string"
          },
          "hasAugmentedPermissions": {
            "description": "Output only. Whether there are permissions directly on this file. This field is only populated for items in shared drives.",
            "type": "boolean"
          },
          "hasThumbnail": {
            "description": "Output only. Whether this file has a thumbnail. This doesn't indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.",
            "type": "boolean"
          },
          "headRevisionId": {
            "description": "Output only. The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.",
            "type": "string"
          },
          "iconLink": {
            "description": "Output only. A static, unauthenticated link to the file's icon.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the file.",
            "type": "string"
          },
          "imageMediaMetadata": {
            "description": "Output only. Additional metadata about image media, if available.",
            "properties": {
              "aperture": {
                "description": "Output only. The aperture used to create the photo (f-number).",
                "format": "float",
                "type": "number"
              },
              "cameraMake": {
                "description": "Output only. The make of the camera used to create the photo.",
                "type": "string"
              },
              "cameraModel": {
                "description": "Output only. The model of the camera used to create the photo.",
                "type": "string"
              },
              "colorSpace": {
                "description": "Output only. The color space of the photo.",
                "type": "string"
              },
              "exposureBias": {
                "description": "Output only. The exposure bias of the photo (APEX value).",
                "format": "float",
                "type": "number"
              },
              "exposureMode": {
                "description": "Output only. The exposure mode used to create the photo.",
                "type": "string"
              },
              "exposureTime": {
                "description": "Output only. The length of the exposure, in seconds.",
                "format": "float",
                "type": "number"
              },
              "flashUsed": {
                "description": "Output only. Whether a flash was used to create the photo.",
                "type": "boolean"
              },
              "focalLength": {
                "description": "Output only. The focal length used to create the photo, in millimeters.",
                "format": "float",
                "type": "number"
              },
              "height": {
                "description": "Output only. The height of the image in pixels.",
                "format": "int32",
                "type": "integer"
              },
              "isoSpeed": {
                "description": "Output only. The ISO speed used to create the photo.",
                "format": "int32",
                "type": "integer"
              },
              "lens": {
                "description": "Output only. The lens used to create the photo.",
                "type": "string"
              },
              "location": {
                "description": "Output only. Geographic location information stored in the image.",
                "properties": {
                  "altitude": {
                    "description": "Output only. The altitude stored in the image.",
                    "format": "double",
                    "type": "number"
                  },
                  "latitude": {
                    "description": "Output only. The latitude stored in the image.",
                    "format": "double",
                    "type": "number"
                  },
                  "longitude": {
                    "description": "Output only. The longitude stored in the image.",
                    "format": "double",
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "maxApertureValue": {
                "description": "Output only. The smallest f-number of the lens at the focal length used to create the photo (APEX value).",
                "format": "float",
                "type": "number"
              },
              "meteringMode": {
                "description": "Output only. The metering mode used to create the photo.",
                "type": "string"
              },
              "rotation": {
                "description": "Output only. The number of clockwise 90 degree rotations applied from the image's original orientation.",
                "format": "int32",
                "type": "integer"
              },
              "sensor": {
                "description": "Output only. The type of sensor used to create the photo.",
                "type": "string"
              },
              "subjectDistance": {
                "description": "Output only. The distance to the subject of the photo, in meters.",
                "format": "int32",
                "type": "integer"
              },
              "time": {
                "description": "Output only. The date and time the photo was taken (EXIF DateTime).",
                "type": "string"
              },
              "whiteBalance": {
                "description": "Output only. The white balance mode used to create the photo.",
                "type": "string"
              },
              "width": {
                "description": "Output only. The width of the image in pixels.",
                "format": "int32",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "inheritedPermissionsDisabled": {
            "description": "Whether this file has inherited permissions disabled. Inherited permissions are enabled by default.",
            "type": "boolean"
          },
          "isAppAuthorized": {
            "description": "Output only. Whether the file was created or opened by the requesting app.",
            "type": "boolean"
          },
          "kind": {
            "default": "drive#file",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#file\"`.",
            "type": "string"
          },
          "labelInfo": {
            "description": "Label information on the file.",
            "properties": {
              "labels": {
                "description": "Output only. The set of labels on the file as requested by the label IDs in the `includeLabels` parameter. By default, no labels are returned.",
                "items": {
                  "$ref": "#/components/schemas/drive_Label"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "lastModifyingUser": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The last user to modify the file. This field is only populated when the last modification was performed by a signed-in user."
          },
          "linkShareMetadata": {
            "description": "Contains details about the link URLs that clients are using to refer to this item.",
            "properties": {
              "securityUpdateEligible": {
                "description": "Output only. Whether the file is eligible for security update.",
                "type": "boolean"
              },
              "securityUpdateEnabled": {
                "description": "Output only. Whether the security update is enabled for this file.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "md5Checksum": {
            "description": "Output only. The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.",
            "type": "string"
          },
          "mimeType": {
            "description": "The MIME type of the file. Google Drive attempts to automatically detect an appropriate value from uploaded content, if no value is provided. The value cannot be changed unless a new revision is uploaded. If a file is created with a Google Doc MIME type, the uploaded content is imported, if possible. The supported import formats are published in the [`about`](/workspace/drive/api/reference/rest/v3/about) resource.",
            "type": "string"
          },
          "modifiedByMe": {
            "description": "Output only. Whether the file has been modified by this user.",
            "type": "boolean"
          },
          "modifiedByMeTime": {
            "description": "The last time the file was modified by the user (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "modifiedTime": {
            "description": "he last time the file was modified by anyone (RFC 3339 date-time). Note that setting modifiedTime will also update modifiedByMeTime for the user.",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "description": "The name of the file. This isn't necessarily unique within a folder. Note that for immutable items such as the top-level folders of shared drives, the My Drive root folder, and the Application Data folder, the name is constant.",
            "type": "string"
          },
          "originalFilename": {
            "description": "The original filename of the uploaded content if available, or else the original value of the `name` field. This is only available for files with binary content in Google Drive.",
            "type": "string"
          },
          "ownedByMe": {
            "description": "Output only. Whether the user owns the file. Not populated for items in shared drives.",
            "type": "boolean"
          },
          "owners": {
            "description": "Output only. The owner of this file. Only certain legacy files may have more than one owner. This field isn't populated for items in shared drives.",
            "items": {
              "$ref": "#/components/schemas/drive_User"
            },
            "type": "array"
          },
          "parents": {
            "description": "The ID of the parent folder containing the file. A file can only have one parent folder; specifying multiple parents isn't supported. If not specified as part of a create request, the file is placed directly in the user's My Drive folder. If not specified as part of a copy request, the file inherits any discoverable parent of the source file. Update requests must use the `addParents` and `removeParents` parameters to modify the parents list.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "permissionIds": {
            "description": "Output only. List of permission IDs for users with access to this file.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "permissions": {
            "description": "Output only. The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.",
            "items": {
              "$ref": "#/components/schemas/drive_Permission_drive_permissions_create"
            },
            "type": "array"
          },
          "properties": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "A collection of arbitrary key-value pairs which are visible to all apps.\nEntries with null values are cleared in update and copy requests.",
            "type": "object"
          },
          "quotaBytesUsed": {
            "description": "Output only. The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with `keepForever` enabled.",
            "format": "int64",
            "type": "string"
          },
          "resourceKey": {
            "description": "Output only. A key needed to access the item via a shared link.",
            "type": "string"
          },
          "sha1Checksum": {
            "description": "Output only. The SHA1 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it's not populated for Docs Editors or shortcut files.",
            "type": "string"
          },
          "sha256Checksum": {
            "description": "Output only. The SHA256 checksum associated with this file, if available. This field is only populated for files with content stored in Google Drive; it's not populated for Docs Editors or shortcut files.",
            "type": "string"
          },
          "shared": {
            "description": "Output only. Whether the file has been shared. Not populated for items in shared drives.",
            "type": "boolean"
          },
          "sharedWithMeTime": {
            "description": "The time at which the file was shared with the user, if applicable (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "sharingUser": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The user who shared the file with the requesting user, if applicable."
          },
          "shortcutDetails": {
            "description": "Information about a shortcut file.",
            "properties": {
              "targetId": {
                "description": "The ID of the file that this shortcut points to. Can only be set on `files.create` requests.",
                "type": "string"
              },
              "targetMimeType": {
                "description": "Output only. The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target's MIME type, captured when the shortcut is created.",
                "type": "string"
              },
              "targetResourceKey": {
                "description": "Output only. The `resourceKey` for the target file.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "size": {
            "description": "Output only. Size in bytes of blobs and Google Workspace editor files. Won't be populated for files that have no size, like shortcuts and folders.",
            "format": "int64",
            "type": "string"
          },
          "spaces": {
            "description": "Output only. The list of spaces which contain the file. The currently supported values are `drive`, `appDataFolder`, and `photos`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "starred": {
            "description": "Whether the user has starred the file.",
            "type": "boolean"
          },
          "teamDriveId": {
            "description": "Deprecated: Output only. Use `driveId` instead.",
            "type": "string"
          },
          "thumbnailLink": {
            "description": "Output only. A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Not intended for direct usage on web applications due to [Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) policies. Consider using a proxy server. Only populated when the requesting app can access the file's content. If the file isn't shared publicly, the URL returned in `files.thumbnailLink` must be fetched using a credentialed request.",
            "type": "string"
          },
          "thumbnailVersion": {
            "description": "Output only. The thumbnail version for use in thumbnail cache invalidation.",
            "format": "int64",
            "type": "string"
          },
          "trashed": {
            "description": "Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, but other users can still access the file in the owner's trash until it's permanently deleted.",
            "type": "boolean"
          },
          "trashedTime": {
            "description": "The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.",
            "format": "date-time",
            "type": "string"
          },
          "trashingUser": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives."
          },
          "version": {
            "description": "Output only. A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.",
            "format": "int64",
            "type": "string"
          },
          "videoMediaMetadata": {
            "description": "Output only. Additional metadata about video media. This may not be available immediately upon upload.",
            "properties": {
              "durationMillis": {
                "description": "Output only. The duration of the video in milliseconds.",
                "format": "int64",
                "type": "string"
              },
              "height": {
                "description": "Output only. The height of the video in pixels.",
                "format": "int32",
                "type": "integer"
              },
              "width": {
                "description": "Output only. The width of the video in pixels.",
                "format": "int32",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "viewedByMe": {
            "description": "Output only. Whether the file has been viewed by this user.",
            "type": "boolean"
          },
          "viewedByMeTime": {
            "description": "The last time the file was viewed by the user (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "viewersCanCopyContent": {
            "description": "Deprecated: Use `copyRequiresWriterPermission` instead.",
            "type": "boolean"
          },
          "webContentLink": {
            "description": "Output only. A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.",
            "type": "string"
          },
          "webViewLink": {
            "description": "Output only. A link for opening the file in a relevant Google editor or viewer in a browser.",
            "type": "string"
          },
          "writersCanShare": {
            "description": "Whether users with only `writer` permission can modify the file's permissions. Not populated for items in shared drives.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "drive_GenerateCseTokenResponse": {
        "description": "JWT and associated metadata used to generate CSE files.",
        "properties": {
          "currentKaclsId": {
            "description": "The current Key ACL Service (KACLS) ID associated with the JWT.",
            "format": "int64",
            "type": "string"
          },
          "currentKaclsName": {
            "description": "Name of the KACLs that the returned KACLs ID points to.",
            "type": "string"
          },
          "fileId": {
            "description": "The fileId for which the JWT was generated.",
            "type": "string"
          },
          "jwt": {
            "description": "The signed JSON Web Token (JWT) for the file.",
            "type": "string"
          },
          "kind": {
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#generateCseTokenResponse\"`.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_GeneratedIds": {
        "description": "A list of generated file IDs which can be provided in create requests.",
        "properties": {
          "ids": {
            "description": "The IDs generated for the requesting user in the specified space.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "kind": {
            "default": "drive#generatedIds",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#generatedIds\"`.",
            "type": "string"
          },
          "space": {
            "description": "The type of file that can be created with these IDs.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_Label": {
        "description": "Representation of label and label fields.",
        "properties": {
          "fields": {
            "additionalProperties": {
              "$ref": "#/components/schemas/drive_LabelField"
            },
            "description": "A map of the fields on the label, keyed by the field's ID.",
            "type": "object"
          },
          "id": {
            "description": "The ID of the label.",
            "type": "string"
          },
          "kind": {
            "description": "This is always drive#label",
            "type": "string"
          },
          "revisionId": {
            "description": "The revision ID of the label.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_LabelField": {
        "description": "Representation of field, which is a typed key-value pair.",
        "properties": {
          "dateString": {
            "description": "Only present if valueType is dateString. RFC 3339 formatted date: YYYY-MM-DD.",
            "items": {
              "format": "date",
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The identifier of this label field.",
            "type": "string"
          },
          "integer": {
            "description": "Only present if `valueType` is `integer`.",
            "items": {
              "format": "int64",
              "type": "string"
            },
            "type": "array"
          },
          "kind": {
            "description": "This is always drive#labelField.",
            "type": "string"
          },
          "selection": {
            "description": "Only present if `valueType` is `selection`",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "text": {
            "description": "Only present if `valueType` is `text`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "user": {
            "description": "Only present if `valueType` is `user`.",
            "items": {
              "$ref": "#/components/schemas/drive_User"
            },
            "type": "array"
          },
          "valueType": {
            "description": "The field type. While new values may be supported in the future, the following are currently allowed: * `dateString` * `integer` * `selection` * `text` * `user`",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_LabelFieldModification": {
        "description": "A modification to a label's field.",
        "properties": {
          "fieldId": {
            "description": "The ID of the field to be modified.",
            "type": "string"
          },
          "kind": {
            "description": "This is always `\"drive#labelFieldModification\"`.",
            "type": "string"
          },
          "setDateValues": {
            "description": "Replaces the value of a dateString Field with these new values. The string must be in the RFC 3339 full-date format: YYYY-MM-DD.",
            "items": {
              "format": "date",
              "type": "string"
            },
            "type": "array"
          },
          "setIntegerValues": {
            "description": "Replaces the value of an `integer` field with these new values.",
            "items": {
              "format": "int64",
              "type": "string"
            },
            "type": "array"
          },
          "setSelectionValues": {
            "description": "Replaces a `selection` field with these new values.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "setTextValues": {
            "description": "Sets the value of a `text` field.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "setUserValues": {
            "description": "Replaces a `user` field with these new values. The values must be a valid email addresses.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "unsetValues": {
            "description": "Unsets the values for this field.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "drive_LabelList": {
        "description": "A list of labels applied to a file.",
        "properties": {
          "kind": {
            "description": "This is always `\"drive#labelList\"`.",
            "type": "string"
          },
          "labels": {
            "description": "The list of labels.",
            "items": {
              "$ref": "#/components/schemas/drive_Label"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "The page token for the next page of labels. This field will be absent if the end of the list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_LabelModification": {
        "description": "A modification to a label on a file. A `LabelModification` can be used to apply a label to a file, update an existing label on a file, or remove a label from a file.",
        "properties": {
          "fieldModifications": {
            "description": "The list of modifications to this label's fields.",
            "items": {
              "$ref": "#/components/schemas/drive_LabelFieldModification"
            },
            "type": "array"
          },
          "kind": {
            "description": "This is always `\"drive#labelModification\"`.",
            "type": "string"
          },
          "labelId": {
            "description": "The ID of the label to modify.",
            "type": "string"
          },
          "removeLabel": {
            "description": "If true, the label will be removed from the file.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "drive_LabelModification_drive_files_modifyLabels": {
        "description": "A modification to a label on a file. A `LabelModification` can be used to apply a label to a file, update an existing label on a file, or remove a label from a file.",
        "properties": {
          "fieldModifications": {
            "description": "The list of modifications to this label's fields.",
            "items": {
              "$ref": "#/components/schemas/drive_LabelFieldModification"
            },
            "type": "array"
          },
          "kind": {
            "description": "This is always `\"drive#labelModification\"`.",
            "type": "string"
          },
          "labelId": {
            "description": "The ID of the label to modify.",
            "type": "string"
          },
          "removeLabel": {
            "description": "If true, the label will be removed from the file.",
            "type": "boolean"
          }
        },
        "required": [
          "labelId"
        ],
        "type": "object"
      },
      "drive_ListAccessProposalsResponse": {
        "description": "The response to an access proposal list request.",
        "properties": {
          "accessProposals": {
            "description": "The list of access proposals. This field is only populated in Drive API v3.",
            "items": {
              "$ref": "#/components/schemas/drive_AccessProposal"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "The continuation token for the next page of results. This will be absent if the end of the results list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_ModifyLabelsRequest": {
        "description": "A request to modify the set of labels on a file. This request may contain many modifications that will either all succeed or all fail atomically.",
        "properties": {
          "kind": {
            "description": "This is always `\"drive#modifyLabelsRequest\"`.",
            "type": "string"
          },
          "labelModifications": {
            "description": "The list of modifications to apply to the labels on the file.",
            "items": {
              "$ref": "#/components/schemas/drive_LabelModification"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_ModifyLabelsRequest_drive_files_modifyLabels": {
        "description": "A request to modify the set of labels on a file. This request may contain many modifications that will either all succeed or all fail atomically.",
        "properties": {
          "kind": {
            "description": "This is always `\"drive#modifyLabelsRequest\"`.",
            "type": "string"
          },
          "labelModifications": {
            "description": "The list of modifications to apply to the labels on the file.",
            "items": {
              "$ref": "#/components/schemas/drive_LabelModification_drive_files_modifyLabels"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_ModifyLabelsResponse": {
        "description": "Response to a `ModifyLabels` request. This contains only those labels which were added or updated by the request.",
        "properties": {
          "kind": {
            "description": "This is always `\"drive#modifyLabelsResponse\"`.",
            "type": "string"
          },
          "modifiedLabels": {
            "description": "The list of labels which were added or updated by the request.",
            "items": {
              "$ref": "#/components/schemas/drive_Label"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_Operation": {
        "description": "This resource represents a long-running operation that is the result of a network API call.",
        "properties": {
          "done": {
            "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
            "type": "boolean"
          },
          "error": {
            "$ref": "#/components/schemas/drive_Status",
            "description": "The error result of the operation in case of failure or cancellation."
          },
          "metadata": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL."
            },
            "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
            "type": "object"
          },
          "name": {
            "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
            "type": "string"
          },
          "response": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL."
            },
            "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "drive_Permission": {
        "description": "A permission for a file. A permission grants a user, group, domain, or the world access to a file or a folder hierarchy. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing). By default, permission requests only return a subset of fields. Permission `kind`, `ID`, `type`, and `role` are always returned. To retrieve specific fields, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter). Some resource methods (such as `permissions.update`) require a `permissionId`. Use the `permissions.list` method to retrieve the ID for a file, folder, or shared drive.",
        "properties": {
          "allowFileDiscovery": {
            "description": "Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type `domain` or `anyone`.",
            "type": "boolean"
          },
          "deleted": {
            "description": "Output only. Whether the account associated with this permission has been deleted. This field only pertains to permissions of type `user` or `group`.",
            "type": "boolean"
          },
          "displayName": {
            "description": "Output only. The \"pretty\" name of the value of the permission. The following is a list of examples for each type of permission: * `user` - User's full name, as defined for their Google Account, such as \"Dana A.\" * `group` - Name of the Google Group, such as \"The Company Administrators.\" * `domain` - String domain name, such as \"cymbalgroup.com.\" * `anyone` - No `displayName` is present.",
            "type": "string"
          },
          "domain": {
            "description": "Output only. The domain to which this permission refers.",
            "readOnly": true,
            "type": "string"
          },
          "emailAddress": {
            "description": "Output only. The email address of the user or group to which this permission refers.",
            "readOnly": true,
            "type": "string"
          },
          "expirationTime": {
            "description": "The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions: - They can only be set on user and group permissions - The time must be in the future - The time cannot be more than a year in the future",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "Output only. The ID of this permission. This is a unique identifier for the grantee, and is published in the [User resource](https://developers.google.com/workspace/drive/api/reference/rest/v3/User) as `permissionId`. IDs should be treated as opaque values.",
            "type": "string"
          },
          "inheritedPermissionsDisabled": {
            "description": "When `true`, only organizers, owners, and users with permissions added directly on the item can access it.",
            "type": "boolean"
          },
          "kind": {
            "default": "drive#permission",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#permission\"`.",
            "type": "string"
          },
          "pendingOwner": {
            "description": "Whether the account associated with this permission is a pending owner. Only populated for permissions of type `user` for files that aren't in a shared drive.",
            "type": "boolean"
          },
          "permissionDetails": {
            "description": "Output only. Details of whether the permissions on this item are inherited or are directly on this item.",
            "items": {
              "properties": {
                "inherited": {
                  "description": "Output only. Whether this permission is inherited. This field is always populated. This is an output-only field.",
                  "type": "boolean"
                },
                "inheritedFrom": {
                  "description": "Output only. The ID of the item from which this permission is inherited. This is only populated for items in shared drives.",
                  "readOnly": true,
                  "type": "string"
                },
                "permissionType": {
                  "description": "Output only. The permission type for this user. Supported values include: * `file` * `member`",
                  "type": "string"
                },
                "role": {
                  "description": "Output only. The primary role for this user. Supported values include: * `owner` * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader` For more information, see [Roles and permissions](https://developers.google.com/workspace/drive/api/guides/ref-roles).",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "readOnly": true,
            "type": "array"
          },
          "photoLink": {
            "description": "Output only. A link to the user's profile photo, if available.",
            "type": "string"
          },
          "role": {
            "description": "The role granted by this permission. Supported values include: * `owner` * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader` For more information, see [Roles and permissions](https://developers.google.com/workspace/drive/api/guides/ref-roles).",
            "type": "string"
          },
          "teamDrivePermissionDetails": {
            "description": "Output only. Deprecated: Output only. Use `permissionDetails` instead.",
            "items": {
              "properties": {
                "inherited": {
                  "description": "Deprecated: Output only. Use `permissionDetails/inherited` instead.",
                  "type": "boolean"
                },
                "inheritedFrom": {
                  "description": "Deprecated: Output only. Use `permissionDetails/inheritedFrom` instead.",
                  "type": "string"
                },
                "role": {
                  "description": "Deprecated: Output only. Use `permissionDetails/role` instead.",
                  "type": "string"
                },
                "teamDrivePermissionType": {
                  "description": "Deprecated: Output only. Use `permissionDetails/permissionType` instead.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "readOnly": true,
            "type": "array"
          },
          "type": {
            "description": "The type of the grantee. Supported values include: * `user` * `group` * `domain` * `anyone` When creating a permission, if `type` is `user` or `group`, you must provide an `emailAddress` for the user or group. If `type` is `domain`, you must provide a `domain`. If `type` is `anyone`, no extra information is required.",
            "type": "string"
          },
          "view": {
            "description": "Indicates the view for this permission. Only populated for permissions that belong to a view. The only supported values are `published` and `metadata`: * `published`: The permission's role is `publishedReader`. * `metadata`: The item is only visible to the `metadata` view because the item has limited access and the scope has at least read access to the parent. The `metadata` view is only supported on folders. For more information, see [Views](https://developers.google.com/workspace/drive/api/guides/ref-roles#views).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_PermissionList": {
        "description": "A list of permissions for a file.",
        "properties": {
          "kind": {
            "default": "drive#permissionList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#permissionList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of permissions. This field will be absent if the end of the permissions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          },
          "permissions": {
            "description": "The list of permissions. If `nextPageToken` is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Permission"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_PermissionList_drive_permissions_create": {
        "description": "A list of permissions for a file.",
        "properties": {
          "kind": {
            "default": "drive#permissionList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#permissionList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of permissions. This field will be absent if the end of the permissions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          },
          "permissions": {
            "description": "The list of permissions. If `nextPageToken` is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Permission_drive_permissions_create"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_Permission_drive_permissions_create": {
        "description": "A permission for a file. A permission grants a user, group, domain, or the world access to a file or a folder hierarchy. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing). By default, permission requests only return a subset of fields. Permission `kind`, `ID`, `type`, and `role` are always returned. To retrieve specific fields, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter). Some resource methods (such as `permissions.update`) require a `permissionId`. Use the `permissions.list` method to retrieve the ID for a file, folder, or shared drive.",
        "properties": {
          "allowFileDiscovery": {
            "description": "Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type `domain` or `anyone`.",
            "type": "boolean"
          },
          "deleted": {
            "description": "Output only. Whether the account associated with this permission has been deleted. This field only pertains to permissions of type `user` or `group`.",
            "type": "boolean"
          },
          "displayName": {
            "description": "Output only. The \"pretty\" name of the value of the permission. The following is a list of examples for each type of permission: * `user` - User's full name, as defined for their Google Account, such as \"Dana A.\" * `group` - Name of the Google Group, such as \"The Company Administrators.\" * `domain` - String domain name, such as \"cymbalgroup.com.\" * `anyone` - No `displayName` is present.",
            "type": "string"
          },
          "domain": {
            "description": "Output only. The domain to which this permission refers.",
            "readOnly": true,
            "type": "string"
          },
          "emailAddress": {
            "description": "Output only. The email address of the user or group to which this permission refers.",
            "readOnly": true,
            "type": "string"
          },
          "expirationTime": {
            "description": "The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions: - They can only be set on user and group permissions - The time must be in the future - The time cannot be more than a year in the future",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "Output only. The ID of this permission. This is a unique identifier for the grantee, and is published in the [User resource](https://developers.google.com/workspace/drive/api/reference/rest/v3/User) as `permissionId`. IDs should be treated as opaque values.",
            "type": "string"
          },
          "inheritedPermissionsDisabled": {
            "description": "When `true`, only organizers, owners, and users with permissions added directly on the item can access it.",
            "type": "boolean"
          },
          "kind": {
            "default": "drive#permission",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#permission\"`.",
            "type": "string"
          },
          "pendingOwner": {
            "description": "Whether the account associated with this permission is a pending owner. Only populated for permissions of type `user` for files that aren't in a shared drive.",
            "type": "boolean"
          },
          "permissionDetails": {
            "description": "Output only. Details of whether the permissions on this item are inherited or are directly on this item.",
            "items": {
              "properties": {
                "inherited": {
                  "description": "Output only. Whether this permission is inherited. This field is always populated. This is an output-only field.",
                  "type": "boolean"
                },
                "inheritedFrom": {
                  "description": "Output only. The ID of the item from which this permission is inherited. This is only populated for items in shared drives.",
                  "readOnly": true,
                  "type": "string"
                },
                "permissionType": {
                  "description": "Output only. The permission type for this user. Supported values include: * `file` * `member`",
                  "type": "string"
                },
                "role": {
                  "description": "Output only. The primary role for this user. Supported values include: * `owner` * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader` For more information, see [Roles and permissions](https://developers.google.com/workspace/drive/api/guides/ref-roles).",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "readOnly": true,
            "type": "array"
          },
          "photoLink": {
            "description": "Output only. A link to the user's profile photo, if available.",
            "type": "string"
          },
          "role": {
            "description": "The role granted by this permission. Supported values include: * `owner` * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader` For more information, see [Roles and permissions](https://developers.google.com/workspace/drive/api/guides/ref-roles).",
            "type": "string"
          },
          "teamDrivePermissionDetails": {
            "description": "Output only. Deprecated: Output only. Use `permissionDetails` instead.",
            "items": {
              "properties": {
                "inherited": {
                  "description": "Deprecated: Output only. Use `permissionDetails/inherited` instead.",
                  "type": "boolean"
                },
                "inheritedFrom": {
                  "description": "Deprecated: Output only. Use `permissionDetails/inheritedFrom` instead.",
                  "type": "string"
                },
                "role": {
                  "description": "Deprecated: Output only. Use `permissionDetails/role` instead.",
                  "type": "string"
                },
                "teamDrivePermissionType": {
                  "description": "Deprecated: Output only. Use `permissionDetails/permissionType` instead.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "readOnly": true,
            "type": "array"
          },
          "type": {
            "description": "The type of the grantee. Supported values include: * `user` * `group` * `domain` * `anyone` When creating a permission, if `type` is `user` or `group`, you must provide an `emailAddress` for the user or group. If `type` is `domain`, you must provide a `domain`. If `type` is `anyone`, no extra information is required.",
            "type": "string"
          },
          "view": {
            "description": "Indicates the view for this permission. Only populated for permissions that belong to a view. The only supported values are `published` and `metadata`: * `published`: The permission's role is `publishedReader`. * `metadata`: The item is only visible to the `metadata` view because the item has limited access and the scope has at least read access to the parent. The `metadata` view is only supported on folders. For more information, see [Views](https://developers.google.com/workspace/drive/api/guides/ref-roles#views).",
            "type": "string"
          }
        },
        "required": [
          "role",
          "type"
        ],
        "type": "object"
      },
      "drive_ReassignApprovalRequest": {
        "description": "Request for reassigning an approval. Reviewers can be added or replaced, but not removed.",
        "properties": {
          "addReviewers": {
            "description": "Optional. The list of reviewers to add.",
            "items": {
              "$ref": "#/components/schemas/drive_AddReviewer"
            },
            "type": "array"
          },
          "message": {
            "description": "Optional. A message to send to the new reviewers. This message is included in notifications for the action and in the approval activity log.",
            "type": "string"
          },
          "replaceReviewers": {
            "description": "Optional. The list of reviewer replacements.",
            "items": {
              "$ref": "#/components/schemas/drive_ReplaceReviewer"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_ReplaceReviewer": {
        "description": "Representation of a reviewer replacement.",
        "properties": {
          "addedReviewerEmail": {
            "description": "Required. The email of the reviewer to add.",
            "type": "string"
          },
          "removedReviewerEmail": {
            "description": "Required. The email of the reviewer to remove.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_Reply": {
        "description": "A reply to a comment on a file. Some resource methods (such as `replies.update`) require a `replyId`. Use the `replies.list` method to retrieve the ID for a reply.",
        "properties": {
          "action": {
            "description": "The action the reply performed to the parent comment. The supported values are: * `resolve` * `reopen`",
            "type": "string"
          },
          "assigneeEmailAddress": {
            "description": "Output only. The email address of the user assigned to this comment. If no user is assigned, the field is unset.",
            "readOnly": true,
            "type": "string"
          },
          "author": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The author of the reply. The author's email address and permission ID won't be populated."
          },
          "content": {
            "description": "The plain text content of the reply. This field is used for setting the content, while `htmlContent` should be displayed. This field is required by the `create` method if no `action` value is specified.",
            "type": "string"
          },
          "createdTime": {
            "description": "The time at which the reply was created (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "deleted": {
            "description": "Output only. Whether the reply has been deleted. A deleted reply has no content.",
            "type": "boolean"
          },
          "htmlContent": {
            "description": "Output only. The content of the reply with HTML formatting.",
            "type": "string"
          },
          "id": {
            "description": "Output only. The ID of the reply.",
            "type": "string"
          },
          "kind": {
            "default": "drive#reply",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#reply\"`.",
            "type": "string"
          },
          "mentionedEmailAddresses": {
            "description": "Output only. A list of email addresses for users mentioned in this comment. If no users are mentioned, the list is empty.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "modifiedTime": {
            "description": "The last time the reply was modified (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_ReplyList": {
        "description": "A list of replies to a comment on a file.",
        "properties": {
          "kind": {
            "default": "drive#replyList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#replyList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of replies. This will be absent if the end of the replies list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          },
          "replies": {
            "description": "The list of replies. If `nextPageToken` is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Reply"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_ReplyList_drive_replies_update": {
        "description": "A list of replies to a comment on a file.",
        "properties": {
          "kind": {
            "default": "drive#replyList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#replyList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of replies. This will be absent if the end of the replies list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          },
          "replies": {
            "description": "The list of replies. If `nextPageToken` is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Reply_drive_replies_update"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_Reply_drive_replies_update": {
        "description": "A reply to a comment on a file. Some resource methods (such as `replies.update`) require a `replyId`. Use the `replies.list` method to retrieve the ID for a reply.",
        "properties": {
          "action": {
            "description": "The action the reply performed to the parent comment. The supported values are: * `resolve` * `reopen`",
            "type": "string"
          },
          "assigneeEmailAddress": {
            "description": "Output only. The email address of the user assigned to this comment. If no user is assigned, the field is unset.",
            "readOnly": true,
            "type": "string"
          },
          "author": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The author of the reply. The author's email address and permission ID won't be populated."
          },
          "content": {
            "description": "The plain text content of the reply. This field is used for setting the content, while `htmlContent` should be displayed. This field is required by the `create` method if no `action` value is specified.",
            "type": "string"
          },
          "createdTime": {
            "description": "The time at which the reply was created (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "deleted": {
            "description": "Output only. Whether the reply has been deleted. A deleted reply has no content.",
            "type": "boolean"
          },
          "htmlContent": {
            "description": "Output only. The content of the reply with HTML formatting.",
            "type": "string"
          },
          "id": {
            "description": "Output only. The ID of the reply.",
            "type": "string"
          },
          "kind": {
            "default": "drive#reply",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#reply\"`.",
            "type": "string"
          },
          "mentionedEmailAddresses": {
            "description": "Output only. A list of email addresses for users mentioned in this comment. If no users are mentioned, the list is empty.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "modifiedTime": {
            "description": "The last time the reply was modified (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "content"
        ],
        "type": "object"
      },
      "drive_ResolveAccessProposalRequest": {
        "description": "Request message for resolving an AccessProposal on a file.",
        "properties": {
          "action": {
            "description": "Required. The action to take on the access proposal.",
            "enum": [
              "ACTION_UNSPECIFIED",
              "ACCEPT",
              "DENY"
            ],
            "type": "string"
          },
          "role": {
            "description": "Optional. The roles that the approver has allowed, if any. For more information, see [Roles and permissions](https://developers.google.com/workspace/drive/api/guides/ref-roles). Note: This field is required for the `ACCEPT` action.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sendNotification": {
            "description": "Optional. Whether to send an email to the requester when the access proposal is denied or accepted.",
            "type": "boolean"
          },
          "view": {
            "description": "Optional. Indicates the view for this access proposal. This should only be set when the proposal belongs to a view. Only `published` is supported.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_ReviewerResponse": {
        "description": "A response on an approval made by a specific reviewer.",
        "properties": {
          "kind": {
            "description": "This is always drive#reviewerResponse.",
            "type": "string"
          },
          "response": {
            "description": "A reviewer’s response for the approval.",
            "enum": [
              "RESPONSE_UNSPECIFIED",
              "NO_RESPONSE",
              "APPROVED",
              "DECLINED"
            ],
            "type": "string"
          },
          "reviewer": {
            "$ref": "#/components/schemas/drive_User",
            "description": "The user that's responsible for this response."
          }
        },
        "type": "object"
      },
      "drive_Revision": {
        "description": "The metadata for a revision to a file. Some resource methods (such as `revisions.update`) require a `revisionId`. Use the `revisions.list` method to retrieve the ID for a revision.",
        "properties": {
          "exportLinks": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Output only. Links for exporting Docs Editors files to specific formats.",
            "type": "object"
          },
          "id": {
            "description": "Output only. The ID of the revision.",
            "type": "string"
          },
          "keepForever": {
            "description": "Whether to keep this revision forever, even if it is no longer the head revision. If not set, the revision will be automatically purged 30 days after newer content is uploaded. This can be set on a maximum of 200 revisions for a file. This field is only applicable to files with binary content in Drive.",
            "type": "boolean"
          },
          "kind": {
            "default": "drive#revision",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `\"drive#revision\"`.",
            "type": "string"
          },
          "lastModifyingUser": {
            "$ref": "#/components/schemas/drive_User",
            "description": "Output only. The last user to modify this revision. This field is only populated when the last modification was performed by a signed-in user."
          },
          "md5Checksum": {
            "description": "Output only. The MD5 checksum of the revision's content. This is only applicable to files with binary content in Drive.",
            "type": "string"
          },
          "mimeType": {
            "description": "Output only. The MIME type of the revision.",
            "type": "string"
          },
          "modifiedTime": {
            "description": "The last time the revision was modified (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "originalFilename": {
            "description": "Output only. The original filename used to create this revision. This is only applicable to files with binary content in Drive.",
            "type": "string"
          },
          "publishAuto": {
            "description": "Whether subsequent revisions will be automatically republished. This is only applicable to Docs Editors files.",
            "type": "boolean"
          },
          "published": {
            "description": "Whether this revision is published. This is only applicable to Docs Editors files.",
            "type": "boolean"
          },
          "publishedLink": {
            "description": "Output only. A link to the published revision. This is only populated for Docs Editors files.",
            "type": "string"
          },
          "publishedOutsideDomain": {
            "description": "Whether this revision is published outside the domain. This is only applicable to Docs Editors files.",
            "type": "boolean"
          },
          "size": {
            "description": "Output only. The size of the revision's content in bytes. This is only applicable to files with binary content in Drive.",
            "format": "int64",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_RevisionList": {
        "description": "A list of revisions of a file.",
        "properties": {
          "kind": {
            "default": "drive#revisionList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#revisionList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of revisions. This will be absent if the end of the revisions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          },
          "revisions": {
            "description": "The list of revisions. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_Revision"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_StartApprovalRequest": {
        "description": "Allows creating an approval on a file.",
        "properties": {
          "dueTime": {
            "description": "Optional. The time that the approval is due.",
            "format": "google-datetime",
            "type": "string"
          },
          "fileContentChangeBehavior": {
            "description": "Optional. The behavior of the approval when the file content changes.",
            "enum": [
              "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED",
              "RESET_APPROVAL",
              "NO_APPROVAL_ACTION"
            ],
            "type": "string"
          },
          "lockFile": {
            "description": "Optional. Whether to lock the file when starting the approval.",
            "type": "boolean"
          },
          "message": {
            "description": "Optional. A message to send to reviewers when notifying them of the approval request.",
            "type": "string"
          },
          "reviewerEmails": {
            "description": "Required. The emails of the users who are set to review the approval.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_StartPageToken": {
        "properties": {
          "kind": {
            "default": "drive#startPageToken",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#startPageToken\"`.",
            "type": "string"
          },
          "startPageToken": {
            "description": "The starting page token for listing future changes. The page token doesn't expire.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_Status": {
        "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
        "properties": {
          "code": {
            "description": "The status code, which should be an enum value of google.rpc.Code.",
            "format": "int32",
            "type": "integer"
          },
          "details": {
            "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
            "items": {
              "additionalProperties": {
                "description": "Properties of the object. Contains field @type with type URL."
              },
              "type": "object"
            },
            "type": "array"
          },
          "message": {
            "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_TeamDrive": {
        "description": "Deprecated: use the drive collection instead. Next ID: 33",
        "properties": {
          "backgroundImageFile": {
            "description": "The background image file for a Team Drive.",
            "properties": {
              "id": {
                "description": "The ID of an image file in Drive to use for the background image.",
                "type": "string"
              },
              "width": {
                "description": "The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.",
                "format": "float",
                "type": "number"
              },
              "xCoordinate": {
                "description": "The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.",
                "format": "float",
                "type": "number"
              },
              "yCoordinate": {
                "description": "The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "backgroundImageLink": {
            "description": "A short-lived link to this Team Drive's background image.",
            "type": "string"
          },
          "capabilities": {
            "description": "Capabilities the current user has on this Team Drive.",
            "properties": {
              "canAddChildren": {
                "description": "Whether the current user can add children to folders in this Team Drive.",
                "type": "boolean"
              },
              "canChangeCopyRequiresWriterPermissionRestriction": {
                "description": "Whether the current user can change the `copyRequiresWriterPermission` restriction of this Team Drive.",
                "type": "boolean"
              },
              "canChangeDomainUsersOnlyRestriction": {
                "description": "Whether the current user can change the `domainUsersOnly` restriction of this Team Drive.",
                "type": "boolean"
              },
              "canChangeDownloadRestriction": {
                "description": "Output only. Whether the current user can change organizer-applied download restrictions of this shared drive.",
                "readOnly": true,
                "type": "boolean"
              },
              "canChangeSharingFoldersRequiresOrganizerPermissionRestriction": {
                "description": "Whether the current user can change the `sharingFoldersRequiresOrganizerPermission` restriction of this Team Drive.",
                "type": "boolean"
              },
              "canChangeTeamDriveBackground": {
                "description": "Whether the current user can change the background of this Team Drive.",
                "type": "boolean"
              },
              "canChangeTeamMembersOnlyRestriction": {
                "description": "Whether the current user can change the `teamMembersOnly` restriction of this Team Drive.",
                "type": "boolean"
              },
              "canComment": {
                "description": "Whether the current user can comment on files in this Team Drive.",
                "type": "boolean"
              },
              "canCopy": {
                "description": "Whether the current user can copy files in this Team Drive.",
                "type": "boolean"
              },
              "canDeleteChildren": {
                "description": "Whether the current user can delete children from folders in this Team Drive.",
                "type": "boolean"
              },
              "canDeleteTeamDrive": {
                "description": "Whether the current user can delete this Team Drive. Attempting to delete the Team Drive may still fail if there are untrashed items inside the Team Drive.",
                "type": "boolean"
              },
              "canDownload": {
                "description": "Whether the current user can download files in this Team Drive.",
                "type": "boolean"
              },
              "canEdit": {
                "description": "Whether the current user can edit files in this Team Drive",
                "type": "boolean"
              },
              "canListChildren": {
                "description": "Whether the current user can list the children of folders in this Team Drive.",
                "type": "boolean"
              },
              "canManageMembers": {
                "description": "Whether the current user can add members to this Team Drive or remove them or change their role.",
                "type": "boolean"
              },
              "canReadRevisions": {
                "description": "Whether the current user can read the revisions resource of files in this Team Drive.",
                "type": "boolean"
              },
              "canRemoveChildren": {
                "description": "Deprecated: Use `canDeleteChildren` or `canTrashChildren` instead.",
                "type": "boolean"
              },
              "canRename": {
                "description": "Whether the current user can rename files or folders in this Team Drive.",
                "type": "boolean"
              },
              "canRenameTeamDrive": {
                "description": "Whether the current user can rename this Team Drive.",
                "type": "boolean"
              },
              "canResetTeamDriveRestrictions": {
                "description": "Whether the current user can reset the Team Drive restrictions to defaults.",
                "type": "boolean"
              },
              "canShare": {
                "description": "Whether the current user can share files or folders in this Team Drive.",
                "type": "boolean"
              },
              "canTrashChildren": {
                "description": "Whether the current user can trash children from folders in this Team Drive.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "colorRgb": {
            "description": "The color of this Team Drive as an RGB hex string. It can only be set on a `drive.teamdrives.update` request that does not set `themeId`.",
            "type": "string"
          },
          "createdTime": {
            "description": "The time at which the Team Drive was created (RFC 3339 date-time).",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "The ID of this Team Drive which is also the ID of the top level folder of this Team Drive.",
            "type": "string"
          },
          "kind": {
            "default": "drive#teamDrive",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#teamDrive\"`.",
            "type": "string"
          },
          "name": {
            "description": "The name of this Team Drive.",
            "type": "string"
          },
          "orgUnitId": {
            "description": "The organizational unit of this shared drive. This field is only populated on `drives.list` responses when the `useDomainAdminAccess` parameter is set to `true`.",
            "type": "string"
          },
          "restrictions": {
            "description": "A set of restrictions that apply to this Team Drive or items inside this Team Drive.",
            "properties": {
              "adminManagedRestrictions": {
                "description": "Whether administrative privileges on this Team Drive are required to modify restrictions.",
                "type": "boolean"
              },
              "copyRequiresWriterPermission": {
                "description": "Whether the options to copy, print, or download files inside this Team Drive, should be disabled for readers and commenters. When this restriction is set to `true`, it will override the similarly named field to `true` for any file inside this Team Drive.",
                "type": "boolean"
              },
              "domainUsersOnly": {
                "description": "Whether access to this Team Drive and items inside this Team Drive is restricted to users of the domain to which this Team Drive belongs. This restriction may be overridden by other sharing policies controlled outside of this Team Drive.",
                "type": "boolean"
              },
              "downloadRestriction": {
                "$ref": "#/components/schemas/drive_DownloadRestriction",
                "description": "Download restrictions applied by shared drive managers."
              },
              "sharingFoldersRequiresOrganizerPermission": {
                "description": "If true, only users with the organizer role can share folders. If false, users with either the organizer role or the file organizer role can share folders.",
                "type": "boolean"
              },
              "teamMembersOnly": {
                "description": "Whether access to items inside this Team Drive is restricted to members of this Team Drive.",
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "themeId": {
            "description": "The ID of the theme from which the background image and color will be set. The set of possible `teamDriveThemes` can be retrieved from a `drive.about.get` response. When not specified on a `drive.teamdrives.create` request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set `colorRgb` or `backgroundImageFile`.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "drive_TeamDriveList": {
        "description": "A list of Team Drives.",
        "properties": {
          "kind": {
            "default": "drive#teamDriveList",
            "description": "Identifies what kind of resource this is. Value: the fixed string `\"drive#teamDriveList\"`.",
            "type": "string"
          },
          "nextPageToken": {
            "description": "The page token for the next page of Team Drives. This will be absent if the end of the Team Drives list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. The page token is typically valid for several hours. However, if new items are added or removed, your expected results might differ.",
            "type": "string"
          },
          "teamDrives": {
            "description": "The list of Team Drives. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.",
            "items": {
              "$ref": "#/components/schemas/drive_TeamDrive"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "drive_User": {
        "description": "Information about a Drive user.",
        "properties": {
          "displayName": {
            "description": "Output only. A plain text displayable name for this user.",
            "readOnly": true,
            "type": "string"
          },
          "emailAddress": {
            "description": "Output only. The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.",
            "readOnly": true,
            "type": "string"
          },
          "kind": {
            "default": "drive#user",
            "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `drive#user`.",
            "readOnly": true,
            "type": "string"
          },
          "me": {
            "description": "Output only. Whether this user is the requesting user.",
            "readOnly": true,
            "type": "boolean"
          },
          "permissionId": {
            "description": "Output only. The user's ID as visible in Permission resources.",
            "readOnly": true,
            "type": "string"
          },
          "photoLink": {
            "description": "Output only. A link to the user's profile photo, if available.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_AutoForwarding": {
        "description": "Auto-forwarding settings for an account.",
        "properties": {
          "disposition": {
            "description": "The state that a message should be left in after it has been forwarded.",
            "enum": [
              "dispositionUnspecified",
              "leaveInInbox",
              "archive",
              "trash",
              "markRead"
            ],
            "type": "string"
          },
          "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"
          },
          "enabled": {
            "description": "Whether all incoming mail is automatically forwarded to another address.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "gmail_BatchDeleteMessagesRequest": {
        "properties": {
          "ids": {
            "description": "The IDs of the messages to delete.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_BatchModifyMessagesRequest": {
        "properties": {
          "addClassificationLabels": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_ClassificationLabelValue"
            },
            "type": "array"
          },
          "addLabelIds": {
            "description": "A list of label IDs to add to messages.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "ids": {
            "description": "The IDs of the messages to modify. There is a limit of 1000 ids per request.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "removeClassificationLabelIds": {
            "description": "A list of Classification Label values to remove from messages.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "removeLabelIds": {
            "description": "A list of label IDs to remove from messages.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ClassificationLabelFieldValue": {
        "description": "Field values for a classification label.",
        "properties": {
          "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"
          },
          "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"
          }
        },
        "type": "object"
      },
      "gmail_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).",
        "properties": {
          "fields": {
            "description": "Field values for the given classification label ID.",
            "items": {
              "$ref": "#/components/schemas/gmail_ClassificationLabelFieldValue"
            },
            "type": "array"
          },
          "labelId": {
            "description": "Required. The canonical or raw alphanumeric classification label ID. Maps to the ID field of the Google Drive Label resource.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_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.",
        "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"
          },
          "primaryKeyPairId": {
            "description": "If a key pair is associated, the ID of the key pair, CseKeyPair.",
            "type": "string"
          },
          "signAndEncryptKeyPairs": {
            "$ref": "#/components/schemas/gmail_SignAndEncryptKeyPairs",
            "description": "The configuration of a CSE identity that uses different key pairs for signing and encryption."
          }
        },
        "type": "object"
      },
      "gmail_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.",
        "properties": {
          "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`.",
            "format": "google-datetime",
            "readOnly": true,
            "type": "string"
          },
          "enablementState": {
            "description": "Output only. The current state of the key pair.",
            "enum": [
              "stateUnspecified",
              "enabled",
              "disabled"
            ],
            "readOnly": true,
            "type": "string"
          },
          "keyPairId": {
            "description": "Output only. The immutable ID for the client-side encryption S/MIME key pair.",
            "readOnly": true,
            "type": "string"
          },
          "pem": {
            "description": "Output only. The public key and its certificate chain, in [PEM](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail) format.",
            "readOnly": true,
            "type": "string"
          },
          "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"
          },
          "privateKeyMetadata": {
            "description": "Metadata for instances of this key pair's private key.",
            "items": {
              "$ref": "#/components/schemas/gmail_CsePrivateKeyMetadata"
            },
            "type": "array"
          },
          "subjectEmailAddresses": {
            "description": "Output only. The email address identities that are specified on the leaf certificate.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_CsePrivateKeyMetadata": {
        "description": "Metadata for a private key instance.",
        "properties": {
          "hardwareKeyMetadata": {
            "$ref": "#/components/schemas/gmail_HardwareKeyMetadata",
            "description": "Metadata for hardware keys."
          },
          "kaclsKeyMetadata": {
            "$ref": "#/components/schemas/gmail_KaclsKeyMetadata",
            "description": "Metadata for a private key instance managed by an external key access control list service. The maximum size of the KACLS data field is 8 KiB."
          },
          "privateKeyMetadataId": {
            "description": "Output only. The immutable ID for the private key metadata instance.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_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.",
        "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.",
            "enum": [
              "verificationStatusUnspecified",
              "accepted",
              "pending",
              "rejected",
              "expired"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_DisableCseKeyPairRequest": {
        "description": "Requests to turn off a client-side encryption key pair.",
        "properties": {},
        "type": "object"
      },
      "gmail_Draft": {
        "description": "A draft email in the user's mailbox.",
        "properties": {
          "id": {
            "description": "The immutable ID of the draft.",
            "type": "string"
          },
          "message": {
            "$ref": "#/components/schemas/gmail_Message",
            "description": "The message content of the draft."
          }
        },
        "type": "object"
      },
      "gmail_Draft_gmail_users_drafts_send": {
        "description": "A draft email in the user's mailbox.",
        "properties": {
          "id": {
            "description": "The immutable ID of the draft.",
            "type": "string"
          },
          "message": {
            "$ref": "#/components/schemas/gmail_Message",
            "description": "The message content of the draft."
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "gmail_Draft_gmail_users_messages_insert": {
        "description": "A draft email in the user's mailbox.",
        "properties": {
          "id": {
            "description": "The immutable ID of the draft.",
            "type": "string"
          },
          "message": {
            "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_insert",
            "description": "The message content of the draft."
          }
        },
        "type": "object"
      },
      "gmail_Draft_gmail_users_messages_send": {
        "description": "A draft email in the user's mailbox.",
        "properties": {
          "id": {
            "description": "The immutable ID of the draft.",
            "type": "string"
          },
          "message": {
            "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_send",
            "description": "The message content of the draft."
          }
        },
        "type": "object"
      },
      "gmail_EnableCseKeyPairRequest": {
        "description": "Requests to turn on a client-side encryption key pair.",
        "properties": {},
        "type": "object"
      },
      "gmail_Filter": {
        "description": "Resource definition for Gmail filters. Filters apply to specific messages instead of an entire email thread.",
        "properties": {
          "action": {
            "$ref": "#/components/schemas/gmail_FilterAction",
            "description": "Action that the filter performs."
          },
          "criteria": {
            "$ref": "#/components/schemas/gmail_FilterCriteria",
            "description": "Matching criteria for the filter."
          },
          "id": {
            "description": "The server assigned ID of the filter.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_FilterAction": {
        "description": "A set of actions to perform on a message.",
        "properties": {
          "addLabelIds": {
            "description": "List of labels to add to the message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "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"
          },
          "removeLabelIds": {
            "description": "List of labels to remove from the message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_FilterCriteria": {
        "description": "Message matching criteria.",
        "properties": {
          "excludeChats": {
            "description": "Whether the response should exclude chats.",
            "type": "boolean"
          },
          "from": {
            "description": "The sender's display name or email address.",
            "type": "string"
          },
          "hasAttachment": {
            "description": "Whether the message has any attachment.",
            "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"
          },
          "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"
          },
          "size": {
            "description": "The size of the entire RFC822 message in bytes, including all headers and attachments.",
            "format": "int32",
            "type": "integer"
          },
          "sizeComparison": {
            "description": "How the message size in bytes should be in relation to the size field.",
            "enum": [
              "unspecified",
              "smaller",
              "larger"
            ],
            "type": "string"
          },
          "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"
          },
          "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@example.com\". This field is case-insensitive.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_ForwardingAddress": {
        "description": "Settings for a forwarding address.",
        "properties": {
          "forwardingEmail": {
            "description": "An email address to which messages can be forwarded.",
            "type": "string"
          },
          "verificationStatus": {
            "description": "Indicates whether this address has been verified and is usable for forwarding. Read-only.",
            "enum": [
              "verificationStatusUnspecified",
              "accepted",
              "pending"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_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.",
        "properties": {
          "description": {
            "description": "Description about the hardware key.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_History": {
        "description": "A record of a change to the user's mailbox. Each history change may affect multiple messages in multiple ways.",
        "properties": {
          "id": {
            "description": "The mailbox sequence ID.",
            "format": "uint64",
            "type": "string"
          },
          "labelsAdded": {
            "description": "Labels added to messages in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryLabelAdded"
            },
            "type": "array"
          },
          "labelsRemoved": {
            "description": "Labels removed from messages in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryLabelRemoved"
            },
            "type": "array"
          },
          "messages": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Message"
            },
            "type": "array"
          },
          "messagesAdded": {
            "description": "Messages added to the mailbox in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryMessageAdded"
            },
            "type": "array"
          },
          "messagesDeleted": {
            "description": "Messages deleted (not Trashed) from the mailbox in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryMessageDeleted"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_HistoryLabelAdded": {
        "properties": {
          "labelIds": {
            "description": "Label IDs added to the message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message": {
            "$ref": "#/components/schemas/gmail_Message"
          }
        },
        "type": "object"
      },
      "gmail_HistoryLabelAdded_gmail_users_messages_insert": {
        "properties": {
          "labelIds": {
            "description": "Label IDs added to the message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message": {
            "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_insert"
          }
        },
        "type": "object"
      },
      "gmail_HistoryLabelAdded_gmail_users_messages_send": {
        "properties": {
          "labelIds": {
            "description": "Label IDs added to the message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message": {
            "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_send"
          }
        },
        "type": "object"
      },
      "gmail_HistoryLabelRemoved": {
        "properties": {
          "labelIds": {
            "description": "Label IDs removed from the message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message": {
            "$ref": "#/components/schemas/gmail_Message"
          }
        },
        "type": "object"
      },
      "gmail_HistoryLabelRemoved_gmail_users_messages_insert": {
        "properties": {
          "labelIds": {
            "description": "Label IDs removed from the message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message": {
            "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_insert"
          }
        },
        "type": "object"
      },
      "gmail_HistoryLabelRemoved_gmail_users_messages_send": {
        "properties": {
          "labelIds": {
            "description": "Label IDs removed from the message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message": {
            "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_send"
          }
        },
        "type": "object"
      },
      "gmail_HistoryMessageAdded": {
        "properties": {
          "message": {
            "$ref": "#/components/schemas/gmail_Message"
          }
        },
        "type": "object"
      },
      "gmail_HistoryMessageAdded_gmail_users_messages_insert": {
        "properties": {
          "message": {
            "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_insert"
          }
        },
        "type": "object"
      },
      "gmail_HistoryMessageAdded_gmail_users_messages_send": {
        "properties": {
          "message": {
            "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_send"
          }
        },
        "type": "object"
      },
      "gmail_HistoryMessageDeleted": {
        "properties": {
          "message": {
            "$ref": "#/components/schemas/gmail_Message"
          }
        },
        "type": "object"
      },
      "gmail_HistoryMessageDeleted_gmail_users_messages_insert": {
        "properties": {
          "message": {
            "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_insert"
          }
        },
        "type": "object"
      },
      "gmail_HistoryMessageDeleted_gmail_users_messages_send": {
        "properties": {
          "message": {
            "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_send"
          }
        },
        "type": "object"
      },
      "gmail_History_gmail_users_messages_insert": {
        "description": "A record of a change to the user's mailbox. Each history change may affect multiple messages in multiple ways.",
        "properties": {
          "id": {
            "description": "The mailbox sequence ID.",
            "format": "uint64",
            "type": "string"
          },
          "labelsAdded": {
            "description": "Labels added to messages in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryLabelAdded_gmail_users_messages_insert"
            },
            "type": "array"
          },
          "labelsRemoved": {
            "description": "Labels removed from messages in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryLabelRemoved_gmail_users_messages_insert"
            },
            "type": "array"
          },
          "messages": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_insert"
            },
            "type": "array"
          },
          "messagesAdded": {
            "description": "Messages added to the mailbox in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryMessageAdded_gmail_users_messages_insert"
            },
            "type": "array"
          },
          "messagesDeleted": {
            "description": "Messages deleted (not Trashed) from the mailbox in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryMessageDeleted_gmail_users_messages_insert"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_History_gmail_users_messages_send": {
        "description": "A record of a change to the user's mailbox. Each history change may affect multiple messages in multiple ways.",
        "properties": {
          "id": {
            "description": "The mailbox sequence ID.",
            "format": "uint64",
            "type": "string"
          },
          "labelsAdded": {
            "description": "Labels added to messages in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryLabelAdded_gmail_users_messages_send"
            },
            "type": "array"
          },
          "labelsRemoved": {
            "description": "Labels removed from messages in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryLabelRemoved_gmail_users_messages_send"
            },
            "type": "array"
          },
          "messages": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_send"
            },
            "type": "array"
          },
          "messagesAdded": {
            "description": "Messages added to the mailbox in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryMessageAdded_gmail_users_messages_send"
            },
            "type": "array"
          },
          "messagesDeleted": {
            "description": "Messages deleted (not Trashed) from the mailbox in this history record.",
            "items": {
              "$ref": "#/components/schemas/gmail_HistoryMessageDeleted_gmail_users_messages_send"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ImapSettings": {
        "description": "IMAP settings for an account.",
        "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.",
            "enum": [
              "expungeBehaviorUnspecified",
              "archive",
              "trash",
              "deleteForever"
            ],
            "type": "string"
          },
          "maxFolderSize": {
            "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.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "gmail_KaclsKeyMetadata": {
        "description": "Metadata for a cryptographic key 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).",
        "properties": {
          "kaclsData": {
            "description": "Opaque data generated and used by the key access control list service.",
            "type": "string"
          },
          "kaclsUri": {
            "description": "The URI of the key access control list service that manages the key.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_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.",
        "properties": {
          "color": {
            "$ref": "#/components/schemas/gmail_LabelColor",
            "description": "The color to assign to the label. Color is only available for labels that have their `type` set to `user`."
          },
          "id": {
            "description": "The immutable ID of the label.",
            "type": "string"
          },
          "labelListVisibility": {
            "description": "The visibility of the label in the label list in the Gmail web interface.",
            "enum": [
              "labelShow",
              "labelShowIfUnread",
              "labelHide"
            ],
            "type": "string"
          },
          "messageListVisibility": {
            "description": "The visibility of messages with this label in the message list in the Gmail web interface.",
            "enum": [
              "show",
              "hide"
            ],
            "type": "string"
          },
          "messagesTotal": {
            "description": "The total number of messages with the label.",
            "format": "int32",
            "type": "integer"
          },
          "messagesUnread": {
            "description": "The number of unread messages with the label.",
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "description": "The display name of the label.",
            "type": "string"
          },
          "threadsTotal": {
            "description": "The total number of threads with the label.",
            "format": "int32",
            "type": "integer"
          },
          "threadsUnread": {
            "description": "The number of unread threads with the label.",
            "format": "int32",
            "type": "integer"
          },
          "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.",
            "enum": [
              "system",
              "user"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_LabelColor": {
        "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"
          }
        },
        "type": "object"
      },
      "gmail_Label_gmail_users_labels_create": {
        "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.",
        "properties": {
          "color": {
            "$ref": "#/components/schemas/gmail_LabelColor",
            "description": "The color to assign to the label. Color is only available for labels that have their `type` set to `user`."
          },
          "id": {
            "description": "The immutable ID of the label.",
            "type": "string"
          },
          "labelListVisibility": {
            "description": "The visibility of the label in the label list in the Gmail web interface.",
            "enum": [
              "labelShow",
              "labelShowIfUnread",
              "labelHide"
            ],
            "type": "string"
          },
          "messageListVisibility": {
            "description": "The visibility of messages with this label in the message list in the Gmail web interface.",
            "enum": [
              "show",
              "hide"
            ],
            "type": "string"
          },
          "messagesTotal": {
            "description": "The total number of messages with the label.",
            "format": "int32",
            "type": "integer"
          },
          "messagesUnread": {
            "description": "The number of unread messages with the label.",
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "description": "The display name of the label.",
            "type": "string"
          },
          "threadsTotal": {
            "description": "The total number of threads with the label.",
            "format": "int32",
            "type": "integer"
          },
          "threadsUnread": {
            "description": "The number of unread threads with the label.",
            "format": "int32",
            "type": "integer"
          },
          "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.",
            "enum": [
              "system",
              "user"
            ],
            "type": "string"
          }
        },
        "required": [
          "labelListVisibility",
          "messageListVisibility",
          "name"
        ],
        "type": "object"
      },
      "gmail_Label_gmail_users_labels_update": {
        "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.",
        "properties": {
          "color": {
            "$ref": "#/components/schemas/gmail_LabelColor",
            "description": "The color to assign to the label. Color is only available for labels that have their `type` set to `user`."
          },
          "id": {
            "description": "The immutable ID of the label.",
            "type": "string"
          },
          "labelListVisibility": {
            "description": "The visibility of the label in the label list in the Gmail web interface.",
            "enum": [
              "labelShow",
              "labelShowIfUnread",
              "labelHide"
            ],
            "type": "string"
          },
          "messageListVisibility": {
            "description": "The visibility of messages with this label in the message list in the Gmail web interface.",
            "enum": [
              "show",
              "hide"
            ],
            "type": "string"
          },
          "messagesTotal": {
            "description": "The total number of messages with the label.",
            "format": "int32",
            "type": "integer"
          },
          "messagesUnread": {
            "description": "The number of unread messages with the label.",
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "description": "The display name of the label.",
            "type": "string"
          },
          "threadsTotal": {
            "description": "The total number of threads with the label.",
            "format": "int32",
            "type": "integer"
          },
          "threadsUnread": {
            "description": "The number of unread threads with the label.",
            "format": "int32",
            "type": "integer"
          },
          "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.",
            "enum": [
              "system",
              "user"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "labelListVisibility",
          "messageListVisibility",
          "name"
        ],
        "type": "object"
      },
      "gmail_LanguageSettings": {
        "description": "Language settings for an account. These settings correspond to the \"Language settings\" feature in the web interface.",
        "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"
          }
        },
        "type": "object"
      },
      "gmail_ListCseIdentitiesResponse": {
        "properties": {
          "cseIdentities": {
            "description": "One page of the list of CSE identities configured for the user.",
            "items": {
              "$ref": "#/components/schemas/gmail_CseIdentity"
            },
            "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"
          }
        },
        "type": "object"
      },
      "gmail_ListCseKeyPairsResponse": {
        "properties": {
          "cseKeyPairs": {
            "description": "One page of the list of CSE key pairs installed for the user.",
            "items": {
              "$ref": "#/components/schemas/gmail_CseKeyPair"
            },
            "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"
          }
        },
        "type": "object"
      },
      "gmail_ListDelegatesResponse": {
        "description": "Response for the ListDelegates method.",
        "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Delegate"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ListDraftsResponse": {
        "properties": {
          "drafts": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Draft"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results in the list.",
            "type": "string"
          },
          "resultSizeEstimate": {
            "description": "Estimated total number of results.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "gmail_ListDraftsResponse_gmail_users_drafts_send": {
        "properties": {
          "drafts": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Draft_gmail_users_drafts_send"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results in the list.",
            "type": "string"
          },
          "resultSizeEstimate": {
            "description": "Estimated total number of results.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "gmail_ListDraftsResponse_gmail_users_messages_insert": {
        "properties": {
          "drafts": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Draft_gmail_users_messages_insert"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results in the list.",
            "type": "string"
          },
          "resultSizeEstimate": {
            "description": "Estimated total number of results.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "gmail_ListDraftsResponse_gmail_users_messages_send": {
        "properties": {
          "drafts": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Draft_gmail_users_messages_send"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results in the list.",
            "type": "string"
          },
          "resultSizeEstimate": {
            "description": "Estimated total number of results.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "gmail_ListFiltersResponse": {
        "description": "Response for the ListFilters method.",
        "properties": {
          "filter": {
            "description": "List of a user's filters.",
            "items": {
              "$ref": "#/components/schemas/gmail_Filter"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ListForwardingAddressesResponse": {
        "description": "Response for the ListForwardingAddresses method.",
        "properties": {
          "forwardingAddresses": {
            "description": "List of addresses that may be used for forwarding.",
            "items": {
              "$ref": "#/components/schemas/gmail_ForwardingAddress"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ListHistoryResponse": {
        "properties": {
          "history": {
            "description": "List of history records. Any `messages` contained in the response will typically only have `id` and `threadId` fields populated.",
            "items": {
              "$ref": "#/components/schemas/gmail_History"
            },
            "type": "array"
          },
          "historyId": {
            "description": "The ID of the mailbox's current history record.",
            "format": "uint64",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Page token to retrieve the next page of results in the list.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_ListHistoryResponse_gmail_users_messages_insert": {
        "properties": {
          "history": {
            "description": "List of history records. Any `messages` contained in the response will typically only have `id` and `threadId` fields populated.",
            "items": {
              "$ref": "#/components/schemas/gmail_History_gmail_users_messages_insert"
            },
            "type": "array"
          },
          "historyId": {
            "description": "The ID of the mailbox's current history record.",
            "format": "uint64",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Page token to retrieve the next page of results in the list.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_ListHistoryResponse_gmail_users_messages_send": {
        "properties": {
          "history": {
            "description": "List of history records. Any `messages` contained in the response will typically only have `id` and `threadId` fields populated.",
            "items": {
              "$ref": "#/components/schemas/gmail_History_gmail_users_messages_send"
            },
            "type": "array"
          },
          "historyId": {
            "description": "The ID of the mailbox's current history record.",
            "format": "uint64",
            "type": "string"
          },
          "nextPageToken": {
            "description": "Page token to retrieve the next page of results in the list.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_ListLabelsResponse": {
        "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Label"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ListLabelsResponse_gmail_users_labels_create": {
        "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Label_gmail_users_labels_create"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ListLabelsResponse_gmail_users_labels_update": {
        "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Label_gmail_users_labels_update"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ListMessagesResponse": {
        "properties": {
          "messages": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Message"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results in the list.",
            "type": "string"
          },
          "resultSizeEstimate": {
            "description": "Estimated total number of results.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "gmail_ListMessagesResponse_gmail_users_messages_insert": {
        "properties": {
          "messages": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_insert"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results in the list.",
            "type": "string"
          },
          "resultSizeEstimate": {
            "description": "Estimated total number of results.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "gmail_ListMessagesResponse_gmail_users_messages_send": {
        "properties": {
          "messages": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_send"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "Token to retrieve the next page of results in the list.",
            "type": "string"
          },
          "resultSizeEstimate": {
            "description": "Estimated total number of results.",
            "format": "uint32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "gmail_ListSendAsResponse": {
        "description": "Response for the ListSendAs method.",
        "properties": {
          "sendAs": {
            "description": "List of send-as aliases.",
            "items": {
              "$ref": "#/components/schemas/gmail_SendAs"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ListSmimeInfoResponse": {
        "properties": {
          "smimeInfo": {
            "description": "List of SmimeInfo.",
            "items": {
              "$ref": "#/components/schemas/gmail_SmimeInfo"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ListThreadsResponse": {
        "properties": {
          "nextPageToken": {
            "description": "Page token to retrieve the next page of results in the list.",
            "type": "string"
          },
          "resultSizeEstimate": {
            "description": "Estimated total number of results.",
            "format": "uint32",
            "type": "integer"
          },
          "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Thread"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ListThreadsResponse_gmail_users_messages_insert": {
        "properties": {
          "nextPageToken": {
            "description": "Page token to retrieve the next page of results in the list.",
            "type": "string"
          },
          "resultSizeEstimate": {
            "description": "Estimated total number of results.",
            "format": "uint32",
            "type": "integer"
          },
          "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Thread_gmail_users_messages_insert"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ListThreadsResponse_gmail_users_messages_send": {
        "properties": {
          "nextPageToken": {
            "description": "Page token to retrieve the next page of results in the list.",
            "type": "string"
          },
          "resultSizeEstimate": {
            "description": "Estimated total number of results.",
            "format": "uint32",
            "type": "integer"
          },
          "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_Thread_gmail_users_messages_send"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_Message": {
        "description": "An email message.",
        "properties": {
          "classificationLabelValues": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_ClassificationLabelValue"
            },
            "type": "array"
          },
          "historyId": {
            "description": "The ID of the last history record that modified this message.",
            "format": "uint64",
            "type": "string"
          },
          "id": {
            "description": "The immutable ID of the message.",
            "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.",
            "format": "int64",
            "type": "string"
          },
          "labelIds": {
            "description": "List of IDs of labels applied to this message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "payload": {
            "$ref": "#/components/schemas/gmail_MessagePart",
            "description": "The parsed email structure in the message parts."
          },
          "raw": {
            "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",
            "format": "byte",
            "type": "string"
          },
          "sizeEstimate": {
            "description": "Estimated size in bytes of the message.",
            "format": "int32",
            "type": "integer"
          },
          "snippet": {
            "description": "A short part of the message text.",
            "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"
          }
        },
        "type": "object"
      },
      "gmail_MessagePart": {
        "description": "A single MIME message part.",
        "properties": {
          "body": {
            "$ref": "#/components/schemas/gmail_MessagePartBody",
            "description": "The message part body for this part, which may be empty for container MIME message parts."
          },
          "filename": {
            "description": "The filename of the attachment. Only present if this message part represents an attachment.",
            "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`.",
            "items": {
              "$ref": "#/components/schemas/gmail_MessagePartHeader"
            },
            "type": "array"
          },
          "mimeType": {
            "description": "The MIME type of the message part.",
            "type": "string"
          },
          "partId": {
            "description": "The immutable ID of the message part.",
            "type": "string"
          },
          "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_MessagePart"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_MessagePartBody": {
        "description": "The body of a single MIME message part.",
        "properties": {
          "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"
          },
          "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.",
            "format": "byte",
            "type": "string"
          },
          "size": {
            "description": "Number of bytes for the message part data (encoding notwithstanding).",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "gmail_MessagePartHeader": {
        "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"
          }
        },
        "type": "object"
      },
      "gmail_Message_gmail_users_messages_insert": {
        "description": "An email message.",
        "properties": {
          "classificationLabelValues": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_ClassificationLabelValue"
            },
            "type": "array"
          },
          "historyId": {
            "description": "The ID of the last history record that modified this message.",
            "format": "uint64",
            "type": "string"
          },
          "id": {
            "description": "The immutable ID of the message.",
            "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.",
            "format": "int64",
            "type": "string"
          },
          "labelIds": {
            "description": "List of IDs of labels applied to this message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "payload": {
            "$ref": "#/components/schemas/gmail_MessagePart",
            "description": "The parsed email structure in the message parts."
          },
          "raw": {
            "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",
            "format": "byte",
            "type": "string"
          },
          "sizeEstimate": {
            "description": "Estimated size in bytes of the message.",
            "format": "int32",
            "type": "integer"
          },
          "snippet": {
            "description": "A short part of the message text.",
            "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"
          }
        },
        "required": [
          "raw"
        ],
        "type": "object"
      },
      "gmail_Message_gmail_users_messages_send": {
        "description": "An email message.",
        "properties": {
          "classificationLabelValues": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_ClassificationLabelValue"
            },
            "type": "array"
          },
          "historyId": {
            "description": "The ID of the last history record that modified this message.",
            "format": "uint64",
            "type": "string"
          },
          "id": {
            "description": "The immutable ID of the message.",
            "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.",
            "format": "int64",
            "type": "string"
          },
          "labelIds": {
            "description": "List of IDs of labels applied to this message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "payload": {
            "$ref": "#/components/schemas/gmail_MessagePart",
            "description": "The parsed email structure in the message parts."
          },
          "raw": {
            "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",
            "format": "byte",
            "type": "string"
          },
          "sizeEstimate": {
            "description": "Estimated size in bytes of the message.",
            "format": "int32",
            "type": "integer"
          },
          "snippet": {
            "description": "A short part of the message text.",
            "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"
          }
        },
        "required": [
          "raw"
        ],
        "type": "object"
      },
      "gmail_ModifyMessageRequest": {
        "properties": {
          "addClassificationLabels": {
            "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.",
            "items": {
              "$ref": "#/components/schemas/gmail_ClassificationLabelValue"
            },
            "type": "array"
          },
          "addLabelIds": {
            "description": "A list of IDs of labels to add to this message. You can add up to 100 labels with each update.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "removeClassificationLabelIds": {
            "description": "A list of Classification Label values to remove from this message.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "removeLabelIds": {
            "description": "A list IDs of labels to remove from this message. You can remove up to 100 labels with each update.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ModifyThreadRequest": {
        "properties": {
          "addLabelIds": {
            "description": "A list of IDs of labels to add to this thread. You can add up to 100 labels with each update.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "removeLabelIds": {
            "description": "A list of IDs of labels to remove from this thread. You can remove up to 100 labels with each update.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "gmail_ObliterateCseKeyPairRequest": {
        "description": "Request to obliterate a CSE key pair.",
        "properties": {},
        "type": "object"
      },
      "gmail_PopSettings": {
        "description": "POP settings for an account.",
        "properties": {
          "accessWindow": {
            "description": "The range of messages which are accessible via POP.",
            "enum": [
              "accessWindowUnspecified",
              "disabled",
              "fromNowOn",
              "allMail"
            ],
            "type": "string"
          },
          "disposition": {
            "description": "The action that will be executed on a message after it has been fetched via POP.",
            "enum": [
              "dispositionUnspecified",
              "leaveInInbox",
              "archive",
              "trash",
              "markRead"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_Profile": {
        "description": "Profile for a Gmail user.",
        "properties": {
          "emailAddress": {
            "description": "The user's email address.",
            "type": "string"
          },
          "historyId": {
            "description": "The ID of the mailbox's current history record.",
            "format": "uint64",
            "type": "string"
          },
          "messagesTotal": {
            "description": "The total number of messages in the mailbox.",
            "format": "int32",
            "type": "integer"
          },
          "threadsTotal": {
            "description": "The total number of threads in the mailbox.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "gmail_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.",
        "properties": {
          "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"
          },
          "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"
          },
          "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"
          },
          "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"
          },
          "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"
          },
          "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"
          },
          "smtpMsa": {
            "$ref": "#/components/schemas/gmail_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."
          },
          "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"
          },
          "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.",
            "enum": [
              "verificationStatusUnspecified",
              "accepted",
              "pending"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_SignAndEncryptKeyPairs": {
        "description": "The configuration of a CSE identity that uses different key pairs for signing and encryption.",
        "properties": {
          "encryptionKeyPairId": {
            "description": "The ID of the CseKeyPair that encrypts signed outgoing mail.",
            "type": "string"
          },
          "signingKeyPairId": {
            "description": "The ID of the CseKeyPair that signs outgoing mail.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_SmimeInfo": {
        "description": "An S/MIME email config.",
        "properties": {
          "encryptedKeyPassword": {
            "description": "Encrypted key password, when key is encrypted.",
            "type": "string"
          },
          "expiration": {
            "description": "When the certificate expires (in milliseconds since epoch).",
            "format": "int64",
            "type": "string"
          },
          "id": {
            "description": "The immutable ID for the SmimeInfo.",
            "type": "string"
          },
          "isDefault": {
            "description": "Whether this SmimeInfo is the default one for this user's send-as address.",
            "type": "boolean"
          },
          "issuerCn": {
            "description": "The S/MIME certificate issuer's common name.",
            "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": {
            "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.",
            "format": "byte",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_SmtpMsa": {
        "description": "Configuration for communication with an SMTP service.",
        "properties": {
          "host": {
            "description": "The hostname of the SMTP service. Required.",
            "type": "string"
          },
          "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": {
            "description": "The port of the SMTP service. Required.",
            "format": "int32",
            "type": "integer"
          },
          "securityMode": {
            "description": "The protocol that will be used to secure communication with the SMTP service. Required.",
            "enum": [
              "securityModeUnspecified",
              "none",
              "ssl",
              "starttls"
            ],
            "type": "string"
          },
          "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"
          }
        },
        "type": "object"
      },
      "gmail_Thread": {
        "description": "A collection of messages representing a conversation.",
        "properties": {
          "historyId": {
            "description": "The ID of the last history record that modified this thread.",
            "format": "uint64",
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the thread.",
            "type": "string"
          },
          "messages": {
            "description": "The list of messages in the thread.",
            "items": {
              "$ref": "#/components/schemas/gmail_Message"
            },
            "type": "array"
          },
          "snippet": {
            "description": "A short part of the message text.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_Thread_gmail_users_messages_insert": {
        "description": "A collection of messages representing a conversation.",
        "properties": {
          "historyId": {
            "description": "The ID of the last history record that modified this thread.",
            "format": "uint64",
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the thread.",
            "type": "string"
          },
          "messages": {
            "description": "The list of messages in the thread.",
            "items": {
              "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_insert"
            },
            "type": "array"
          },
          "snippet": {
            "description": "A short part of the message text.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_Thread_gmail_users_messages_send": {
        "description": "A collection of messages representing a conversation.",
        "properties": {
          "historyId": {
            "description": "The ID of the last history record that modified this thread.",
            "format": "uint64",
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the thread.",
            "type": "string"
          },
          "messages": {
            "description": "The list of messages in the thread.",
            "items": {
              "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_send"
            },
            "type": "array"
          },
          "snippet": {
            "description": "A short part of the message text.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_VacationSettings": {
        "description": "Vacation auto-reply settings for an account. These settings correspond to the \"Vacation responder\" feature in the web interface.",
        "properties": {
          "enableAutoReply": {
            "description": "Flag that controls whether Gmail automatically replies to messages.",
            "type": "boolean"
          },
          "endTime": {
            "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`.",
            "format": "int64",
            "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"
          },
          "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"
          },
          "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"
          },
          "restrictToContacts": {
            "description": "Flag that determines whether responses are sent to recipients who are not in the user's list of contacts.",
            "type": "boolean"
          },
          "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`.",
            "format": "int64",
            "type": "string"
          }
        },
        "type": "object"
      },
      "gmail_WatchRequest": {
        "description": "Set up or update a new push notification watch on this user's mailbox.",
        "properties": {
          "labelFilterAction": {
            "description": "Filtering behavior of `labelIds list` specified. This field is deprecated because it caused incorrect behavior in some cases; use `label_filter_behavior` instead.",
            "enum": [
              "include",
              "exclude"
            ],
            "type": "string"
          },
          "labelFilterBehavior": {
            "description": "Filtering behavior of `labelIds list` specified. This field replaces `label_filter_action`; if set, `label_filter_action` is ignored.",
            "enum": [
              "include",
              "exclude"
            ],
            "type": "string"
          },
          "labelIds": {
            "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.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "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"
          }
        },
        "type": "object"
      },
      "gmail_WatchResponse": {
        "description": "Push notification watch response.",
        "properties": {
          "expiration": {
            "description": "When Gmail will stop sending notifications for mailbox updates (epoch millis). Call `watch` again before this time to renew the watch.",
            "format": "int64",
            "type": "string"
          },
          "historyId": {
            "description": "The ID of the mailbox's current history record.",
            "format": "uint64",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "google": {
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth",
            "scopes": {},
            "tokenUrl": "https://oauth2.googleapis.com/token"
          }
        },
        "type": "oauth2"
      }
    }
  },
  "info": {
    "title": "Google Workspace",
    "version": "2026-10-27"
  },
  "openapi": "3.1.0",
  "paths": {
    "/calendar/v3/calendars": {
      "post": {
        "description": "Creates a secondary calendar.\nThe authenticated user for the request is made the data owner of the new calendar.\n\nNote: We recommend to authenticate as the intended data owner of the calendar. You can use domain-wide delegation of authority to allow applications to act on behalf of a specific user. Don't use a service account for authentication. If you use a service account for authentication, the service account is the data owner, which can lead to unexpected behavior. For example, if a service account is the data owner, data ownership cannot be transferred.",
        "operationId": "calendar.calendars.insert",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Calendar_calendar_calendars_insert"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Calendar"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendars"
            ]
          }
        ],
        "summary": "Creates a secondary calendar.\nThe authenticated user for the request is made the data owner of the new calendar.\n\nNote: We recommend to authenticate as the intended data owner of the calendar. You can use domain-wide delegation of authority to allow applications to act on behalf of a specific user. Don't use a service account for authentication. If you use a service account for authentication, the service account is the data owner, which can lead to unexpected behavior. For example, if a service account is the data owner, data ownership cannot be transferred.",
        "tags": [
          "calendar.calendars"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}": {
      "delete": {
        "description": "Deletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars.",
        "operationId": "calendar.calendars.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendars"
            ]
          }
        ],
        "summary": "Deletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars.",
        "tags": [
          "calendar.calendars"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Returns metadata for a calendar.",
        "operationId": "calendar.calendars.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Calendar"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendars"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendars.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Returns metadata for a calendar.",
        "tags": [
          "calendar.calendars"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "patch": {
        "description": "Updates metadata for a calendar. This method supports patch semantics.",
        "operationId": "calendar.calendars.patch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Calendar"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Calendar"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendars"
            ]
          }
        ],
        "summary": "Updates metadata for a calendar. This method supports patch semantics.",
        "tags": [
          "calendar.calendars"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "put": {
        "description": "Updates metadata for a calendar.",
        "operationId": "calendar.calendars.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Calendar"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Calendar"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendars"
            ]
          }
        ],
        "summary": "Updates metadata for a calendar.",
        "tags": [
          "calendar.calendars"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/acl": {
      "get": {
        "description": "Returns the rules in the access control list for the calendar.",
        "operationId": "calendar.acl.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Token specifying which result page to return. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "showDeleted",
            "required": false,
            "schema": {
              "description": "Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provided. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "syncToken",
            "required": false,
            "schema": {
              "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All entries deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Acl"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls.readonly"
            ]
          }
        ],
        "summary": "Returns the rules in the access control list for the calendar.",
        "tags": [
          "calendar.acl"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "post": {
        "description": "Creates an access control rule.",
        "operationId": "calendar.acl.insert",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendNotifications",
            "required": false,
            "schema": {
              "description": "Whether to send notifications about the calendar sharing change. Optional. The default is True.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_AclRule_calendar_acl_insert"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_AclRule"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls"
            ]
          }
        ],
        "summary": "Creates an access control rule.",
        "tags": [
          "calendar.acl"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/acl/watch": {
      "post": {
        "description": "Watch for changes to ACL resources.",
        "operationId": "calendar.acl.watch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Token specifying which result page to return. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "showDeleted",
            "required": false,
            "schema": {
              "description": "Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provided. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "syncToken",
            "required": false,
            "schema": {
              "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All entries deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Channel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Channel"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls.readonly"
            ]
          }
        ],
        "summary": "Watch for changes to ACL resources.",
        "tags": [
          "calendar.acl"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/acl/{ruleId}": {
      "delete": {
        "description": "Deletes an access control rule.",
        "operationId": "calendar.acl.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ruleId",
            "required": true,
            "schema": {
              "description": "ACL rule identifier.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls"
            ]
          }
        ],
        "summary": "Deletes an access control rule.",
        "tags": [
          "calendar.acl"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Returns an access control rule.",
        "operationId": "calendar.acl.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ruleId",
            "required": true,
            "schema": {
              "description": "ACL rule identifier.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_AclRule"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Returns an access control rule.",
        "tags": [
          "calendar.acl"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "patch": {
        "description": "Updates an access control rule. This method supports patch semantics.",
        "operationId": "calendar.acl.patch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ruleId",
            "required": true,
            "schema": {
              "description": "ACL rule identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendNotifications",
            "required": false,
            "schema": {
              "description": "Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_AclRule"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_AclRule"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls"
            ]
          }
        ],
        "summary": "Updates an access control rule. This method supports patch semantics.",
        "tags": [
          "calendar.acl"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "put": {
        "description": "Updates an access control rule.",
        "operationId": "calendar.acl.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ruleId",
            "required": true,
            "schema": {
              "description": "ACL rule identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendNotifications",
            "required": false,
            "schema": {
              "description": "Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_AclRule_calendar_acl_update"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_AclRule"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls"
            ]
          }
        ],
        "summary": "Updates an access control rule.",
        "tags": [
          "calendar.acl"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/clear": {
      "post": {
        "description": "Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.",
        "operationId": "calendar.calendars.clear",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendars"
            ]
          }
        ],
        "summary": "Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.",
        "tags": [
          "calendar.calendars"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/events": {
      "get": {
        "description": "Returns events on the specified calendar.",
        "operationId": "calendar.events.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "alwaysIncludeEmail",
            "required": false,
            "schema": {
              "description": "Deprecated and ignored.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "eventTypes",
            "required": false,
            "schema": {
              "items": {
                "description": "Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types.",
                "enum": [
                  "birthday",
                  "default",
                  "focusTime",
                  "fromGmail",
                  "outOfOffice",
                  "workingLocation"
                ],
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "iCalUID",
            "required": false,
            "schema": {
              "description": "Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxAttendees",
            "required": false,
            "schema": {
              "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "default": "250",
              "description": "Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "orderBy",
            "required": false,
            "schema": {
              "description": "The order of the events returned in the result. Optional. The default is an unspecified, stable order.",
              "enum": [
                "startTime",
                "updated"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Token specifying which result page to return. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "privateExtendedProperty",
            "required": false,
            "schema": {
              "items": {
                "description": "Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints.",
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "description": "Free text search terms to find events that match these terms in the following fields:\n\n- summary \n- description \n- location \n- attendee's displayName \n- attendee's email \n- organizer's displayName \n- organizer's email \n- workingLocationProperties.officeLocation.buildingId \n- workingLocationProperties.officeLocation.deskId \n- workingLocationProperties.officeLocation.label \n- workingLocationProperties.customLocation.label \nThese search terms also match predefined keywords against all display title translations of working location, out-of-office, and focus-time events. For example, searching for \"Office\" or \"Bureau\" returns working location events of type officeLocation, whereas searching for \"Out of office\" or \"Abwesend\" returns out-of-office events. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sharedExtendedProperty",
            "required": false,
            "schema": {
              "items": {
                "description": "Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints.",
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "showDeleted",
            "required": false,
            "schema": {
              "description": "Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "showHiddenInvitations",
            "required": false,
            "schema": {
              "description": "Whether to include hidden invitations in the result. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "singleEvents",
            "required": false,
            "schema": {
              "description": "Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "syncToken",
            "required": false,
            "schema": {
              "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nThere are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.\n\nThese are: \n- iCalUID \n- orderBy \n- privateExtendedProperty \n- q \n- sharedExtendedProperty \n- timeMin \n- timeMax \n- updatedMin All other query parameters should be the same as for the initial synchronization to avoid undefined behavior. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeMax",
            "required": false,
            "schema": {
              "description": "Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMin is set, timeMax must be greater than timeMin.",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeMin",
            "required": false,
            "schema": {
              "description": "Lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMax is set, timeMin must be smaller than timeMax.",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeZone",
            "required": false,
            "schema": {
              "description": "Time zone used in the response. Optional. The default is the time zone of the calendar.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "updatedMin",
            "required": false,
            "schema": {
              "description": "Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included regardless of showDeleted. Optional. The default is not to filter by last modification time.",
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Events"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.freebusy"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.public.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Returns events on the specified calendar.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "post": {
        "description": "Creates an event.",
        "operationId": "calendar.events.insert",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "conferenceDataVersion",
            "required": false,
            "schema": {
              "description": "Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.",
              "format": "int32",
              "maximum": 1,
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "eventLabelVersion",
            "required": false,
            "schema": {
              "description": "Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color management. Version 1 enables support for event labels, and processes the eventLabelId in the event's body. In this case, the colorId field is ignored. The default is 0.",
              "format": "int32",
              "maximum": 1,
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "maxAttendees",
            "required": false,
            "schema": {
              "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "sendNotifications",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the creation of the new event. Note that some emails might still be sent even if you set the value to false. The default is false.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "sendUpdates",
            "required": false,
            "schema": {
              "description": "Whether to send notifications about the creation of the new event. Note that some emails might still be sent. The default is false.",
              "enum": [
                "all",
                "externalOnly",
                "none"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAttachments",
            "required": false,
            "schema": {
              "description": "Whether API client performing operation supports event attachments. Optional. The default is False.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Event_calendar_events_insert"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Event"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          }
        ],
        "summary": "Creates an event.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/events/import": {
      "post": {
        "description": "Imports an event. This operation is used to add a private copy of an existing event to a calendar. Only events with an eventType of default may be imported.\nDeprecated behavior: If a non-default event is imported, its type will be changed to default and any event-type-specific properties it may have will be dropped.",
        "operationId": "calendar.events.import",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "conferenceDataVersion",
            "required": false,
            "schema": {
              "description": "Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.",
              "format": "int32",
              "maximum": 1,
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "eventLabelVersion",
            "required": false,
            "schema": {
              "description": "Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color management. Version 1 enables support for event labels, and processes the eventLabelId in the event's body. In this case, the colorId field is ignored. The default is 0.",
              "format": "int32",
              "maximum": 1,
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "supportsAttachments",
            "required": false,
            "schema": {
              "description": "Whether API client performing operation supports event attachments. Optional. The default is False.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Event_calendar_events_import"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Event"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          }
        ],
        "summary": "Imports an event. This operation is used to add a private copy of an existing event to a calendar. Only events with an eventType of default may be imported.\nDeprecated behavior: If a non-default event is imported, its type will be changed to default and any event-type-specific properties it may have will be dropped.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/events/quickAdd": {
      "post": {
        "description": "Creates an event based on a simple text string.",
        "operationId": "calendar.events.quickAdd",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendNotifications",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the creation of the event. Note that some emails might still be sent even if you set the value to false. The default is false.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "sendUpdates",
            "required": false,
            "schema": {
              "description": "Guests who should receive notifications about the creation of the new event.",
              "enum": [
                "all",
                "externalOnly",
                "none"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "text",
            "required": true,
            "schema": {
              "description": "The text describing the event to be created.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Event"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          }
        ],
        "summary": "Creates an event based on a simple text string.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/events/watch": {
      "post": {
        "description": "Watch for changes to Events resources.",
        "operationId": "calendar.events.watch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "alwaysIncludeEmail",
            "required": false,
            "schema": {
              "description": "Deprecated and ignored.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "eventTypes",
            "required": false,
            "schema": {
              "items": {
                "description": "Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types.",
                "enum": [
                  "birthday",
                  "default",
                  "focusTime",
                  "fromGmail",
                  "outOfOffice",
                  "workingLocation"
                ],
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "iCalUID",
            "required": false,
            "schema": {
              "description": "Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxAttendees",
            "required": false,
            "schema": {
              "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "default": "250",
              "description": "Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "orderBy",
            "required": false,
            "schema": {
              "description": "The order of the events returned in the result. Optional. The default is an unspecified, stable order.",
              "enum": [
                "startTime",
                "updated"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Token specifying which result page to return. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "privateExtendedProperty",
            "required": false,
            "schema": {
              "items": {
                "description": "Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints.",
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "description": "Free text search terms to find events that match these terms in the following fields:\n\n- summary \n- description \n- location \n- attendee's displayName \n- attendee's email \n- organizer's displayName \n- organizer's email \n- workingLocationProperties.officeLocation.buildingId \n- workingLocationProperties.officeLocation.deskId \n- workingLocationProperties.officeLocation.label \n- workingLocationProperties.customLocation.label \nThese search terms also match predefined keywords against all display title translations of working location, out-of-office, and focus-time events. For example, searching for \"Office\" or \"Bureau\" returns working location events of type officeLocation, whereas searching for \"Out of office\" or \"Abwesend\" returns out-of-office events. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sharedExtendedProperty",
            "required": false,
            "schema": {
              "items": {
                "description": "Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints.",
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "showDeleted",
            "required": false,
            "schema": {
              "description": "Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "showHiddenInvitations",
            "required": false,
            "schema": {
              "description": "Whether to include hidden invitations in the result. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "singleEvents",
            "required": false,
            "schema": {
              "description": "Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "syncToken",
            "required": false,
            "schema": {
              "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False.\nThere are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.\n\nThese are: \n- iCalUID \n- orderBy \n- privateExtendedProperty \n- q \n- sharedExtendedProperty \n- timeMin \n- timeMax \n- updatedMin All other query parameters should be the same as for the initial synchronization to avoid undefined behavior. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeMax",
            "required": false,
            "schema": {
              "description": "Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMin is set, timeMax must be greater than timeMin.",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeMin",
            "required": false,
            "schema": {
              "description": "Lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMax is set, timeMin must be smaller than timeMax.",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeZone",
            "required": false,
            "schema": {
              "description": "Time zone used in the response. Optional. The default is the time zone of the calendar.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "updatedMin",
            "required": false,
            "schema": {
              "description": "Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included regardless of showDeleted. Optional. The default is not to filter by last modification time.",
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Channel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Channel"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.freebusy"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.public.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Watch for changes to Events resources.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/events/{eventId}": {
      "delete": {
        "description": "Deletes an event.",
        "operationId": "calendar.events.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "eventId",
            "required": true,
            "schema": {
              "description": "Event identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendNotifications",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the deletion of the event. Note that some emails might still be sent even if you set the value to false. The default is false.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "sendUpdates",
            "required": false,
            "schema": {
              "description": "Guests who should receive notifications about the deletion of the event.",
              "enum": [
                "all",
                "externalOnly",
                "none"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          }
        ],
        "summary": "Deletes an event.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter.",
        "operationId": "calendar.events.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "alwaysIncludeEmail",
            "required": false,
            "schema": {
              "description": "Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "eventId",
            "required": true,
            "schema": {
              "description": "Event identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxAttendees",
            "required": false,
            "schema": {
              "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "timeZone",
            "required": false,
            "schema": {
              "description": "Time zone used in the response. Optional. The default is the time zone of the calendar.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Event"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.freebusy"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.public.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "patch": {
        "description": "Updates an event. This method supports patch semantics.",
        "operationId": "calendar.events.patch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "alwaysIncludeEmail",
            "required": false,
            "schema": {
              "description": "Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "conferenceDataVersion",
            "required": false,
            "schema": {
              "description": "Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.",
              "format": "int32",
              "maximum": 1,
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "eventId",
            "required": true,
            "schema": {
              "description": "Event identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "eventLabelVersion",
            "required": false,
            "schema": {
              "description": "Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color management. Version 1 enables support for event labels, and processes the eventLabelId in the event's body. In this case, the colorId field is ignored. The default is 0.",
              "format": "int32",
              "maximum": 1,
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "maxAttendees",
            "required": false,
            "schema": {
              "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "sendNotifications",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the event update (for example, description changes, etc.). Note that some emails might still be sent even if you set the value to false. The default is false.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "sendUpdates",
            "required": false,
            "schema": {
              "description": "Guests who should receive notifications about the event update (for example, title changes, etc.).",
              "enum": [
                "all",
                "externalOnly",
                "none"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAttachments",
            "required": false,
            "schema": {
              "description": "Whether API client performing operation supports event attachments. Optional. The default is False.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Event"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Event"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          }
        ],
        "summary": "Updates an event. This method supports patch semantics.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "put": {
        "description": "Updates an event.",
        "operationId": "calendar.events.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "alwaysIncludeEmail",
            "required": false,
            "schema": {
              "description": "Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "conferenceDataVersion",
            "required": false,
            "schema": {
              "description": "Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.",
              "format": "int32",
              "maximum": 1,
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "eventId",
            "required": true,
            "schema": {
              "description": "Event identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "eventLabelVersion",
            "required": false,
            "schema": {
              "description": "Version number of the event label feature supported by the API client. Version 0 assumes no event label support and processes the colorId field for color management. Version 1 enables support for event labels, and processes the eventLabelId in the event's body. In this case, the colorId field is ignored. The default is 0.",
              "format": "int32",
              "maximum": 1,
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "maxAttendees",
            "required": false,
            "schema": {
              "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "sendNotifications",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the event update (for example, description changes, etc.). Note that some emails might still be sent even if you set the value to false. The default is false.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "sendUpdates",
            "required": false,
            "schema": {
              "description": "Guests who should receive notifications about the event update (for example, title changes, etc.).",
              "enum": [
                "all",
                "externalOnly",
                "none"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAttachments",
            "required": false,
            "schema": {
              "description": "Whether API client performing operation supports event attachments. Optional. The default is False.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Event_calendar_events_update"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Event"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          }
        ],
        "summary": "Updates an event.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/events/{eventId}/instances": {
      "get": {
        "description": "Returns instances of the specified recurring event.",
        "operationId": "calendar.events.instances",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "alwaysIncludeEmail",
            "required": false,
            "schema": {
              "description": "Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "eventId",
            "required": true,
            "schema": {
              "description": "Recurring event identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxAttendees",
            "required": false,
            "schema": {
              "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "description": "Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "originalStart",
            "required": false,
            "schema": {
              "description": "The original start time of the instance in the result. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Token specifying which result page to return. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "showDeleted",
            "required": false,
            "schema": {
              "description": "Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events will still be included if singleEvents is False. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "timeMax",
            "required": false,
            "schema": {
              "description": "Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset.",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeMin",
            "required": false,
            "schema": {
              "description": "Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset.",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "timeZone",
            "required": false,
            "schema": {
              "description": "Time zone used in the response. Optional. The default is the time zone of the calendar.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Events"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.freebusy"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.public.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Returns instances of the specified recurring event.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/events/{eventId}/move": {
      "post": {
        "description": "Moves an event to another calendar, i.e. changes an event's organizer. Note that only default events can be moved; birthday, focusTime, fromGmail, outOfOffice and workingLocation events cannot be moved.",
        "operationId": "calendar.events.move",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier of the source calendar where the event currently is on.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "destination",
            "required": true,
            "schema": {
              "description": "Calendar identifier of the target calendar where the event is to be moved to.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "eventId",
            "required": true,
            "schema": {
              "description": "Event identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendNotifications",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use sendUpdates instead.\n\nWhether to send notifications about the change of the event's organizer. Note that some emails might still be sent even if you set the value to false. The default is false.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "sendUpdates",
            "required": false,
            "schema": {
              "description": "Guests who should receive notifications about the change of the event's organizer.",
              "enum": [
                "all",
                "externalOnly",
                "none"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Event"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          }
        ],
        "summary": "Moves an event to another calendar, i.e. changes an event's organizer. Note that only default events can be moved; birthday, focusTime, fromGmail, outOfOffice and workingLocation events cannot be moved.",
        "tags": [
          "calendar.events"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/calendars/{calendarId}/transferOwnership": {
      "post": {
        "description": "Transfers a secondary calendar between users within a Google Workspace organization. Requires user authentication with Manage Calendars administrator privilege, and one of the following authorization scopes: \n- https://www.googleapis.com/auth/calendar \n- https://www.googleapis.com/auth/calendar.calendars In the request, set useAdminAccess to true. The secondary calendar must be active to be transferred. Transferring disabled or deleted calendars isn't supported.",
        "operationId": "calendar.calendars.transferOwnership",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs, call the calendarList.list method.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "newDataOwner",
            "required": true,
            "schema": {
              "description": "The email address of a user who will become the data owner of the calendar.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "useAdminAccess",
            "required": true,
            "schema": {
              "description": "When true, the method runs using the user's Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the Manage Calendars privilege. This method currently only supports admin access, thus only true is accepted for this field.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendars"
            ]
          }
        ],
        "summary": "Transfers a secondary calendar between users within a Google Workspace organization. Requires user authentication with Manage Calendars administrator privilege, and one of the following authorization scopes: \n- https://www.googleapis.com/auth/calendar \n- https://www.googleapis.com/auth/calendar.calendars In the request, set useAdminAccess to true. The secondary calendar must be active to be transferred. Transferring disabled or deleted calendars isn't supported.",
        "tags": [
          "calendar.calendars"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/channels/stop": {
      "post": {
        "description": "Stop watching resources through this channel",
        "operationId": "calendar.channels.stop",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Channel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.acls.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.freebusy"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.public.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.settings"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.settings.readonly"
            ]
          }
        ],
        "summary": "Stop watching resources through this channel",
        "tags": [
          "calendar.channels"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/colors": {
      "get": {
        "description": "Returns the color definitions for calendars and events.",
        "operationId": "calendar.colors.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Colors"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.freebusy"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.owned.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.public.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Returns the color definitions for calendars and events.",
        "tags": [
          "calendar.colors"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/freeBusy": {
      "post": {
        "description": "Returns free/busy information for a set of calendars.",
        "operationId": "calendar.freebusy.query",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_FreeBusyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_FreeBusyResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.events.freebusy"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.freebusy"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Returns free/busy information for a set of calendars.",
        "tags": [
          "calendar.freebusy"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/users/me/calendarList": {
      "get": {
        "description": "Returns the calendars on the user's calendar list.",
        "operationId": "calendar.calendarList.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "minAccessRole",
            "required": false,
            "schema": {
              "description": "The minimum access role for the user in the returned entries. Optional. The default is no restriction.",
              "enum": [
                "freeBusyReader",
                "owner",
                "reader",
                "writer",
                "writerWithoutPrivateAccess"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Token specifying which result page to return. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "showDeleted",
            "required": false,
            "schema": {
              "description": "Whether to include deleted calendar list entries in the result. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "showHidden",
            "required": false,
            "schema": {
              "description": "Whether to show hidden entries. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "showOwnOrganizationOnly",
            "required": false,
            "schema": {
              "description": "Whether to show only entries for calendars from the organization. This parameter is only applicable to Google Workspace users. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "syncToken",
            "required": false,
            "schema": {
              "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If only read-only fields such as calendar properties or ACLs have changed, the entry won't be returned. All entries deleted and hidden since the previous list request will always be in the result set and it is not allowed to set showDeleted neither showHidden to False.\nTo ensure client state consistency minAccessRole and showOwnOrganizationOnly query parameters cannot be specified together with nextSyncToken.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_CalendarList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Returns the calendars on the user's calendar list.",
        "tags": [
          "calendar.calendarList"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "post": {
        "description": "Inserts an existing calendar into the user's calendar list.",
        "operationId": "calendar.calendarList.insert",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "colorRgbFormat",
            "required": false,
            "schema": {
              "description": "Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_CalendarListEntry_calendar_calendarList_insert"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_CalendarListEntry"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist"
            ]
          }
        ],
        "summary": "Inserts an existing calendar into the user's calendar list.",
        "tags": [
          "calendar.calendarList"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/users/me/calendarList/watch": {
      "post": {
        "description": "Watch for changes to CalendarList resources.",
        "operationId": "calendar.calendarList.watch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "minAccessRole",
            "required": false,
            "schema": {
              "description": "The minimum access role for the user in the returned entries. Optional. The default is no restriction.",
              "enum": [
                "freeBusyReader",
                "owner",
                "reader",
                "writer",
                "writerWithoutPrivateAccess"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Token specifying which result page to return. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "showDeleted",
            "required": false,
            "schema": {
              "description": "Whether to include deleted calendar list entries in the result. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "showHidden",
            "required": false,
            "schema": {
              "description": "Whether to show hidden entries. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "showOwnOrganizationOnly",
            "required": false,
            "schema": {
              "description": "Whether to show only entries for calendars from the organization. This parameter is only applicable to Google Workspace users. Optional. The default is False.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "syncToken",
            "required": false,
            "schema": {
              "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If only read-only fields such as calendar properties or ACLs have changed, the entry won't be returned. All entries deleted and hidden since the previous list request will always be in the result set and it is not allowed to set showDeleted neither showHidden to False.\nTo ensure client state consistency minAccessRole and showOwnOrganizationOnly query parameters cannot be specified together with nextSyncToken.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Channel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Channel"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Watch for changes to CalendarList resources.",
        "tags": [
          "calendar.calendarList"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/users/me/calendarList/{calendarId}": {
      "delete": {
        "description": "Removes a calendar from the user's calendar list.",
        "operationId": "calendar.calendarList.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist"
            ]
          }
        ],
        "summary": "Removes a calendar from the user's calendar list.",
        "tags": [
          "calendar.calendarList"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Returns a calendar from the user's calendar list.",
        "operationId": "calendar.calendarList.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_CalendarListEntry"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          }
        ],
        "summary": "Returns a calendar from the user's calendar list.",
        "tags": [
          "calendar.calendarList"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "patch": {
        "description": "Updates an existing calendar on the user's calendar list. This method supports patch semantics.",
        "operationId": "calendar.calendarList.patch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "colorRgbFormat",
            "required": false,
            "schema": {
              "description": "Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_CalendarListEntry"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_CalendarListEntry"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist"
            ]
          }
        ],
        "summary": "Updates an existing calendar on the user's calendar list. This method supports patch semantics.",
        "tags": [
          "calendar.calendarList"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      },
      "put": {
        "description": "Updates an existing calendar on the user's calendar list.",
        "operationId": "calendar.calendarList.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "calendarId",
            "required": true,
            "schema": {
              "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "colorRgbFormat",
            "required": false,
            "schema": {
              "description": "Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_CalendarListEntry"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_CalendarListEntry"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.app.created"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.calendarlist"
            ]
          }
        ],
        "summary": "Updates an existing calendar on the user's calendar list.",
        "tags": [
          "calendar.calendarList"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/users/me/settings": {
      "get": {
        "description": "Returns all user settings for the authenticated user.",
        "operationId": "calendar.settings.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Token specifying which result page to return. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "syncToken",
            "required": false,
            "schema": {
              "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Settings"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.settings"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.settings.readonly"
            ]
          }
        ],
        "summary": "Returns all user settings for the authenticated user.",
        "tags": [
          "calendar.settings"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/users/me/settings/watch": {
      "post": {
        "description": "Watch for changes to Settings resources.",
        "operationId": "calendar.settings.watch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "description": "Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.",
              "format": "int32",
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Token specifying which result page to return. Optional.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "syncToken",
            "required": false,
            "schema": {
              "description": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then.\nIf the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken.\nLearn more about incremental synchronization.\nOptional. The default is to return all entries.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/calendar_Channel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Channel"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.settings"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.settings.readonly"
            ]
          }
        ],
        "summary": "Watch for changes to Settings resources.",
        "tags": [
          "calendar.settings"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/calendar/v3/users/me/settings/{setting}": {
      "get": {
        "description": "Returns a single user setting.",
        "operationId": "calendar.settings.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "userIp",
            "required": false,
            "schema": {
              "description": "Deprecated. Please use quotaUser instead.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "setting",
            "required": true,
            "schema": {
              "description": "The id of the user setting.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/calendar_Setting"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/calendar"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.settings"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/calendar.settings.readonly"
            ]
          }
        ],
        "summary": "Returns a single user setting.",
        "tags": [
          "calendar.settings"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "calendar",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/about": {
      "get": {
        "description": "Gets information about the user, the user's Drive, and system capabilities. For more information, see [Return user info](https://developers.google.com/workspace/drive/api/guides/user-info). Required: The `fields` parameter must be set. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "operationId": "drive.about.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_About"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Gets information about the user, the user's Drive, and system capabilities. For more information, see [Return user info](https://developers.google.com/workspace/drive/api/guides/user-info). Required: The `fields` parameter must be set. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "tags": [
          "drive.about"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/apps": {
      "get": {
        "description": "Lists a user's installed apps. For more information, see [Return user info](https://developers.google.com/workspace/drive/api/guides/user-info).",
        "operationId": "drive.apps.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "appFilterExtensions",
            "required": false,
            "schema": {
              "default": "",
              "description": "A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given file extensions are included in the response. If `appFilterMimeTypes` are provided as well, the result is a union of the two resulting app lists.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "appFilterMimeTypes",
            "required": false,
            "schema": {
              "default": "",
              "description": "A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given MIME types will be included in the response. If `appFilterExtensions` are provided as well, the result is a union of the two resulting app lists.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "languageCode",
            "required": false,
            "schema": {
              "description": "A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format (http://www.unicode.org/reports/tr35/).",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_AppList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive.apps.readonly"
            ]
          }
        ],
        "summary": "Lists a user's installed apps. For more information, see [Return user info](https://developers.google.com/workspace/drive/api/guides/user-info).",
        "tags": [
          "drive.apps"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/apps/{appId}": {
      "get": {
        "description": "Gets a specific app. For more information, see [Return user info](https://developers.google.com/workspace/drive/api/guides/user-info).",
        "operationId": "drive.apps.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "appId",
            "required": true,
            "schema": {
              "description": "The ID of the app.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_App"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.apps.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Gets a specific app. For more information, see [Return user info](https://developers.google.com/workspace/drive/api/guides/user-info).",
        "tags": [
          "drive.apps"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/changes": {
      "get": {
        "description": "Lists the changes for a user or shared drive. For more information, see [Retrieve changes](https://developers.google.com/workspace/drive/api/guides/manage-changes).",
        "operationId": "drive.changes.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "driveId",
            "required": false,
            "schema": {
              "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeCorpusRemovals",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeItemsFromAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether both My Drive and shared drive items should be included in results.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLabels",
            "required": false,
            "schema": {
              "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeRemoved",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeTeamDriveItems",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `includeItemsFromAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": "100",
              "description": "The maximum number of changes to return. The service may return fewer than this value. If unspecified, at most 100 changes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
              "format": "int32",
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": true,
            "schema": {
              "description": "The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the response from the getStartPageToken method.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "restrictToMyDrive",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "spaces",
            "required": false,
            "schema": {
              "default": "drive",
              "description": "A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "teamDriveId",
            "required": false,
            "schema": {
              "description": "Deprecated: Use `driveId` instead.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_ChangeList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Lists the changes for a user or shared drive. For more information, see [Retrieve changes](https://developers.google.com/workspace/drive/api/guides/manage-changes).",
        "tags": [
          "drive.changes"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/changes/startPageToken": {
      "get": {
        "description": "Gets the starting pageToken for listing future changes. For more information, see [Retrieve changes](https://developers.google.com/workspace/drive/api/guides/manage-changes).",
        "operationId": "drive.changes.getStartPageToken",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "driveId",
            "required": false,
            "schema": {
              "description": "The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "teamDriveId",
            "required": false,
            "schema": {
              "description": "Deprecated: Use `driveId` instead.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_StartPageToken"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Gets the starting pageToken for listing future changes. For more information, see [Retrieve changes](https://developers.google.com/workspace/drive/api/guides/manage-changes).",
        "tags": [
          "drive.changes"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/changes/watch": {
      "post": {
        "description": "Subscribes to changes for a user. For more information, see [Notifications for resource changes](https://developers.google.com/workspace/drive/api/guides/push).",
        "operationId": "drive.changes.watch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "driveId",
            "required": false,
            "schema": {
              "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeCorpusRemovals",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeItemsFromAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether both My Drive and shared drive items should be included in results.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLabels",
            "required": false,
            "schema": {
              "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only 'published' is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeRemoved",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeTeamDriveItems",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `includeItemsFromAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": "100",
              "description": "The maximum number of changes to return. The service may return fewer than this value. If unspecified, at most 100 changes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
              "format": "int32",
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": true,
            "schema": {
              "description": "The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response or to the response from the getStartPageToken method.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "restrictToMyDrive",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to restrict the results to changes inside the My Drive hierarchy. This omits changes to files such as those in the Application Data folder or shared files which have not been added to My Drive.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "spaces",
            "required": false,
            "schema": {
              "default": "drive",
              "description": "A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "teamDriveId",
            "required": false,
            "schema": {
              "description": "Deprecated: Use `driveId` instead.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Channel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Channel"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Subscribes to changes for a user. For more information, see [Notifications for resource changes](https://developers.google.com/workspace/drive/api/guides/push).",
        "tags": [
          "drive.changes"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/channels/stop": {
      "post": {
        "description": "Stops watching resources through this channel. For more information, see [Notifications for resource changes](https://developers.google.com/workspace/drive/api/guides/push).",
        "operationId": "drive.channels.stop",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Channel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Stops watching resources through this channel. For more information, see [Notifications for resource changes](https://developers.google.com/workspace/drive/api/guides/push).",
        "tags": [
          "drive.channels"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/drives": {
      "get": {
        "description": " Lists the user's shared drives. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for shared drives](https://developers.google.com/workspace/drive/api/guides/search-shareddrives) guide.",
        "operationId": "drive.drives.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": "10",
              "description": "The maximum number of shared drives to return. The service may return fewer than this value. If unspecified, at most 10 shared drives will be returned. The maximum value is 100; values above 100 will be coerced to 100.",
              "format": "int32",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Page token for shared drives.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "description": "Query string for searching shared drives.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator; if set to true, then all shared drives of the domain in which the requester is an administrator are returned.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_DriveList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": " Lists the user's shared drives. This method accepts the `q` parameter, which is a search query combining one or more search terms. For more information, see the [Search for shared drives](https://developers.google.com/workspace/drive/api/guides/search-shareddrives) guide.",
        "tags": [
          "drive.drives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "post": {
        "description": "Creates a shared drive. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "operationId": "drive.drives.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestId",
            "required": true,
            "schema": {
              "description": "Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same shared drive. If the shared drive already exists a 409 error will be returned.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Drive"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Drive"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          }
        ],
        "summary": "Creates a shared drive. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "tags": [
          "drive.drives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/drives/{driveId}": {
      "delete": {
        "description": "Permanently deletes a shared drive for which the user is an `organizer`. The shared drive cannot contain any untrashed items. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "operationId": "drive.drives.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "allowItemDeletion",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether any items inside the shared drive should also be deleted. This option is only supported when `useDomainAdminAccess` is also set to `true`.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "driveId",
            "required": true,
            "schema": {
              "description": "The ID of the shared drive.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          }
        ],
        "summary": "Permanently deletes a shared drive for which the user is an `organizer`. The shared drive cannot contain any untrashed items. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "tags": [
          "drive.drives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets a shared drive's metadata by ID. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "operationId": "drive.drives.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "driveId",
            "required": true,
            "schema": {
              "description": "The ID of the shared drive.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Drive"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Gets a shared drive's metadata by ID. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "tags": [
          "drive.drives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "patch": {
        "description": "Updates the metadata for a shared drive. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "operationId": "drive.drives.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "driveId",
            "required": true,
            "schema": {
              "description": "The ID of the shared drive.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Drive"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Drive"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          }
        ],
        "summary": "Updates the metadata for a shared drive. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "tags": [
          "drive.drives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/drives/{driveId}/hide": {
      "post": {
        "description": "Hides a shared drive from the default view. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "operationId": "drive.drives.hide",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "driveId",
            "required": true,
            "schema": {
              "description": "The ID of the shared drive.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Drive"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          }
        ],
        "summary": "Hides a shared drive from the default view. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "tags": [
          "drive.drives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/drives/{driveId}/unhide": {
      "post": {
        "description": "Restores a shared drive to the default view. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "operationId": "drive.drives.unhide",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "driveId",
            "required": true,
            "schema": {
              "description": "The ID of the shared drive.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Drive"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          }
        ],
        "summary": "Restores a shared drive to the default view. For more information, see [Manage shared drives](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives).",
        "tags": [
          "drive.drives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files": {
      "get": {
        "description": " Lists the user's files. For more information, see [Search for files and folders](https://developers.google.com/workspace/drive/api/guides/search-files). This method accepts the `q` parameter, which is a search query combining one or more search terms. This method returns *all* files by default, including trashed files. If you don't want trashed files to appear in the list, use the `trashed=false` query parameter to remove trashed files from the results.",
        "operationId": "drive.files.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "corpora",
            "required": false,
            "schema": {
              "description": "Specifies a collection of items (files or documents) to which the query applies. Supported items include: * `user` * `domain` * `drive` * `allDrives` Prefer `user` or `drive` to `allDrives` for efficiency. By default, corpora is set to `user`. However, this can change depending on the filter set through the `q` parameter. For more information, see [File organization](https://developers.google.com/workspace/drive/api/guides/about-files#file-organization).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "corpus",
            "required": false,
            "schema": {
              "description": "Deprecated: The source of files to list. Use `corpora` instead.",
              "enum": [
                "domain",
                "user"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "driveId",
            "required": false,
            "schema": {
              "description": "ID of the shared drive to search.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeItemsFromAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether both My Drive and shared drive items should be included in results.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLabels",
            "required": false,
            "schema": {
              "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeTeamDriveItems",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `includeItemsFromAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "orderBy",
            "required": false,
            "schema": {
              "description": "A comma-separated list of sort keys. Valid keys are: * `createdTime`: When the file was created. Avoid using this key for queries on large item collections as it might result in timeouts or other issues. For time-related sorting on large item collections, use `modifiedTime desc` instead. * `folder`: The folder ID. This field is sorted using alphabetical ordering. * `modifiedByMeTime`: The last time the file was modified by the user. * `modifiedTime`: The last time the file was modified by anyone. * `name`: The name of the file. This field is sorted using alphabetical ordering, so 1, 12, 2, 22. * `name_natural`: The name of the file. This field is sorted using natural sort ordering, so 1, 2, 12, 22. * `quotaBytesUsed`: The number of storage quota bytes used by the file. * `recency`: The most recent timestamp from the file's date-time fields. * `sharedWithMeTime`: When the file was shared with the user, if applicable. * `starred`: Whether the user has starred the file. * `viewedByMeTime`: The last time the file was viewed by the user. Each key sorts ascending by default, but can be reversed with the `desc` modifier. Example usage: `?orderBy=folder,modifiedTime desc,name`.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": "100",
              "description": "The maximum number of files to return. The service may return fewer than this value. If unspecified, at most 100 files will be returned for shared drives, and the entire list of files for non-shared drives. The maximum value is 1000; values above 1000 will be coerced to 1000.",
              "format": "int32",
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "description": "A query for filtering the file results. For supported syntax, see [Search for files and folders](/workspace/drive/api/guides/search-files).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "spaces",
            "required": false,
            "schema": {
              "default": "drive",
              "description": "A comma-separated list of spaces to query within the corpora. Supported values are `drive` and `appDataFolder`. For more information, see [File organization](https://developers.google.com/workspace/drive/api/guides/about-files#file-organization).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "teamDriveId",
            "required": false,
            "schema": {
              "description": "Deprecated: Use `driveId` instead.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_FileList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": " Lists the user's files. For more information, see [Search for files and folders](https://developers.google.com/workspace/drive/api/guides/search-files). This method accepts the `q` parameter, which is a search query combining one or more search terms. This method returns *all* files by default, including trashed files. If you don't want trashed files to appear in the list, use the `trashed=false` query parameter to remove trashed files from the results.",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "post": {
        "description": " Creates a file. For more information, see [Create and manage files](https://developers.google.com/workspace/drive/api/guides/create-file). This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:* `*/*` (Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information, see [Google Workspace and Google Drive supported MIME types](https://developers.google.com/workspace/drive/api/guides/mime-types).) For more information on uploading files, see [Upload file data](https://developers.google.com/workspace/drive/api/guides/manage-uploads). Apps creating shortcuts with the `create` method must specify the MIME type `application/vnd.google-apps.shortcut`. Apps should specify a file extension in the `name` property when inserting files with the API. For example, an operation to insert a JPEG file should specify something like `\"name\": \"cat.jpg\"` in the metadata. Subsequent `GET` requests include the read-only `fileExtension` property populated with the extension originally specified in the `name` property. When a Google Drive user requests to download a file, or when the file is downloaded through the sync client, Drive builds a full filename (with extension) based on the name. In cases where the extension is missing, Drive attempts to determine the extension based on the file's MIME type.",
        "operationId": "drive.files.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "enforceSingleParent",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Creating files in multiple folders is no longer supported.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "ignoreDefaultVisibility",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLabels",
            "required": false,
            "schema": {
              "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "keepRevisionForever",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "ocrLanguage",
            "required": false,
            "schema": {
              "description": "A language hint for OCR processing during image import (ISO 639-1 code).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "useContentAsIndexableText",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to use the uploaded content as indexable text.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_File"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_File"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": " Creates a file. For more information, see [Create and manage files](https://developers.google.com/workspace/drive/api/guides/create-file). This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:* `*/*` (Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information, see [Google Workspace and Google Drive supported MIME types](https://developers.google.com/workspace/drive/api/guides/mime-types).) For more information on uploading files, see [Upload file data](https://developers.google.com/workspace/drive/api/guides/manage-uploads). Apps creating shortcuts with the `create` method must specify the MIME type `application/vnd.google-apps.shortcut`. Apps should specify a file extension in the `name` property when inserting files with the API. For example, an operation to insert a JPEG file should specify something like `\"name\": \"cat.jpg\"` in the metadata. Subsequent `GET` requests include the read-only `fileExtension` property populated with the extension originally specified in the `name` property. When a Google Drive user requests to download a file, or when the file is downloaded through the sync client, Drive builds a full filename (with extension) based on the name. In cases where the extension is missing, Drive attempts to determine the extension based on the file's MIME type.",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/generateIds": {
      "get": {
        "description": "Generates a set of file IDs which can be provided in create or copy requests. For more information, see [Create and manage files](https://developers.google.com/workspace/drive/api/guides/create-file).",
        "operationId": "drive.files.generateIds",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "count",
            "required": false,
            "schema": {
              "default": "10",
              "description": "The number of IDs to return.",
              "format": "int32",
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "space",
            "required": false,
            "schema": {
              "default": "drive",
              "description": "The space in which the IDs can be used to create files. Supported values are `drive` and `appDataFolder`. (Default: `drive`.) For more information, see [File organization](https://developers.google.com/workspace/drive/api/guides/about-files#file-organization).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "default": "files",
              "description": "The type of items which the IDs can be used for. Supported values are `files` and `shortcuts`. Note that `shortcuts` are only supported in the `drive` `space`. (Default: `files`.) For more information, see [File organization](https://developers.google.com/workspace/drive/api/guides/about-files#file-organization).",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_GeneratedIds"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Generates a set of file IDs which can be provided in create or copy requests. For more information, see [Create and manage files](https://developers.google.com/workspace/drive/api/guides/create-file).",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/trash": {
      "delete": {
        "description": "Permanently deletes all of the user's trashed files. For more information, see [Trash or delete files and folders](https://developers.google.com/workspace/drive/api/guides/delete).",
        "operationId": "drive.files.emptyTrash",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "driveId",
            "required": false,
            "schema": {
              "description": "If set, empties the trash of the provided shared drive.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "enforceSingleParent",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: If an item isn't in a shared drive and its last parent is deleted but the item itself isn't, the item will be placed under its owner's root.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          }
        ],
        "summary": "Permanently deletes all of the user's trashed files. For more information, see [Trash or delete files and folders](https://developers.google.com/workspace/drive/api/guides/delete).",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}": {
      "delete": {
        "description": "Permanently deletes a file owned by the user without moving it to the trash. For more information, see [Trash or delete files and folders](https://developers.google.com/workspace/drive/api/guides/delete). If the file belongs to a shared drive, the user must be an `organizer` on the parent folder. If the target is a folder, all descendants owned by the user are also deleted.",
        "operationId": "drive.files.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "enforceSingleParent",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: If an item isn't in a shared drive and its last parent is deleted but the item itself isn't, the item will be placed under its owner's root.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Permanently deletes a file owned by the user without moving it to the trash. For more information, see [Trash or delete files and folders](https://developers.google.com/workspace/drive/api/guides/delete). If the file belongs to a shared drive, the user must be an `organizer` on the parent folder. If the target is a folder, all descendants owned by the user are also deleted.",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": " Gets a file's metadata or content by ID. For more information, see [Search for files and folders](https://developers.google.com/workspace/drive/api/guides/search-files). If you provide the URL parameter `alt=media`, then the response includes the file contents in the response body. Downloading content with `alt=media` only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use [`files.export`](https://developers.google.com/workspace/drive/api/reference/rest/v3/files/export) instead. For more information, see [Download and export files](https://developers.google.com/workspace/drive/api/guides/manage-downloads).",
        "operationId": "drive.files.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "acknowledgeAbuse",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `media` and the user is the owner of the file or an organizer of the shared drive in which the file resides.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeLabels",
            "required": false,
            "schema": {
              "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_File"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": " Gets a file's metadata or content by ID. For more information, see [Search for files and folders](https://developers.google.com/workspace/drive/api/guides/search-files). If you provide the URL parameter `alt=media`, then the response includes the file contents in the response body. Downloading content with `alt=media` only works if the file is stored in Drive. To download Google Docs, Sheets, and Slides use [`files.export`](https://developers.google.com/workspace/drive/api/reference/rest/v3/files/export) instead. For more information, see [Download and export files](https://developers.google.com/workspace/drive/api/guides/manage-downloads).",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": true
      },
      "patch": {
        "description": " Updates a file's metadata, content, or both. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:* `*/*` (Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information, see [Google Workspace and Google Drive supported MIME types](https://developers.google.com/workspace/drive/api/guides/mime-types).) For more information on uploading files, see [Upload file data](https://developers.google.com/workspace/drive/api/guides/manage-uploads).",
        "operationId": "drive.files.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "addParents",
            "required": false,
            "schema": {
              "description": "A comma-separated list of parent IDs to add.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "enforceSingleParent",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Adding files to multiple folders is no longer supported. Use shortcuts instead.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeLabels",
            "required": false,
            "schema": {
              "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "keepRevisionForever",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "ocrLanguage",
            "required": false,
            "schema": {
              "description": "A language hint for OCR processing during image import (ISO 639-1 code).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "removeParents",
            "required": false,
            "schema": {
              "description": "A comma-separated list of parent IDs to remove.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "useContentAsIndexableText",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to use the uploaded content as indexable text.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_File"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_File"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.scripts"
            ]
          }
        ],
        "summary": " Updates a file's metadata, content, or both. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:* `*/*` (Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information, see [Google Workspace and Google Drive supported MIME types](https://developers.google.com/workspace/drive/api/guides/mime-types).) For more information on uploading files, see [Upload file data](https://developers.google.com/workspace/drive/api/guides/manage-uploads).",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/accessproposals": {
      "get": {
        "description": "List the access proposals on a file. For more information, see [Manage pending access proposals](https://developers.google.com/workspace/drive/api/guides/pending-access). Note: Only approvers are able to list access proposals on a file. If the user isn't an approver, a 403 error is returned.",
        "operationId": "drive.accessproposals.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the item the request is on.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "description": "Optional. The number of results per page.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Optional. The continuation token on the list of access requests.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_ListAccessProposalsResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "List the access proposals on a file. For more information, see [Manage pending access proposals](https://developers.google.com/workspace/drive/api/guides/pending-access). Note: Only approvers are able to list access proposals on a file. If the user isn't an approver, a 403 error is returned.",
        "tags": [
          "drive.accessproposals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/accessproposals/{proposalId}": {
      "get": {
        "description": "Retrieves an access proposal by ID. For more information, see [Manage pending access proposals](https://developers.google.com/workspace/drive/api/guides/pending-access).",
        "operationId": "drive.accessproposals.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the item the request is on.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "proposalId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the access proposal to resolve.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_AccessProposal"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Retrieves an access proposal by ID. For more information, see [Manage pending access proposals](https://developers.google.com/workspace/drive/api/guides/pending-access).",
        "tags": [
          "drive.accessproposals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/accessproposals/{proposalId}:resolve": {
      "post": {
        "description": "Approves or denies an access proposal. For more information, see [Manage pending access proposals](https://developers.google.com/workspace/drive/api/guides/pending-access).",
        "operationId": "drive.accessproposals.resolve",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the item the request is on.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "proposalId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the access proposal to resolve.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_ResolveAccessProposalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Approves or denies an access proposal. For more information, see [Manage pending access proposals](https://developers.google.com/workspace/drive/api/guides/pending-access).",
        "tags": [
          "drive.accessproposals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/approvals": {
      "get": {
        "description": "Lists the approvals on a file. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). By default, this method returns a minimal response that may not include the items array. To retrieve approval details, you must explicitly specify the fields you want using the `fields` query parameter. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "operationId": "drive.approvals.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the file that the approval is on.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "description": "The maximum number of approvals to return. When not set, at most 100 approvals are returned.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from a previous response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_ApprovalList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Lists the approvals on a file. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). By default, this method returns a minimal response that may not include the items array. To retrieve approval details, you must explicitly specify the fields you want using the `fields` query parameter. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "tags": [
          "drive.approvals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/approvals/{approvalId}": {
      "get": {
        "description": "Gets an approval by ID. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals).",
        "operationId": "drive.approvals.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "approvalId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the approval.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the file that the approval is on.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Approval"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Gets an approval by ID. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals).",
        "tags": [
          "drive.approvals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/approvals/{approvalId}:approve": {
      "post": {
        "description": "Approves an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). This is used to update the ReviewerResponse of the requesting user with a Response of `APPROVED`. If this is the last required reviewer response, this also completes the approval and sets the approval Status to `APPROVED`.",
        "operationId": "drive.approvals.approve",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "approvalId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the approval to approve.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the file that the approval is on.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_ApproveApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Approval"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          }
        ],
        "summary": "Approves an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). This is used to update the ReviewerResponse of the requesting user with a Response of `APPROVED`. If this is the last required reviewer response, this also completes the approval and sets the approval Status to `APPROVED`.",
        "tags": [
          "drive.approvals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/approvals/{approvalId}:cancel": {
      "post": {
        "description": "Cancels an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). Updates the approval Status to `CANCELLED`. This can be called by any user with the `writer` permission on the file while the approval Status is `IN_PROGRESS`.",
        "operationId": "drive.approvals.cancel",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "approvalId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the approval to cancel.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the file that the approval is on.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_CancelApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Approval"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          }
        ],
        "summary": "Cancels an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). Updates the approval Status to `CANCELLED`. This can be called by any user with the `writer` permission on the file while the approval Status is `IN_PROGRESS`.",
        "tags": [
          "drive.approvals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/approvals/{approvalId}:comment": {
      "post": {
        "description": "Comments on an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). This sends a notification to both the initiator and the reviewers. Additionally, a message is also added to the approval activity log.",
        "operationId": "drive.approvals.comment",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "approvalId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the approval to comment on.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the file that the approval is on.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_CommentApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Approval"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          }
        ],
        "summary": "Comments on an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). This sends a notification to both the initiator and the reviewers. Additionally, a message is also added to the approval activity log.",
        "tags": [
          "drive.approvals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/approvals/{approvalId}:decline": {
      "post": {
        "description": "Declines an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). This is used to update the ReviewerResponse of the requesting user with a Response of `DECLINED`. This also completes the approval and sets the approval Status to `DECLINED`.",
        "operationId": "drive.approvals.decline",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "approvalId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the approval to decline.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the file that the approval is on.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_DeclineApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Approval"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          }
        ],
        "summary": "Declines an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). This is used to update the ReviewerResponse of the requesting user with a Response of `DECLINED`. This also completes the approval and sets the approval Status to `DECLINED`.",
        "tags": [
          "drive.approvals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/approvals/{approvalId}:reassign": {
      "post": {
        "description": "Reassigns the reviewers on an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). Adds or replaces reviewers in the ReviewerResponse of the approval. This can be called by any user with the `writer` permission on the file while the approval Status is `IN_PROGRESS` and the Response for the reviewer being reassigned is `NO_RESPONSE`. A user with the `reader` permission can only reassign an approval that's assigned to themselves. Removing a reviewer isn't allowed.",
        "operationId": "drive.approvals.reassign",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "approvalId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the approval to reassign.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the file that the approval is on.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_ReassignApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Approval"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          }
        ],
        "summary": "Reassigns the reviewers on an approval. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals). Adds or replaces reviewers in the ReviewerResponse of the approval. This can be called by any user with the `writer` permission on the file while the approval Status is `IN_PROGRESS` and the Response for the reviewer being reassigned is `NO_RESPONSE`. A user with the `reader` permission can only reassign an approval that's assigned to themselves. Removing a reviewer isn't allowed.",
        "tags": [
          "drive.approvals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/approvals:start": {
      "post": {
        "description": "Starts an approval on a file. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals).",
        "operationId": "drive.approvals.start",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the file that the approval is created on.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_StartApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Approval"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          }
        ],
        "summary": "Starts an approval on a file. For more information, see [Manage approvals](https://developers.google.com/workspace/drive/api/guides/approvals).",
        "tags": [
          "drive.approvals"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/comments": {
      "get": {
        "description": "Lists a file's comments. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). Required: The `fields` parameter must be set. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "operationId": "drive.comments.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeDeleted",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to include deleted comments. Deleted comments will not include their original content.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": "20",
              "description": "The maximum number of comments to return. The service may return fewer than this value. If unspecified, at most 20 comments will be returned. The maximum value is 100; values above 100 will be coerced to 100.",
              "format": "int32",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "startModifiedTime",
            "required": false,
            "schema": {
              "description": "The minimum value of 'modifiedTime' for the result comments (RFC 3339 date-time).",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_CommentList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Lists a file's comments. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). Required: The `fields` parameter must be set. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "tags": [
          "drive.comments"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "post": {
        "description": "Creates a comment on a file. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). Required: The `fields` parameter must be set. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "operationId": "drive.comments.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Comment_drive_comments_create"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Comment"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Creates a comment on a file. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). Required: The `fields` parameter must be set. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "tags": [
          "drive.comments"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/comments/{commentId}": {
      "delete": {
        "description": "Deletes a comment. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "operationId": "drive.comments.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "commentId",
            "required": true,
            "schema": {
              "description": "The ID of the comment.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Deletes a comment. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "tags": [
          "drive.comments"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets a comment by ID. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). Required: The `fields` parameter must be set. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "operationId": "drive.comments.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "commentId",
            "required": true,
            "schema": {
              "description": "The ID of the comment.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeDeleted",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to return deleted comments. Deleted comments will not include their original content.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Comment"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Gets a comment by ID. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). Required: The `fields` parameter must be set. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "tags": [
          "drive.comments"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "patch": {
        "description": "Updates a comment with patch semantics. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). Required: The `fields` parameter must be set. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "operationId": "drive.comments.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "commentId",
            "required": true,
            "schema": {
              "description": "The ID of the comment.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Comment_drive_comments_update"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Comment"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Updates a comment with patch semantics. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments). Required: The `fields` parameter must be set. To return the exact fields you need, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter).",
        "tags": [
          "drive.comments"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/comments/{commentId}/replies": {
      "get": {
        "description": "Lists a comment's replies. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "operationId": "drive.replies.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "commentId",
            "required": true,
            "schema": {
              "description": "The ID of the comment.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeDeleted",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to include deleted replies. Deleted replies don't include their original content.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": "20",
              "description": "The maximum number of replies to return. The service may return fewer than this value. If unspecified, at most 20 replies will be returned. The maximum value is 100; values above 100 will be coerced to 100.",
              "format": "int32",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_ReplyList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Lists a comment's replies. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "tags": [
          "drive.replies"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "post": {
        "description": "Creates a reply to a comment. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "operationId": "drive.replies.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "commentId",
            "required": true,
            "schema": {
              "description": "The ID of the comment.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Reply"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Reply"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Creates a reply to a comment. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "tags": [
          "drive.replies"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/comments/{commentId}/replies/{replyId}": {
      "delete": {
        "description": "Deletes a reply. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "operationId": "drive.replies.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "commentId",
            "required": true,
            "schema": {
              "description": "The ID of the comment.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "replyId",
            "required": true,
            "schema": {
              "description": "The ID of the reply.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Deletes a reply. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "tags": [
          "drive.replies"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets a reply by ID. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "operationId": "drive.replies.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "commentId",
            "required": true,
            "schema": {
              "description": "The ID of the comment.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeDeleted",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to return deleted replies. Deleted replies don't include their original content.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "replyId",
            "required": true,
            "schema": {
              "description": "The ID of the reply.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Reply"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Gets a reply by ID. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "tags": [
          "drive.replies"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "patch": {
        "description": "Updates a reply with patch semantics. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "operationId": "drive.replies.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": true,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "commentId",
            "required": true,
            "schema": {
              "description": "The ID of the comment.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "replyId",
            "required": true,
            "schema": {
              "description": "The ID of the reply.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Reply_drive_replies_update"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Reply"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Updates a reply with patch semantics. For more information, see [Manage comments and replies](https://developers.google.com/workspace/drive/api/guides/manage-comments).",
        "tags": [
          "drive.replies"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/copy": {
      "post": {
        "description": "Creates a copy of a file and applies any requested updates with patch semantics. For more information, see [Create and manage files](https://developers.google.com/workspace/drive/api/guides/create-file).",
        "operationId": "drive.files.copy",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "copyComments",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to copy the open (unresolved) comments associated with the file.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "enforceSingleParent",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Copying files into multiple folders is no longer supported. Use shortcuts instead.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ignoreDefaultVisibility",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLabels",
            "required": false,
            "schema": {
              "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "keepRevisionForever",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "ocrLanguage",
            "required": false,
            "schema": {
              "description": "A language hint for OCR processing during image import (ISO 639-1 code).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_File"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_File"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          }
        ],
        "summary": "Creates a copy of a file and applies any requested updates with patch semantics. For more information, see [Create and manage files](https://developers.google.com/workspace/drive/api/guides/create-file).",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/download": {
      "post": {
        "description": "Downloads the content of a file. For more information, see [Download and export files](https://developers.google.com/workspace/drive/api/guides/manage-downloads). Operations are valid for 24 hours from the time of creation.",
        "operationId": "drive.files.download",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Required. The ID of the file to download.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "mimeType",
            "required": false,
            "schema": {
              "description": "Optional. The MIME type the file should be downloaded as. This field can only be set when downloading Google Workspace documents. For a list of supported MIME types, see [Export MIME types for Google Workspace documents](/workspace/drive/api/guides/ref-export-formats). If not set, a Google Workspace document is downloaded with a default MIME type. The default MIME type might change in the future.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "revisionId",
            "required": false,
            "schema": {
              "description": "Optional. The revision ID of the file to download. This field can only be set when downloading blob files, Google Docs, and Google Sheets. Returns `INVALID_ARGUMENT` if downloading a specific revision on the file is unsupported.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Operation"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Downloads the content of a file. For more information, see [Download and export files](https://developers.google.com/workspace/drive/api/guides/manage-downloads). Operations are valid for 24 hours from the time of creation.",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/export": {
      "get": {
        "description": "Exports a Google Workspace document to the requested MIME type and returns exported byte content. For more information, see [Download and export files](https://developers.google.com/workspace/drive/api/guides/manage-downloads). Note that the exported content is limited to 10 MB.",
        "operationId": "drive.files.export",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "mimeType",
            "required": true,
            "schema": {
              "description": "Required. The MIME type of the format requested for this export. For a list of supported MIME types, see [Export MIME types for Google Workspace documents](/workspace/drive/api/guides/ref-export-formats).",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Exports a Google Workspace document to the requested MIME type and returns exported byte content. For more information, see [Download and export files](https://developers.google.com/workspace/drive/api/guides/manage-downloads). Note that the exported content is limited to 10 MB.",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": true
      }
    },
    "/drive/v3/files/{fileId}/listLabels": {
      "get": {
        "description": "Lists the labels on a file. For more information, see [List labels on a file](https://developers.google.com/workspace/drive/api/guides/list-labels).",
        "operationId": "drive.files.listLabels",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID for the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "default": "100",
              "description": "The maximum number of labels to return per page. When not set, defaults to 100.",
              "format": "int32",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_LabelList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Lists the labels on a file. For more information, see [List labels on a file](https://developers.google.com/workspace/drive/api/guides/list-labels).",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/modifyLabels": {
      "post": {
        "description": "Modifies the set of labels applied to a file. For more information, see [Set a label field on a file](https://developers.google.com/workspace/drive/api/guides/set-label). Returns a list of the labels that were added or modified.",
        "operationId": "drive.files.modifyLabels",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file to which the labels belong.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_ModifyLabelsRequest_drive_files_modifyLabels"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_ModifyLabelsResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          }
        ],
        "summary": "Modifies the set of labels applied to a file. For more information, see [Set a label field on a file](https://developers.google.com/workspace/drive/api/guides/set-label). Returns a list of the labels that were added or modified.",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/permissions": {
      "get": {
        "description": "Lists a file's or shared drive's permissions. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing).",
        "operationId": "drive.permissions.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file or shared drive.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "description": "The maximum number of permissions to return. The service may return fewer than this value. If unspecified, at most 100 permissions will be returned for shared drives, and the entire list of permissions for non-shared drives. The maximum value is 100; values above 100 will be coerced to 100.",
              "format": "int32",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "The token for continuing a previous list request on the next page. This should be set to the value of `nextPageToken` from the previous response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file ID parameter refers to a shared drive. 2. The requester is an administrator of the domain to which the shared drive belongs. For more information, see [Manage shared drives as domain administrators](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives#manage-administrators).",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_PermissionList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Lists a file's or shared drive's permissions. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing).",
        "tags": [
          "drive.permissions"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "post": {
        "description": "Creates a permission for a file or shared drive. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing). **Warning:** Concurrent permission modifications (such as update or delete) on the same file, folder, or shared drive aren't supported across any users or clients; only the last update is applied.",
        "operationId": "drive.permissions.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "emailMessage",
            "required": false,
            "schema": {
              "description": "A plain text custom message to include in the notification email.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "enforceExpansiveAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: All requests use the expansive access rules.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "enforceSingleParent",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: See `moveToNewOwnersRoot` for details.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file or shared drive.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "moveToNewOwnersRoot",
            "required": false,
            "schema": {
              "default": "false",
              "description": "This parameter only takes effect if the item isn't in a shared drive and the request is attempting to transfer the ownership of the item. If set to `true`, the item is moved to the new owner's My Drive root folder and all prior parents removed. If set to `false`, parents aren't changed.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "sendNotificationEmail",
            "required": false,
            "schema": {
              "description": "Whether to send a notification email when sharing to users or groups. This defaults to `true` for users and groups, and is not allowed for other requests. It must not be disabled for ownership transfers.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "transferOwnership",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect. For more information, see [Transfer file ownership](https://developers.google.com/workspace/drive/api/guides/transfer-file).",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file ID parameter refers to a shared drive. 2. The requester is an administrator of the domain to which the shared drive belongs. For more information, see [Manage shared drives as domain administrators](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives#manage-administrators).",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Permission_drive_permissions_create"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Permission"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Creates a permission for a file or shared drive. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing). **Warning:** Concurrent permission modifications (such as update or delete) on the same file, folder, or shared drive aren't supported across any users or clients; only the last update is applied.",
        "tags": [
          "drive.permissions"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/permissions/{permissionId}": {
      "delete": {
        "description": "Deletes a permission. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing). **Warning:** Concurrent permission modifications (such as update or delete) on the same file, folder, or shared drive aren't supported across any users or clients; only the last update is applied.",
        "operationId": "drive.permissions.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "enforceExpansiveAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: All requests use the expansive access rules.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file or shared drive.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "permissionId",
            "required": true,
            "schema": {
              "description": "The ID of the permission.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file ID parameter refers to a shared drive. 2. The requester is an administrator of the domain to which the shared drive belongs. For more information, see [Manage shared drives as domain administrators](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives#manage-administrators).",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Deletes a permission. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing). **Warning:** Concurrent permission modifications (such as update or delete) on the same file, folder, or shared drive aren't supported across any users or clients; only the last update is applied.",
        "tags": [
          "drive.permissions"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets a permission by ID. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing).",
        "operationId": "drive.permissions.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "permissionId",
            "required": true,
            "schema": {
              "description": "The ID of the permission.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file ID parameter refers to a shared drive. 2. The requester is an administrator of the domain to which the shared drive belongs. For more information, see [Manage shared drives as domain administrators](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives#manage-administrators).",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Permission"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Gets a permission by ID. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing).",
        "tags": [
          "drive.permissions"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "patch": {
        "description": "Updates a permission with patch semantics. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing). **Warning:** Concurrent permission modifications (such as update or delete) on the same file, folder, or shared drive aren't supported across any users or clients; only the last update is applied.",
        "operationId": "drive.permissions.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "enforceExpansiveAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: All requests use the expansive access rules.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file or shared drive.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "permissionId",
            "required": true,
            "schema": {
              "description": "The ID of the permission.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "removeExpiration",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to remove the expiration date.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "transferOwnership",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect. For more information, see [Transfer file ownership](https://developers.google.com//workspace/drive/api/guides/transfer-file).",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file ID parameter refers to a shared drive. 2. The requester is an administrator of the domain to which the shared drive belongs. For more information, see [Manage shared drives as domain administrators](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives#manage-administrators).",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Permission"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Permission"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Updates a permission with patch semantics. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing). **Warning:** Concurrent permission modifications (such as update or delete) on the same file, folder, or shared drive aren't supported across any users or clients; only the last update is applied.",
        "tags": [
          "drive.permissions"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/revisions": {
      "get": {
        "description": "Lists a file's revisions. For more information, see [Manage file revisions](https://developers.google.com/workspace/drive/api/guides/manage-revisions). **Important:** The list of revisions returned by this method might be incomplete for files with a large revision history, including frequently edited Google Docs, Sheets, and Slides. Older revisions might be omitted from the response, meaning the first revision returned may not be the oldest existing revision. The revision history visible in the Workspace editor user interface might be more complete than the list returned by the API.",
        "operationId": "drive.revisions.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": "200",
              "description": "The maximum number of revisions to return. The service may return fewer than this value. If unspecified, at most 200 revisions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
              "format": "int32",
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_RevisionList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Lists a file's revisions. For more information, see [Manage file revisions](https://developers.google.com/workspace/drive/api/guides/manage-revisions). **Important:** The list of revisions returned by this method might be incomplete for files with a large revision history, including frequently edited Google Docs, Sheets, and Slides. Older revisions might be omitted from the response, meaning the first revision returned may not be the oldest existing revision. The revision history visible in the Workspace editor user interface might be more complete than the list returned by the API.",
        "tags": [
          "drive.revisions"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/revisions/{revisionId}": {
      "delete": {
        "description": "Permanently deletes a file version. You can only delete revisions for files with binary content in Google Drive, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted. For more information, see [Manage file revisions](https://developers.google.com/drive/api/guides/manage-revisions).",
        "operationId": "drive.revisions.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "revisionId",
            "required": true,
            "schema": {
              "description": "The ID of the revision.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Permanently deletes a file version. You can only delete revisions for files with binary content in Google Drive, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted. For more information, see [Manage file revisions](https://developers.google.com/drive/api/guides/manage-revisions).",
        "tags": [
          "drive.revisions"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets a revision's metadata or content by ID. For more information, see [Manage file revisions](https://developers.google.com/workspace/drive/api/guides/manage-revisions).",
        "operationId": "drive.revisions.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "acknowledgeAbuse",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `media` and the user is the owner of the file or an organizer of the shared drive in which the file resides.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "revisionId",
            "required": true,
            "schema": {
              "description": "The ID of the revision.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Revision"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Gets a revision's metadata or content by ID. For more information, see [Manage file revisions](https://developers.google.com/workspace/drive/api/guides/manage-revisions).",
        "tags": [
          "drive.revisions"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": true
      },
      "patch": {
        "description": "Updates a revision with patch semantics. For more information, see [Manage file revisions](https://developers.google.com/workspace/drive/api/guides/manage-revisions).",
        "operationId": "drive.revisions.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "revisionId",
            "required": true,
            "schema": {
              "description": "The ID of the revision.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Revision"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Revision"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Updates a revision with patch semantics. For more information, see [Manage file revisions](https://developers.google.com/workspace/drive/api/guides/manage-revisions).",
        "tags": [
          "drive.revisions"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/files/{fileId}/watch": {
      "post": {
        "description": "Subscribes to changes to a file. For more information, see [Notifications for resource changes](https://developers.google.com/workspace/drive/api/guides/push).",
        "operationId": "drive.files.watch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "acknowledgeAbuse",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the `alt` parameter is set to `media` and the user is the owner of the file or an organizer of the shared drive in which the file resides.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeLabels",
            "required": false,
            "schema": {
              "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_Channel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Channel"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.photos.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Subscribes to changes to a file. For more information, see [Notifications for resource changes](https://developers.google.com/workspace/drive/api/guides/push).",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/operations/{name}": {
      "get": {
        "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
        "operationId": "drive.operations.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "description": "The name of the operation resource.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_Operation"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.meet.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
        "tags": [
          "drive.operations"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/teamdrives": {
      "get": {
        "description": "Deprecated: Use `drives.list` instead.",
        "operationId": "drive.teamdrives.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": "10",
              "description": "Maximum number of Team Drives to return.",
              "format": "int32",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Page token for Team Drives.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "description": "Query string for searching Team Drives.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator; if set to true, then all Team Drives of the domain in which the requester is an administrator are returned.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_TeamDriveList"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Deprecated: Use `drives.list` instead.",
        "tags": [
          "drive.teamdrives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "post": {
        "description": "Deprecated: Use `drives.create` instead.",
        "operationId": "drive.teamdrives.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestId",
            "required": true,
            "schema": {
              "description": "Required. An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a Team Drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same Team Drive. If the Team Drive already exists a 409 error will be returned.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_TeamDrive"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_TeamDrive"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          }
        ],
        "summary": "Deprecated: Use `drives.create` instead.",
        "tags": [
          "drive.teamdrives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/drive/v3/teamdrives/{teamDriveId}": {
      "delete": {
        "description": "Deprecated: Use `drives.delete` instead.",
        "operationId": "drive.teamdrives.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "teamDriveId",
            "required": true,
            "schema": {
              "description": "The ID of the Team Drive",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          }
        ],
        "summary": "Deprecated: Use `drives.delete` instead.",
        "tags": [
          "drive.teamdrives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Deprecated: Use `drives.get` instead.",
        "operationId": "drive.teamdrives.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "teamDriveId",
            "required": true,
            "schema": {
              "description": "The ID of the Team Drive",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the Team Drive belongs.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_TeamDrive"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.readonly"
            ]
          }
        ],
        "summary": "Deprecated: Use `drives.get` instead.",
        "tags": [
          "drive.teamdrives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      },
      "patch": {
        "description": "Deprecated: Use `drives.update` instead.",
        "operationId": "drive.teamdrives.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "teamDriveId",
            "required": true,
            "schema": {
              "description": "The ID of the Team Drive",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "useDomainAdminAccess",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the Team Drive belongs.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/drive_TeamDrive"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_TeamDrive"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          }
        ],
        "summary": "Deprecated: Use `drives.update` instead.",
        "tags": [
          "drive.teamdrives"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/drafts": {
      "get": {
        "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).",
        "operationId": "gmail.users.drafts.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeSpamTrash",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Include drafts from `SPAM` and `TRASH` in the results.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "default": "100",
              "description": "Maximum number of drafts to return. This field defaults to 100. The maximum allowed value for this field is 500.",
              "format": "uint32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Page token to retrieve a specific page of results in the list.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "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"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListDraftsResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.drafts"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "post": {
        "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).",
        "operationId": "gmail.users.drafts.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "A draft email in the user's mailbox.",
                "properties": {
                  "id": {
                    "description": "The immutable ID of the draft.",
                    "type": "string"
                  },
                  "message": {
                    "description": "An email message.",
                    "properties": {
                      "classificationLabelValues": {
                        "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.",
                        "items": {
                          "$ref": "#/components/schemas/gmail_ClassificationLabelValue"
                        },
                        "type": "array"
                      },
                      "historyId": {
                        "description": "The ID of the last history record that modified this message.",
                        "format": "uint64",
                        "type": "string"
                      },
                      "id": {
                        "description": "The immutable ID of the message.",
                        "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.",
                        "format": "int64",
                        "type": "string"
                      },
                      "labelIds": {
                        "description": "List of IDs of labels applied to this message.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "payload": {
                        "$ref": "#/components/schemas/gmail_MessagePart",
                        "description": "The parsed email structure in the message parts."
                      },
                      "raw": {
                        "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",
                        "format": "byte",
                        "type": "string"
                      },
                      "sizeEstimate": {
                        "description": "Estimated size in bytes of the message.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "snippet": {
                        "description": "A short part of the message text.",
                        "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"
                      }
                    },
                    "required": [
                      "raw"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "message"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Draft"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.action.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.drafts"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/drafts/send": {
      "post": {
        "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).",
        "operationId": "gmail.users.drafts.send",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_Draft_gmail_users_drafts_send"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Message"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.action.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.drafts"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/drafts/{id}": {
      "delete": {
        "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).",
        "operationId": "gmail.users.drafts.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the draft to delete.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.action.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.drafts"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets the specified draft. For more information, see [Create and send draft emails](https://developers.google.com/workspace/gmail/api/guides/drafts).",
        "operationId": "gmail.users.drafts.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "default": "full",
              "description": "The format to return the draft in.",
              "enum": [
                "minimal",
                "full",
                "raw",
                "metadata"
              ],
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the draft to retrieve.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Draft"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "Gets the specified draft. For more information, see [Create and send draft emails](https://developers.google.com/workspace/gmail/api/guides/drafts).",
        "tags": [
          "gmail.users.drafts"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "put": {
        "description": "Replaces a draft's content. For more information, see [Create and send draft emails](https://developers.google.com/workspace/gmail/api/guides/drafts).",
        "operationId": "gmail.users.drafts.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the draft to update.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "A draft email in the user's mailbox.",
                "properties": {
                  "id": {
                    "description": "The immutable ID of the draft.",
                    "type": "string"
                  },
                  "message": {
                    "description": "An email message.",
                    "properties": {
                      "classificationLabelValues": {
                        "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.",
                        "items": {
                          "$ref": "#/components/schemas/gmail_ClassificationLabelValue"
                        },
                        "type": "array"
                      },
                      "historyId": {
                        "description": "The ID of the last history record that modified this message.",
                        "format": "uint64",
                        "type": "string"
                      },
                      "id": {
                        "description": "The immutable ID of the message.",
                        "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.",
                        "format": "int64",
                        "type": "string"
                      },
                      "labelIds": {
                        "description": "List of IDs of labels applied to this message.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "payload": {
                        "$ref": "#/components/schemas/gmail_MessagePart",
                        "description": "The parsed email structure in the message parts."
                      },
                      "raw": {
                        "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",
                        "format": "byte",
                        "type": "string"
                      },
                      "sizeEstimate": {
                        "description": "Estimated size in bytes of the message.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "snippet": {
                        "description": "A short part of the message text.",
                        "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"
                      }
                    },
                    "required": [
                      "raw"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "message"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Draft"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.action.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "Replaces a draft's content. For more information, see [Create and send draft emails](https://developers.google.com/workspace/gmail/api/guides/drafts).",
        "tags": [
          "gmail.users.drafts"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/history": {
      "get": {
        "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).",
        "operationId": "gmail.users.history.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "historyTypes",
            "required": false,
            "schema": {
              "items": {
                "description": "History types to be returned by the function",
                "enum": [
                  "messageAdded",
                  "messageDeleted",
                  "labelAdded",
                  "labelRemoved"
                ],
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "labelId",
            "required": false,
            "schema": {
              "description": "Only return messages with a label matching the ID.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "default": "100",
              "description": "Maximum number of history records to return. This field defaults to 100. The maximum allowed value for this field is 500.",
              "format": "uint32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Page token to retrieve a specific page of results in the list.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "startHistoryId",
            "required": true,
            "schema": {
              "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.",
              "format": "uint64",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListHistoryResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.history"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/labels": {
      "get": {
        "description": "Lists all labels in the user's mailbox. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
        "operationId": "gmail.users.labels.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListLabelsResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.labels"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "Lists all labels in the user's mailbox. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
        "tags": [
          "gmail.users.labels"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "post": {
        "description": "Creates a label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
        "operationId": "gmail.users.labels.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_Label_gmail_users_labels_create"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Label"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.labels"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "Creates a label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
        "tags": [
          "gmail.users.labels"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/labels/{id}": {
      "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).",
        "operationId": "gmail.users.labels.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the label to delete.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.labels"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.labels"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets the specified label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
        "operationId": "gmail.users.labels.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the label to retrieve.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Label"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.labels"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "Gets the specified label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
        "tags": [
          "gmail.users.labels"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "patch": {
        "description": "Patch the specified label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
        "operationId": "gmail.users.labels.patch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the label to update.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_Label"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Label"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.labels"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "Patch the specified label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
        "tags": [
          "gmail.users.labels"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "put": {
        "description": "Updates the specified label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
        "operationId": "gmail.users.labels.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the label to update.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_Label_gmail_users_labels_update"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Label"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.labels"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "Updates the specified label. For more information, see [Manage labels](https://developers.google.com/workspace/gmail/api/guides/labels).",
        "tags": [
          "gmail.users.labels"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/messages": {
      "get": {
        "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).",
        "operationId": "gmail.users.messages.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeSpamTrash",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Include messages from `SPAM` and `TRASH` in the results.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "labelIds",
            "required": false,
            "schema": {
              "items": {
                "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"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "default": "100",
              "description": "Maximum number of messages to return. This field defaults to 100. The maximum allowed value for this field is 500.",
              "format": "uint32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Page token to retrieve a specific page of results in the list.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "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"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListMessagesResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "post": {
        "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).",
        "operationId": "gmail.users.messages.insert",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "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"
            }
          },
          {
            "in": "query",
            "name": "internalDateSource",
            "required": false,
            "schema": {
              "default": "receivedTime",
              "description": "Source for Gmail's internal date of the message.",
              "enum": [
                "receivedTime",
                "dateHeader"
              ],
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_insert"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Message"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.insert"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/messages/batchDelete": {
      "post": {
        "description": "Deletes many messages by message ID. Provides no guarantees that messages were not already deleted or even existed at all.",
        "operationId": "gmail.users.messages.batchDelete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_BatchDeleteMessagesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          }
        ],
        "summary": "Deletes many messages by message ID. Provides no guarantees that messages were not already deleted or even existed at all.",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/messages/batchModify": {
      "post": {
        "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.",
        "operationId": "gmail.users.messages.batchModify",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_BatchModifyMessagesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/messages/import": {
      "post": {
        "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.",
        "operationId": "gmail.users.messages.import",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "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"
            }
          },
          {
            "in": "query",
            "name": "internalDateSource",
            "required": false,
            "schema": {
              "default": "dateHeader",
              "description": "Source for Gmail's internal date of the message.",
              "enum": [
                "receivedTime",
                "dateHeader"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "neverMarkSpam",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Ignore the Gmail spam classifier decision and never mark this email as SPAM in the mailbox.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "processForCalendar",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Process calendar invites in the email and add any extracted meetings to the Google Calendar for this user.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_Message"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Message"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.insert"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/messages/send": {
      "post": {
        "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).",
        "operationId": "gmail.users.messages.send",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_Message_gmail_users_messages_send"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Message"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.action.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.send"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/messages/{id}": {
      "delete": {
        "description": "Immediately and permanently deletes the specified message. This operation cannot be undone. Prefer `messages.trash` instead.",
        "operationId": "gmail.users.messages.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the message to delete.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          }
        ],
        "summary": "Immediately and permanently deletes the specified message. This operation cannot be undone. Prefer `messages.trash` instead.",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets the specified message.",
        "operationId": "gmail.users.messages.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "default": "full",
              "description": "The format to return the message in.",
              "enum": [
                "minimal",
                "full",
                "raw",
                "metadata"
              ],
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "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"
            }
          },
          {
            "in": "query",
            "name": "metadataHeaders",
            "required": false,
            "schema": {
              "items": {
                "description": "When given and format is `METADATA`, only include headers specified.",
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Message"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.message.action"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.message.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.message.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "Gets the specified message.",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/messages/{id}/modify": {
      "post": {
        "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.",
        "operationId": "gmail.users.messages.modify",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the message to modify.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_ModifyMessageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Message"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/messages/{id}/trash": {
      "post": {
        "description": "Moves the specified message to the trash.",
        "operationId": "gmail.users.messages.trash",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the message to Trash.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Message"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "Moves the specified message to the trash.",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/messages/{id}/untrash": {
      "post": {
        "description": "Removes the specified message from the trash.",
        "operationId": "gmail.users.messages.untrash",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the message to remove from Trash.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Message"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "Removes the specified message from the trash.",
        "tags": [
          "gmail.users.messages"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/messages/{messageId}/attachments/{id}": {
      "get": {
        "description": "Gets the specified message attachment.",
        "operationId": "gmail.users.messages.attachments.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the attachment.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "messageId",
            "required": true,
            "schema": {
              "description": "The ID of the message containing the attachment.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_MessagePartBody"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.message.action"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.message.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "Gets the specified message attachment.",
        "tags": [
          "gmail.users.messages.attachments"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/profile": {
      "get": {
        "description": "Gets the current user's Gmail profile.",
        "operationId": "gmail.users.getProfile",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Profile"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.compose"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "Gets the current user's Gmail profile.",
        "tags": [
          "gmail.users"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/autoForwarding": {
      "get": {
        "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).",
        "operationId": "gmail.users.settings.getAutoForwarding",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_AutoForwarding"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "put": {
        "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.",
        "operationId": "gmail.users.settings.updateAutoForwarding",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_AutoForwarding"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_AutoForwarding"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/cse/identities": {
      "get": {
        "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.",
        "operationId": "gmail.users.settings.cse.identities.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": "20",
              "description": "The number of identities to return. If not provided, the page size will default to 20 entries.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "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"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListCseIdentitiesResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.identities"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "post": {
        "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.",
        "operationId": "gmail.users.settings.cse.identities.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_CseIdentity"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_CseIdentity"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.identities"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}": {
      "delete": {
        "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.",
        "operationId": "gmail.users.settings.cse.identities.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "cseEmailAddress",
            "required": true,
            "schema": {
              "description": "The primary email address associated with the client-side encryption identity configuration that's removed.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.identities"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "get": {
        "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.",
        "operationId": "gmail.users.settings.cse.identities.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "cseEmailAddress",
            "required": true,
            "schema": {
              "description": "The primary email address associated with the client-side encryption identity configuration that's retrieved.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_CseIdentity"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.identities"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/cse/identities/{emailAddress}": {
      "patch": {
        "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.",
        "operationId": "gmail.users.settings.cse.identities.patch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "emailAddress",
            "required": true,
            "schema": {
              "description": "The email address of the client-side encryption identity to update.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_CseIdentity"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_CseIdentity"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.identities"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/cse/keypairs": {
      "get": {
        "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.",
        "operationId": "gmail.users.settings.cse.keypairs.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": "20",
              "description": "The number of key pairs to return. If not provided, the page size will default to 20 entries.",
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "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"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListCseKeyPairsResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.keypairs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "post": {
        "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.",
        "operationId": "gmail.users.settings.cse.keypairs.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "chainValidation",
            "required": false,
            "schema": {
              "default": "all",
              "description": "The type of certificate chain validation to perform at creation. The request will be rejected if the uploaded chain fails to satisfy the requested validation checks. When unspecified, this parameter defaults to `all`.",
              "enum": [
                "all",
                "none"
              ],
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_CseKeyPair"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_CseKeyPair"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.keypairs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}": {
      "get": {
        "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.",
        "operationId": "gmail.users.settings.cse.keypairs.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "keyPairId",
            "required": true,
            "schema": {
              "description": "The identifier of the key pair to retrieve.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_CseKeyPair"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.keypairs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:disable": {
      "post": {
        "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.",
        "operationId": "gmail.users.settings.cse.keypairs.disable",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "keyPairId",
            "required": true,
            "schema": {
              "description": "The identifier of the key pair to turn off.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_DisableCseKeyPairRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_CseKeyPair"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.keypairs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:enable": {
      "post": {
        "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.",
        "operationId": "gmail.users.settings.cse.keypairs.enable",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "keyPairId",
            "required": true,
            "schema": {
              "description": "The identifier of the key pair to turn on.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_EnableCseKeyPairRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_CseKeyPair"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.keypairs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:obliterate": {
      "post": {
        "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.",
        "operationId": "gmail.users.settings.cse.keypairs.obliterate",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "keyPairId",
            "required": true,
            "schema": {
              "description": "The identifier of the key pair to obliterate.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_ObliterateCseKeyPairRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.cse.keypairs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/delegates": {
      "get": {
        "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.",
        "operationId": "gmail.users.settings.delegates.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListDelegatesResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.delegates"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "post": {
        "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.",
        "operationId": "gmail.users.settings.delegates.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_Delegate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Delegate"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.delegates"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/delegates/{delegateEmail}": {
      "delete": {
        "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.",
        "operationId": "gmail.users.settings.delegates.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "delegateEmail",
            "required": true,
            "schema": {
              "description": "The email address of the user to be removed as a delegate.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.delegates"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "get": {
        "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.",
        "operationId": "gmail.users.settings.delegates.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "delegateEmail",
            "required": true,
            "schema": {
              "description": "The email address of the user whose delegate relationship is to be retrieved.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Delegate"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.delegates"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/filters": {
      "get": {
        "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).",
        "operationId": "gmail.users.settings.filters.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListFiltersResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.filters"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "post": {
        "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).",
        "operationId": "gmail.users.settings.filters.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_Filter"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Filter"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.filters"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/filters/{id}": {
      "delete": {
        "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).",
        "operationId": "gmail.users.settings.filters.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the filter to be deleted.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "Immediately and permanently deletes the specified filter. For more information, see [Manage Gmail filters](https://developers.google.com/workspace/gmail/api/guides/filter_settings).",
        "tags": [
          "gmail.users.settings.filters"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets a filter. For more information, see [Manage Gmail filters](https://developers.google.com/workspace/gmail/api/guides/filter_settings).",
        "operationId": "gmail.users.settings.filters.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the filter to be fetched.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Filter"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "Gets a filter. For more information, see [Manage Gmail filters](https://developers.google.com/workspace/gmail/api/guides/filter_settings).",
        "tags": [
          "gmail.users.settings.filters"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/forwardingAddresses": {
      "get": {
        "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).",
        "operationId": "gmail.users.settings.forwardingAddresses.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListForwardingAddressesResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.forwardingAddresses"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "post": {
        "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.",
        "operationId": "gmail.users.settings.forwardingAddresses.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_ForwardingAddress"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ForwardingAddress"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.forwardingAddresses"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/forwardingAddresses/{forwardingEmail}": {
      "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.",
        "operationId": "gmail.users.settings.forwardingAddresses.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "forwardingEmail",
            "required": true,
            "schema": {
              "description": "The forwarding address to be deleted.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.forwardingAddresses"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets the specified forwarding address. For more information, see [Manage email forwarding](https://developers.google.com/workspace/gmail/api/guides/forwarding_settings).",
        "operationId": "gmail.users.settings.forwardingAddresses.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "forwardingEmail",
            "required": true,
            "schema": {
              "description": "The forwarding address to be retrieved.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ForwardingAddress"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "Gets the specified forwarding address. For more information, see [Manage email forwarding](https://developers.google.com/workspace/gmail/api/guides/forwarding_settings).",
        "tags": [
          "gmail.users.settings.forwardingAddresses"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/imap": {
      "get": {
        "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).",
        "operationId": "gmail.users.settings.getImap",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ImapSettings"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "put": {
        "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).",
        "operationId": "gmail.users.settings.updateImap",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_ImapSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ImapSettings"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/language": {
      "get": {
        "description": "Gets language settings. For more information, see [Manage language settings](https://developers.google.com/workspace/gmail/api/guides/language-settings).",
        "operationId": "gmail.users.settings.getLanguage",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_LanguageSettings"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "Gets language settings. For more information, see [Manage language settings](https://developers.google.com/workspace/gmail/api/guides/language-settings).",
        "tags": [
          "gmail.users.settings"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "put": {
        "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.",
        "operationId": "gmail.users.settings.updateLanguage",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_LanguageSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_LanguageSettings"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/pop": {
      "get": {
        "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).",
        "operationId": "gmail.users.settings.getPop",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_PopSettings"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "put": {
        "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).",
        "operationId": "gmail.users.settings.updatePop",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_PopSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_PopSettings"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/sendAs": {
      "get": {
        "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).",
        "operationId": "gmail.users.settings.sendAs.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListSendAsResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.sendAs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "post": {
        "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.",
        "operationId": "gmail.users.settings.sendAs.create",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_SendAs"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_SendAs"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.sendAs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}": {
      "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.",
        "operationId": "gmail.users.settings.sendAs.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sendAsEmail",
            "required": true,
            "schema": {
              "description": "The send-as alias to be deleted.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.sendAs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "get": {
        "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).",
        "operationId": "gmail.users.settings.sendAs.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sendAsEmail",
            "required": true,
            "schema": {
              "description": "The send-as alias to be retrieved.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_SendAs"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.sendAs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "patch": {
        "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).",
        "operationId": "gmail.users.settings.sendAs.patch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sendAsEmail",
            "required": true,
            "schema": {
              "description": "The send-as alias to be updated.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_SendAs"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_SendAs"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.sendAs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "put": {
        "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.",
        "operationId": "gmail.users.settings.sendAs.update",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sendAsEmail",
            "required": true,
            "schema": {
              "description": "The send-as alias to be updated.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_SendAs"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_SendAs"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.sendAs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo": {
      "get": {
        "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).",
        "operationId": "gmail.users.settings.sendAs.smimeInfo.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sendAsEmail",
            "required": true,
            "schema": {
              "description": "The email address that appears in the \"From:\" header for mail sent using this alias.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListSmimeInfoResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.sendAs.smimeInfo"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "post": {
        "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).",
        "operationId": "gmail.users.settings.sendAs.smimeInfo.insert",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sendAsEmail",
            "required": true,
            "schema": {
              "description": "The email address that appears in the \"From:\" header for mail sent using this alias.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_SmimeInfo"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_SmimeInfo"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.sendAs.smimeInfo"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}": {
      "delete": {
        "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).",
        "operationId": "gmail.users.settings.sendAs.smimeInfo.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The immutable ID for the SmimeInfo.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sendAsEmail",
            "required": true,
            "schema": {
              "description": "The email address that appears in the \"From:\" header for mail sent using this alias.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.sendAs.smimeInfo"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "get": {
        "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).",
        "operationId": "gmail.users.settings.sendAs.smimeInfo.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The immutable ID for the SmimeInfo.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sendAsEmail",
            "required": true,
            "schema": {
              "description": "The email address that appears in the \"From:\" header for mail sent using this alias.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_SmimeInfo"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.sendAs.smimeInfo"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/smimeInfo/{id}/setDefault": {
      "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).",
        "operationId": "gmail.users.settings.sendAs.smimeInfo.setDefault",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The immutable ID for the SmimeInfo.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sendAsEmail",
            "required": true,
            "schema": {
              "description": "The email address that appears in the \"From:\" header for mail sent using this alias.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings.sendAs.smimeInfo"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/sendAs/{sendAsEmail}/verify": {
      "post": {
        "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.",
        "operationId": "gmail.users.settings.sendAs.verify",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sendAsEmail",
            "required": true,
            "schema": {
              "description": "The send-as alias to be verified.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.sharing"
            ]
          }
        ],
        "summary": "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.",
        "tags": [
          "gmail.users.settings.sendAs"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/settings/vacation": {
      "get": {
        "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).",
        "operationId": "gmail.users.settings.getVacation",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_VacationSettings"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "put": {
        "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).",
        "operationId": "gmail.users.settings.updateVacation",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "User's email address. The special value \"me\" can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_VacationSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_VacationSettings"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.settings.basic"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.settings"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/stop": {
      "post": {
        "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).",
        "operationId": "gmail.users.stop",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "maxProperties": 0,
                  "type": "object"
                }
              }
            },
            "description": "Success with an empty JSON object"
          },
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/threads": {
      "get": {
        "description": "Lists the threads in the user's mailbox. For more information, see [Manage threads](https://developers.google.com/workspace/gmail/api/guides/threads).",
        "operationId": "gmail.users.threads.list",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeSpamTrash",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Include threads from `SPAM` and `TRASH` in the results.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "labelIds",
            "required": false,
            "schema": {
              "items": {
                "description": "Only return threads with labels that match all of the specified label IDs.",
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "maxResults",
            "required": false,
            "schema": {
              "default": "100",
              "description": "Maximum number of threads to return. This field defaults to 100. The maximum allowed value for this field is 500.",
              "format": "uint32",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "pageToken",
            "required": false,
            "schema": {
              "description": "Page token to retrieve a specific page of results in the list.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "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"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_ListThreadsResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "Lists the threads in the user's mailbox. For more information, see [Manage threads](https://developers.google.com/workspace/gmail/api/guides/threads).",
        "tags": [
          "gmail.users.threads"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/threads/{id}": {
      "delete": {
        "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).",
        "operationId": "gmail.users.threads.delete",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "ID of the Thread to delete.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success without a response body"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.threads"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      },
      "get": {
        "description": "Gets the specified thread. For more information, see [Manage threads](https://developers.google.com/workspace/gmail/api/guides/threads).",
        "operationId": "gmail.users.threads.get",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "default": "full",
              "description": "The format to return the messages in.",
              "enum": [
                "full",
                "metadata",
                "minimal"
              ],
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the thread to retrieve.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "metadataHeaders",
            "required": false,
            "schema": {
              "items": {
                "description": "When given and format is METADATA, only include headers specified.",
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Thread"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.message.action"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.message.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.addons.current.message.readonly"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "Gets the specified thread. For more information, see [Manage threads](https://developers.google.com/workspace/gmail/api/guides/threads).",
        "tags": [
          "gmail.users.threads"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/threads/{id}/modify": {
      "post": {
        "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).",
        "operationId": "gmail.users.threads.modify",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the thread to modify.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_ModifyThreadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Thread"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.threads"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/threads/{id}/trash": {
      "post": {
        "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).",
        "operationId": "gmail.users.threads.trash",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the thread to Trash.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Thread"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.threads"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/threads/{id}/untrash": {
      "post": {
        "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).",
        "operationId": "gmail.users.threads.untrash",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "description": "The ID of the thread to remove from Trash.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_Thread"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users.threads"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/gmail/v1/users/{userId}/watch": {
      "post": {
        "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).",
        "operationId": "gmail.users.watch",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "default": "me",
              "description": "The user's email address. The special value `me` can be used to indicate the authenticated user.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/gmail_WatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/gmail_WatchResponse"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://mail.google.com/"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.modify"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/gmail.readonly"
            ]
          }
        ],
        "summary": "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).",
        "tags": [
          "gmail.users"
        ],
        "x-google-origin": "https://gmail.googleapis.com",
        "x-google-service": "gmail",
        "x-google-supports-media-download": false
      }
    },
    "/upload/drive/v3/files": {
      "post": {
        "description": " Creates a file. For more information, see [Create and manage files](https://developers.google.com/workspace/drive/api/guides/create-file). This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:* `*/*` (Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information, see [Google Workspace and Google Drive supported MIME types](https://developers.google.com/workspace/drive/api/guides/mime-types).) For more information on uploading files, see [Upload file data](https://developers.google.com/workspace/drive/api/guides/manage-uploads). Apps creating shortcuts with the `create` method must specify the MIME type `application/vnd.google-apps.shortcut`. Apps should specify a file extension in the `name` property when inserting files with the API. For example, an operation to insert a JPEG file should specify something like `\"name\": \"cat.jpg\"` in the metadata. Subsequent `GET` requests include the read-only `fileExtension` property populated with the extension originally specified in the `name` property. When a Google Drive user requests to download a file, or when the file is downloaded through the sync client, Drive builds a full filename (with extension) based on the name. In cases where the extension is missing, Drive attempts to determine the extension based on the file's MIME type.",
        "operationId": "drive.files.createUpload",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "enforceSingleParent",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Creating files in multiple folders is no longer supported.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "ignoreDefaultVisibility",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "includeLabels",
            "required": false,
            "schema": {
              "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "keepRevisionForever",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "ocrLanguage",
            "required": false,
            "schema": {
              "description": "A language hint for OCR processing during image import (ISO 639-1 code).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "useContentAsIndexableText",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to use the uploaded content as indexable text.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/related": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "file": {
                    "additionalProperties": false,
                    "properties": {
                      "content_base64": {
                        "contentEncoding": "base64",
                        "type": "string"
                      },
                      "content_type": {
                        "type": "string"
                      },
                      "filename": {
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "filename",
                      "content_type",
                      "content_base64"
                    ],
                    "type": "object"
                  },
                  "metadata": {
                    "$ref": "#/components/schemas/drive_File"
                  }
                },
                "required": [
                  "metadata",
                  "file"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_File"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          }
        ],
        "summary": "Upload file content and metadata.  Creates a file. For more information, see [Create and manage files](https://developers.google.com/workspace/drive/api/guides/create-file). This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:* `*/*` (Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information, see [Google Workspace and Google Drive supported MIME types](https://developers.google.com/workspace/drive/api/guides/mime-types).) For more information on uploading files, see [Upload file data](https://developers.google.com/workspace/drive/api/guides/manage-uploads). Apps creating shortcuts with the `create` method must specify the MIME type `application/vnd.google-apps.shortcut`. Apps should specify a file extension in the `name` property when inserting files with the API. For example, an operation to insert a JPEG file should specify something like `\"name\": \"cat.jpg\"` in the metadata. Subsequent `GET` requests include the read-only `fileExtension` property populated with the extension originally specified in the `name` property. When a Google Drive user requests to download a file, or when the file is downloaded through the sync client, Drive builds a full filename (with extension) based on the name. In cases where the extension is missing, Drive attempts to determine the extension based on the file's MIME type.",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false,
        "x-google-upload": true
      }
    },
    "/upload/drive/v3/files/{fileId}": {
      "patch": {
        "description": " Updates a file's metadata, content, or both. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:* `*/*` (Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information, see [Google Workspace and Google Drive supported MIME types](https://developers.google.com/workspace/drive/api/guides/mime-types).) For more information on uploading files, see [Upload file data](https://developers.google.com/workspace/drive/api/guides/manage-uploads).",
        "operationId": "drive.files.updateUpload",
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "schema": {
              "description": "Selector specifying which fields to include in a partial response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "required": false,
            "schema": {
              "default": "true",
              "description": "Returns response with indentations and line breaks.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "quotaUser",
            "required": false,
            "schema": {
              "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.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "addParents",
            "required": false,
            "schema": {
              "description": "A comma-separated list of parent IDs to add.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "enforceSingleParent",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Adding files to multiple folders is no longer supported. Use shortcuts instead.",
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "The ID of the file.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeLabels",
            "required": false,
            "schema": {
              "description": "A comma-separated list of IDs of labels to include in the `labelInfo` part of the response.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includePermissionsForView",
            "required": false,
            "schema": {
              "description": "Specifies which additional view's permissions to include in the response. Only `published` is supported.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "keepRevisionForever",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to set the `keepForever` field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "ocrLanguage",
            "required": false,
            "schema": {
              "description": "A language hint for OCR processing during image import (ISO 639-1 code).",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "removeParents",
            "required": false,
            "schema": {
              "description": "A comma-separated list of parent IDs to remove.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supportsAllDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether the requesting application supports both My Drives and shared drives.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "supportsTeamDrives",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Deprecated: Use `supportsAllDrives` instead.",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "useContentAsIndexableText",
            "required": false,
            "schema": {
              "default": "false",
              "description": "Whether to use the uploaded content as indexable text.",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/related": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "file": {
                    "additionalProperties": false,
                    "properties": {
                      "content_base64": {
                        "contentEncoding": "base64",
                        "type": "string"
                      },
                      "content_type": {
                        "type": "string"
                      },
                      "filename": {
                        "minLength": 1,
                        "type": "string"
                      }
                    },
                    "required": [
                      "filename",
                      "content_type",
                      "content_base64"
                    ],
                    "type": "object"
                  },
                  "metadata": {
                    "$ref": "#/components/schemas/drive_File"
                  }
                },
                "required": [
                  "metadata",
                  "file"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/drive_File"
                }
              }
            },
            "description": "Success"
          }
        },
        "security": [
          {
            "google": [
              "https://www.googleapis.com/auth/drive"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.appdata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.file"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.metadata"
            ]
          },
          {
            "google": [
              "https://www.googleapis.com/auth/drive.scripts"
            ]
          }
        ],
        "summary": "Upload file content and metadata.  Updates a file's metadata, content, or both. When calling this method, only populate fields in the request that you want to modify. When updating fields, some fields might be changed automatically, such as `modifiedDate`. This method supports patch semantics. This method supports an */upload* URI and accepts uploaded media with the following characteristics: - *Maximum file size:* 5,120 GB - *Accepted Media MIME types:* `*/*` (Specify a valid MIME type, rather than the literal `*/*` value. The literal `*/*` is only used to indicate that any valid MIME type can be uploaded. For more information, see [Google Workspace and Google Drive supported MIME types](https://developers.google.com/workspace/drive/api/guides/mime-types).) For more information on uploading files, see [Upload file data](https://developers.google.com/workspace/drive/api/guides/manage-uploads).",
        "tags": [
          "drive.files"
        ],
        "x-google-origin": "https://www.googleapis.com",
        "x-google-service": "drive",
        "x-google-supports-media-download": false,
        "x-google-upload": true
      }
    }
  }
}
