"type": "string",
                          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                          "format": "date-time",
                          "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The attachment's file name."
                    },
                    "size": {
                      "type": "number",
                      "minimum": -2147483648,
                      "maximum": 2147483647,
                      "description": "The length of the attachment in bytes."
                    }
                  },
                  "additionalProperties": true
                },
                "description": "The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable."
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The categories associated with the item"
              },
              "changeKey": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
              },
              "allowNewTimeProposals": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true."
              },
              "attendees": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "emailAddress": {
                      "type": "object",
                      "properties": {
                        "address": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The email address of the person or entity."
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The display name of the person or entity."
                        }
                      },
                      "additionalProperties": false
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "required",
                        "optional",
                        "resource"
                      ]
                    },
                    "proposedNewTime": {
                      "type": "object",
                      "properties": {
                        "end": {
                          "type": "object",
                          "properties": {
                            "dateTime": {
                              "type": "string",
                              "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000)."
                            },
                            "timeZone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values."
                            }
                          },
                          "additionalProperties": false
                        },
                        "start": {
                          "$ref": "#/properties/body/properties/attendees/items/properties/proposedNewTime/properties/end"
                        }
                      },
                      "additionalProperties": false
                    },
                    "status": {
                      "type": "object",
                      "properties": {
                        "response": {
                          "type": "string",
                          "enum": [
                            "none",
                            "organizer",
                            "tentativelyAccepted",
                            "accepted",
                            "declined",
                            "notResponded"
                          ]
                        },
                        "time": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                              "format": "date-time",
                              "description": "The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "description": "The collection of attendees for the event."
              },
              "bodyPreview": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The preview of the message associated with the event. It's in text format."
              },
              "cancelledOccurrences": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Contains occurrenceId property values of canceled instances in a recurring series, if the event is the series master. Instances in a recurring series that are canceled are called canceled occurences.Returned only on $select in a Get operation which specifies the ID (seriesMasterId property value) of a series master event."
              },
              "end": {
                "$ref": "#/properties/body/properties/attendees/items/properties/proposedNewTime/properties/end"
              },
              "hasAttachments": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the event has attachments."
              },
              "hideAttendees": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "When set to true, each attendee only sees themselves in the meeting request and meeting Tracking list. The default is false."
              },
              "iCalUId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "A unique identifier for an event across calendars. This ID is different for each occurrence in a recurring series. Read-only."
              },
              "importance": {
                "type": "string",
                "enum": [
                  "low",
                  "normal",
                  "high"
                ]
              },
              "isAllDay": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone."
              },
              "isCancelled": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the event has been canceled."
              },
              "isDraft": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the user has updated the meeting in Outlook but hasn't sent the updates to attendees. Set to false if all changes are sent, or if the event is an appointment without any attendees."
              },
              "isOnlineMeeting": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online."
              },
              "isOrganizer": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the calendar owner (specified by the owner property of the calendar) is the organizer of the event (specified by the organizer property of the event). It also applies if a delegate organized the event on behalf of the owner."
              },
              "isReminderOn": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if an alert is set to remind the user of the event."
              },
              "location": {
                "type": "object",
                "properties": {
                  "address": {
                    "type": "object",
                    "properties": {
                      "city": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The city."
                      },
                      "countryOrRegion": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The country or region. It's a free-format string value, for example, 'United States'."
                      },
                      "postalCode": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The postal code."
                      },
                      "state": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The state."
                      },
                      "street": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The street."
                      }
                    },
                    "additionalProperties": false
                  },
                  "coordinates": {
                    "type": "object",
                    "properties": {
                      "accuracy": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]"
                      },
                      "altitude": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The altitude of the location. [Simplified from 3 options]"
                      },
                      "altitudeAccuracy": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The accuracy of the altitude. [Simplified from 3 options]"
                      },
                      "latitude": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The latitude of the location. [Simplified from 3 options]"
                      },
                      "longitude": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The longitude of the location. [Simplified from 3 options]"
                      }
                    },
                    "additionalProperties": false
                  },
                  "displayName": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The name associated with the location."
                  },
                  "locationEmailAddress": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Optional email address of the location."
                  },
                  "locationType": {
                    "type": "string",
                    "enum": [
                      "default",
                      "conferenceRoom",
                      "homeAddress",
                      "businessAddress",
                      "geoCoordinates",
                      "streetAddress",
                      "hotel",
                      "restaurant",
                      "localBusiness",
                      "postalAddress"
                    ]
                  },
                  "locationUri": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Optional URI representing the location."
                  },
                  "uniqueId": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "For internal use only."
                  },
                  "uniqueIdType": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "locationStore",
                      "directory",
                      "private",
                      "bing"
                    ]
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": true
          },
          "calendarId": {
            "type": "string",
            "description": "Path parameter: calendarId"
          },
          "eventId": {
            "type": "string",
            "description": "Path parameter: eventId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "body",
          "calendarId",
          "eventId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Delete navigation property events for me
   *
   * @param If-Match? ETag
   * @param calendarId Path parameter: calendarId
   * @param eventId Path parameter: eventId
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function delete-specific-calendar-event(If-Match?: string, calendarId: string, eventId: string, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "If-Match": {
            "type": "string",
            "description": "ETag"
          },
          "calendarId": {
            "type": "string",
            "description": "Path parameter: calendarId"
          },
          "eventId": {
            "type": "string",
            "description": "Path parameter: eventId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "calendarId",
          "eventId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Get the occurrences, exceptions, and single instances of events in a calendar view defined by a time
   * range, from the user's default calendar,
   * or from some other calendar of the user.
   *
   * @param startDateTime The start date and time of the time range, represented in ISO 8601 format. For
   *                      example, 2019-11-08T19:00:00-08:00
   * @param endDateTime The end date and time of the time range, represented in ISO 8601 format. For
   *                    example, 2019-11-08T20:00:00-08:00
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   * @param timezone? IANA timezone name (e.g., "America/New_York", "Europe/London", "Asia/Tokyo") for
   *                  calendar event times. If not specified, times are returned in UTC.
   */
  function get-calendar-view(startDateTime: string, endDateTime: string, top?: number, skip?: number, search?: string);
  // optional (9): filter, count, orderby, select, expand, ...
      {
        "type": "object",
        "properties": {
          "startDateTime": {
            "type": "string",
            "description": "The start date and time of the time range, represented in ISO 8601 format. For example, 2019-11-08T19:00:00-08:00"
          },
          "endDateTime": {
            "type": "string",
            "description": "The end date and time of the time range, represented in ISO 8601 format. For example, 2019-11-08T20:00:00-08:00"
          },
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone name (e.g., \"America/New_York\", \"Europe/London\", \"Asia/Tokyo\") for calendar event times. If not specified, times are returned in UTC."
          }
        },
        "required": [
          "startDateTime",
          "endDateTime"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Get a contact collection from the default contacts folder of the signed-in user. There are two
   * scenarios where an app can get contacts in another user's contact folder:
   *
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function list-outlook-contacts(top?: number, skip?: number, search?: string, filter?: string, count?: boolean);
  // optional (6): orderby, select, expand, fetchAllPages, includeHeaders, ...
      {
        "type": "object",
        "properties": {
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Add a contact to the root Contacts folder or to the contacts endpoint of another contact folder.
   *
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function create-outlook-contact(body: unknown, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "body": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for an entity. Read-only."
              },
              "displayName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's display name. You can specify the display name in a create or update operation. Note that later updates to other properties may cause an automatically generated value to overwrite the displayName value you have specified. To preserve a pre-existing value, always include it as displayName in an update operation."
              },
              "createdDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "lastModifiedDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "title": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's title."
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The categories associated with the item"
              },
              "changeKey": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
              },
              "assistantName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The name of the contact's assistant."
              },
              "birthday": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "businessAddress": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The city."
                  },
                  "countryOrRegion": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The country or region. It's a free-format string value, for example, 'United States'."
                  },
                  "postalCode": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The postal code."
                  },
                  "state": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The state."
                  },
                  "street": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The street."
                  }
                },
                "additionalProperties": false
              },
              "businessHomePage": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The business home page of the contact."
              },
              "businessPhones": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The contact's business phone numbers."
              },
              "children": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The names of the contact's children."
              },
              "companyName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The name of the contact's company."
              },
              "department": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's department."
              },
              "emailAddresses": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "address": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The email address of the person or entity."
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The display name of the person or entity."
                    }
                  },
                  "additionalProperties": false
                },
                "description": "The contact's email addresses."
              },
              "fileAs": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The name the contact is filed under."
              },
              "generation": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's suffix."
              },
              "givenName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's given name."
              },
              "homeAddress": {
                "$ref": "#/properties/body/properties/businessAddress"
              },
              "homePhones": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The contact's home phone numbers."
              },
              "imAddresses": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The contact's instant messaging (IM) addresses."
              },
              "initials": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's initials."
              },
              "jobTitle": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact’s job title."
              },
              "manager": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The name of the contact's manager."
              }
            },
            "additionalProperties": true
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "body"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Retrieve the properties and relationships of a contact object. There are two scenarios where an app
   * can get a contact in another user's contact folder:
   *
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param contactId Path parameter: contactId
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function get-outlook-contact(select?: string[], expand?: string[], contactId: string, fetchAllPages?: boolean, includeHeaders?: boolean);
  // optional (1): excludeResponse
      {
        "type": "object",
        "properties": {
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "contactId": {
            "type": "string",
            "description": "Path parameter: contactId"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "contactId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Update the properties of a contact object.
   *
   * @param contactId Path parameter: contactId
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function update-outlook-contact(body: unknown, contactId: string, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "body": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for an entity. Read-only."
              },
              "displayName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's display name. You can specify the display name in a create or update operation. Note that later updates to other properties may cause an automatically generated value to overwrite the displayName value you have specified. To preserve a pre-existing value, always include it as displayName in an update operation."
              },
              "createdDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "lastModifiedDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "title": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's title."
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The categories associated with the item"
              },
              "changeKey": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
              },
              "assistantName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The name of the contact's assistant."
              },
              "birthday": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "businessAddress": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The city."
                  },
                  "countryOrRegion": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The country or region. It's a free-format string value, for example, 'United States'."
                  },
                  "postalCode": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The postal code."
                  },
                  "state": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The state."
                  },
                  "street": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The street."
                  }
                },
                "additionalProperties": false
              },
              "businessHomePage": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The business home page of the contact."
              },
              "businessPhones": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The contact's business phone numbers."
              },
              "children": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The names of the contact's children."
              },
              "companyName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The name of the contact's company."
              },
              "department": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's department."
              },
              "emailAddresses": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "address": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The email address of the person or entity."
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The display name of the person or entity."
                    }
                  },
                  "additionalProperties": false
                },
                "description": "The contact's email addresses."
              },
              "fileAs": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The name the contact is filed under."
              },
              "generation": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's suffix."
              },
              "givenName": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's given name."
              },
              "homeAddress": {
                "$ref": "#/properties/body/properties/businessAddress"
              },
              "homePhones": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The contact's home phone numbers."
              },
              "imAddresses": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The contact's instant messaging (IM) addresses."
              },
              "initials": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact's initials."
              },
              "jobTitle": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The contact’s job title."
              },
              "manager": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The name of the contact's manager."
              }
            },
            "additionalProperties": true
          },
          "contactId": {
            "type": "string",
            "description": "Path parameter: contactId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "body",
          "contactId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Delete a contact.
   *
   * @param If-Match? ETag
   * @param contactId Path parameter: contactId
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function delete-outlook-contact(If-Match?: string, contactId: string, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "If-Match": {
            "type": "string",
            "description": "ETag"
          },
          "contactId": {
            "type": "string",
            "description": "Path parameter: contactId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "contactId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Retrieve the list of Drive resources available for a target User, Group, or Site.
   *
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function list-drives(top?: number, skip?: number, search?: string, filter?: string, count?: boolean);
  // optional (6): orderby, select, expand, fetchAllPages, includeHeaders, ...
      {
        "type": "object",
        "properties": {
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Get a list of event objects in the user's mailbox. The list contains single
   * instance meetings and series masters. To get expanded event instances, you can get the calendar
   * view, or
   * get the instances of an event. Currently, this operation returns event bodies in only HTML format.
   * There are two scenarios where an app can get events in another user's calendar:
   *
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   * @param timezone? IANA timezone name (e.g., "America/New_York", "Europe/London", "Asia/Tokyo") for
   *                  calendar event times. If not specified, times are returned in UTC.
   */
  function list-calendar-events(top?: number, skip?: number, search?: string, filter?: string, count?: boolean);
  // optional (7): orderby, select, expand, fetchAllPages, includeHeaders, ...
      {
        "type": "object",
        "properties": {
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone name (e.g., \"America/New_York\", \"Europe/London\", \"Asia/Tokyo\") for calendar event times. If not specified, times are returned in UTC."
          }
        },
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Create one or more multi-value extended properties in a new or existing instance of a resource. The
   * following user resources are supported: The following group resources are supported: See Extended
   * properties overview for more information about when to use
   * open extensions or extended properties, and how to specify extended properties.
   * 💡 TIP: CRITICAL: Do not try to guess the email address of the recipients. Use the list-users tool
   * to find the email address of the recipients.
   *
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function create-calendar-event(body: unknown, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "body": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for an entity. Read-only."
              },
              "createdDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "lastModifiedDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "type": {
                "type": "string",
                "enum": [
                  "singleInstance",
                  "occurrence",
                  "exception",
                  "seriesMaster"
                ]
              },
              "body": {
                "type": "object",
                "properties": {
                  "content": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The content of the item."
                  },
                  "contentType": {
                    "type": "string",
                    "enum": [
                      "text",
                      "html"
                    ]
                  }
                },
                "additionalProperties": false
              },
              "subject": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The text of the event's subject line."
              },
              "attachments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The unique identifier for an entity. Read-only."
                    },
                    "contentType": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The MIME type."
                    },
                    "isInline": {
                      "type": "boolean",
                      "description": "true if the attachment is an inline attachment; otherwise, false."
                    },
                    "lastModifiedDateTime": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                          "format": "date-time",
                          "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The attachment's file name."
                    },
                    "size": {
                      "type": "number",
                      "minimum": -2147483648,
                      "maximum": 2147483647,
                      "description": "The length of the attachment in bytes."
                    }
                  },
                  "additionalProperties": true
                },
                "description": "The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable."
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The categories associated with the item"
              },
              "changeKey": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
              },
              "allowNewTimeProposals": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true."
              },
              "attendees": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "emailAddress": {
                      "type": "object",
                      "properties": {
                        "address": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The email address of the person or entity."
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The display name of the person or entity."
                        }
                      },
                      "additionalProperties": false
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "required",
                        "optional",
                        "resource"
                      ]
                    },
                    "proposedNewTime": {
                      "type": "object",
                      "properties": {
                        "end": {
                          "type": "object",
                          "properties": {
                            "dateTime": {
                              "type": "string",
                              "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000)."
                            },
                            "timeZone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values."
                            }
                          },
                          "additionalProperties": false
                        },
                        "start": {
                          "$ref": "#/properties/body/properties/attendees/items/properties/proposedNewTime/properties/end"
                        }
                      },
                      "additionalProperties": false
                    },
                    "status": {
                      "type": "object",
                      "properties": {
                        "response": {
                          "type": "string",
                          "enum": [
                            "none",
                            "organizer",
                            "tentativelyAccepted",
                            "accepted",
                            "declined",
                            "notResponded"
                          ]
                        },
                        "time": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                              "format": "date-time",
                              "description": "The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "description": "The collection of attendees for the event."
              },
              "bodyPreview": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The preview of the message associated with the event. It's in text format."
              },
              "cancelledOccurrences": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Contains occurrenceId property values of canceled instances in a recurring series, if the event is the series master. Instances in a recurring series that are canceled are called canceled occurences.Returned only on $select in a Get operation which specifies the ID (seriesMasterId property value) of a series master event."
              },
              "end": {
                "$ref": "#/properties/body/properties/attendees/items/properties/proposedNewTime/properties/end"
              },
              "hasAttachments": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the event has attachments."
              },
              "hideAttendees": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "When set to true, each attendee only sees themselves in the meeting request and meeting Tracking list. The default is false."
              },
              "iCalUId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "A unique identifier for an event across calendars. This ID is different for each occurrence in a recurring series. Read-only."
              },
              "importance": {
                "type": "string",
                "enum": [
                  "low",
                  "normal",
                  "high"
                ]
              },
              "isAllDay": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone."
              },
              "isCancelled": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the event has been canceled."
              },
              "isDraft": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the user has updated the meeting in Outlook but hasn't sent the updates to attendees. Set to false if all changes are sent, or if the event is an appointment without any attendees."
              },
              "isOnlineMeeting": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online."
              },
              "isOrganizer": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the calendar owner (specified by the owner property of the calendar) is the organizer of the event (specified by the organizer property of the event). It also applies if a delegate organized the event on behalf of the owner."
              },
              "isReminderOn": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if an alert is set to remind the user of the event."
              },
              "location": {
                "type": "object",
                "properties": {
                  "address": {
                    "type": "object",
                    "properties": {
                      "city": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The city."
                      },
                      "countryOrRegion": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The country or region. It's a free-format string value, for example, 'United States'."
                      },
                      "postalCode": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The postal code."
                      },
                      "state": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The state."
                      },
                      "street": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The street."
                      }
                    },
                    "additionalProperties": false
                  },
                  "coordinates": {
                    "type": "object",
                    "properties": {
                      "accuracy": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]"
                      },
                      "altitude": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The altitude of the location. [Simplified from 3 options]"
                      },
                      "altitudeAccuracy": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The accuracy of the altitude. [Simplified from 3 options]"
                      },
                      "latitude": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The latitude of the location. [Simplified from 3 options]"
                      },
                      "longitude": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The longitude of the location. [Simplified from 3 options]"
                      }
                    },
                    "additionalProperties": false
                  },
                  "displayName": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The name associated with the location."
                  },
                  "locationEmailAddress": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Optional email address of the location."
                  },
                  "locationType": {
                    "type": "string",
                    "enum": [
                      "default",
                      "conferenceRoom",
                      "homeAddress",
                      "businessAddress",
                      "geoCoordinates",
                      "streetAddress",
                      "hotel",
                      "restaurant",
                      "localBusiness",
                      "postalAddress"
                    ]
                  },
                  "locationUri": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Optional URI representing the location."
                  },
                  "uniqueId": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "For internal use only."
                  },
                  "uniqueIdType": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "locationStore",
                      "directory",
                      "private",
                      "bing"
                    ]
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": true
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "body"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Get the properties and relationships of the specified event object. Currently, this operation
   * returns event bodies in only HTML format. There are two scenarios where an app can get an event in
   * another user's calendar: Since the event resource supports extensions, you can also use the GET
   * operation to get custom properties and extension data in an event instance.
   *
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param eventId Path parameter: eventId
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   * @param timezone? IANA timezone name (e.g., "America/New_York", "Europe/London", "Asia/Tokyo") for
   *                  calendar event times. If not specified, times are returned in UTC.
   */
  function get-calendar-event(select?: string[], expand?: string[], eventId: string, fetchAllPages?: boolean, includeHeaders?: boolean);
  // optional (2): excludeResponse, timezone
      {
        "type": "object",
        "properties": {
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "eventId": {
            "type": "string",
            "description": "Path parameter: eventId"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone name (e.g., \"America/New_York\", \"Europe/London\", \"Asia/Tokyo\") for calendar event times. If not specified, times are returned in UTC."
          }
        },
        "required": [
          "eventId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Update the properties of the event object.
   * 💡 TIP: CRITICAL: Do not try to guess the email address of the recipients. Use the list-users tool
   * to find the email address of the recipients.
   *
   * @param eventId Path parameter: eventId
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function update-calendar-event(body: unknown, eventId: string, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "body": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for an entity. Read-only."
              },
              "createdDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "lastModifiedDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "type": {
                "type": "string",
                "enum": [
                  "singleInstance",
                  "occurrence",
                  "exception",
                  "seriesMaster"
                ]
              },
              "body": {
                "type": "object",
                "properties": {
                  "content": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The content of the item."
                  },
                  "contentType": {
                    "type": "string",
                    "enum": [
                      "text",
                      "html"
                    ]
                  }
                },
                "additionalProperties": false
              },
              "subject": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The text of the event's subject line."
              },
              "attachments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The unique identifier for an entity. Read-only."
                    },
                    "contentType": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The MIME type."
                    },
                    "isInline": {
                      "type": "boolean",
                      "description": "true if the attachment is an inline attachment; otherwise, false."
                    },
                    "lastModifiedDateTime": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                          "format": "date-time",
                          "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The attachment's file name."
                    },
                    "size": {
                      "type": "number",
                      "minimum": -2147483648,
                      "maximum": 2147483647,
                      "description": "The length of the attachment in bytes."
                    }
                  },
                  "additionalProperties": true
                },
                "description": "The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation property. Read-only. Nullable."
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The categories associated with the item"
              },
              "changeKey": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
              },
              "allowNewTimeProposals": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true."
              },
              "attendees": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "emailAddress": {
                      "type": "object",
                      "properties": {
                        "address": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The email address of the person or entity."
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The display name of the person or entity."
                        }
                      },
                      "additionalProperties": false
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "required",
                        "optional",
                        "resource"
                      ]
                    },
                    "proposedNewTime": {
                      "type": "object",
                      "properties": {
                        "end": {
                          "type": "object",
                          "properties": {
                            "dateTime": {
                              "type": "string",
                              "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000)."
                            },
                            "timeZone": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values."
                            }
                          },
                          "additionalProperties": false
                        },
                        "start": {
                          "$ref": "#/properties/body/properties/attendees/items/properties/proposedNewTime/properties/end"
                        }
                      },
                      "additionalProperties": false
                    },
                    "status": {
                      "type": "object",
                      "properties": {
                        "response": {
                          "type": "string",
                          "enum": [
                            "none",
                            "organizer",
                            "tentativelyAccepted",
                            "accepted",
                            "declined",
                            "notResponded"
                          ]
                        },
                        "time": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                              "format": "date-time",
                              "description": "The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "description": "The collection of attendees for the event."
              },
              "bodyPreview": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The preview of the message associated with the event. It's in text format."
              },
              "cancelledOccurrences": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Contains occurrenceId property values of canceled instances in a recurring series, if the event is the series master. Instances in a recurring series that are canceled are called canceled occurences.Returned only on $select in a Get operation which specifies the ID (seriesMasterId property value) of a series master event."
              },
              "end": {
                "$ref": "#/properties/body/properties/attendees/items/properties/proposedNewTime/properties/end"
              },
              "hasAttachments": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the event has attachments."
              },
              "hideAttendees": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "When set to true, each attendee only sees themselves in the meeting request and meeting Tracking list. The default is false."
              },
              "iCalUId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "A unique identifier for an event across calendars. This ID is different for each occurrence in a recurring series. Read-only."
              },
              "importance": {
                "type": "string",
                "enum": [
                  "low",
                  "normal",
                  "high"
                ]
              },
              "isAllDay": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone."
              },
              "isCancelled": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the event has been canceled."
              },
              "isDraft": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the user has updated the meeting in Outlook but hasn't sent the updates to attendees. Set to false if all changes are sent, or if the event is an appointment without any attendees."
              },
              "isOnlineMeeting": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional.  After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online."
              },
              "isOrganizer": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if the calendar owner (specified by the owner property of the calendar) is the organizer of the event (specified by the organizer property of the event). It also applies if a delegate organized the event on behalf of the owner."
              },
              "isReminderOn": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Set to true if an alert is set to remind the user of the event."
              },
              "location": {
                "type": "object",
                "properties": {
                  "address": {
                    "type": "object",
                    "properties": {
                      "city": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The city."
                      },
                      "countryOrRegion": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The country or region. It's a free-format string value, for example, 'United States'."
                      },
                      "postalCode": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The postal code."
                      },
                      "state": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The state."
                      },
                      "street": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The street."
                      }
                    },
                    "additionalProperties": false
                  },
                  "coordinates": {
                    "type": "object",
                    "properties": {
                      "accuracy": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude and longitude are accurate to within 50 meters. [Simplified from 3 options]"
                      },
                      "altitude": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The altitude of the location. [Simplified from 3 options]"
                      },
                      "altitudeAccuracy": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The accuracy of the altitude. [Simplified from 3 options]"
                      },
                      "latitude": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The latitude of the location. [Simplified from 3 options]"
                      },
                      "longitude": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The longitude of the location. [Simplified from 3 options]"
                      }
                    },
                    "additionalProperties": false
                  },
                  "displayName": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The name associated with the location."
                  },
                  "locationEmailAddress": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Optional email address of the location."
                  },
                  "locationType": {
                    "type": "string",
                    "enum": [
                      "default",
                      "conferenceRoom",
                      "homeAddress",
                      "businessAddress",
                      "geoCoordinates",
                      "streetAddress",
                      "hotel",
                      "restaurant",
                      "localBusiness",
                      "postalAddress"
                    ]
                  },
                  "locationUri": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Optional URI representing the location."
                  },
                  "uniqueId": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "For internal use only."
                  },
                  "uniqueIdType": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "locationStore",
                      "directory",
                      "private",
                      "bing"
                    ]
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": true
          },
          "eventId": {
            "type": "string",
            "description": "Path parameter: eventId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "body",
          "eventId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Removes the specified event from the containing calendar. If the event is a meeting, deleting the
   * event on the organizer's calendar sends a cancellation message to the meeting attendees.
   *
   * @param If-Match? ETag
   * @param eventId Path parameter: eventId
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function delete-calendar-event(If-Match?: string, eventId: string, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "If-Match": {
            "type": "string",
            "description": "ETag"
          },
          "eventId": {
            "type": "string",
            "description": "Path parameter: eventId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "eventId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Get the mail folder collection directly under the root folder of the signed-in user. The returned
   * collection includes any mail search folders directly under the root. By default, this operation does
   * not return hidden folders. Use a query parameter includeHiddenFolders to include them in the
   * response. This operation does not return all mail folders in a mailbox, only the child folders of
   * the root folder. To return all mail folders in a mailbox, each child folder must be traversed
   * separately.
   *
   * @param includeHiddenFolders? Include Hidden Folders
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function list-mail-folders(includeHiddenFolders?: string, top?: number, skip?: number, search?: string, filter?: string);
  // optional (7): count, orderby, select, expand, fetchAllPages, ...
      {
        "type": "object",
        "properties": {
          "includeHiddenFolders": {
            "type": "string",
            "description": "Include Hidden Folders"
          },
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Get the folder collection under the specified folder. You can use the .../me/mailFolders shortcut to
   * get the top-level
   * folder collection and navigate to another folder. By default, this operation does not return hidden
   * folders. Use a query parameter includeHiddenFolders to include them in the response.
   *
   * @param includeHiddenFolders? Include Hidden Folders
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param mailFolderId Path parameter: mailFolderId
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function list-mail-child-folders(includeHiddenFolders?: string, top?: number, skip?: number, search?: string, mailFolderId: string);
  // optional (8): filter, count, orderby, select, expand, ...
      {
        "type": "object",
        "properties": {
          "includeHiddenFolders": {
            "type": "string",
            "description": "Include Hidden Folders"
          },
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "mailFolderId": {
            "type": "string",
            "description": "Path parameter: mailFolderId"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "mailFolderId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Get all the messages in the specified user's mailbox, or those messages in a specified folder
   * in the mailbox.
   * 💡 TIP: CRITICAL: When searching emails, the $search parameter value MUST be wrapped in double
   * quotes. Format: $search="your search query here". Use KQL (Keyword Query Language) syntax to search
   * specific properties: 'from:', 'subject:', 'body:', 'to:', 'cc:', 'bcc:', 'attachment:',
   * 'hasAttachments:', 'importance:', 'received:', 'sent:'. Examples: $search="from:john@example.com" |
   * $search="subject:meeting AND hasAttachments:true" | $search="body:urgent AND received>=2024-01-01" |
   * $search="from:alice AND importance:high". Remember: ALWAYS wrap the entire search expression in
   * double quotes! Reference: https://learn.microsoft.com/en-us/graph/search-query-parameter
   *
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param mailFolderId Path parameter: mailFolderId
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function list-mail-folder-messages(top?: number, skip?: number, search?: string, filter?: string, mailFolderId: string);
  // optional (7): count, orderby, select, expand, fetchAllPages, ...
      {
        "type": "object",
        "properties": {
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "mailFolderId": {
            "type": "string",
            "description": "Path parameter: mailFolderId"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "mailFolderId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Get an open extension (openTypeExtension object) identified by name or fully qualified name. The
   * table in the Permissions section lists the resources that support open extensions. The following
   * table lists the three scenarios where you can get an open extension from a supported resource
   * instance.
   * 💡 TIP: CRITICAL: When searching emails, the $search parameter value MUST be wrapped in double
   * quotes. Format: $search="your search query here". Use KQL (Keyword Query Language) syntax to search
   * specific properties: 'from:', 'subject:', 'body:', 'to:', 'cc:', 'bcc:', 'attachment:',
   * 'hasAttachments:', 'importance:', 'received:', 'sent:'. Examples: $search="from:john@example.com" |
   * $search="subject:meeting AND hasAttachments:true" | $search="body:urgent AND received>=2024-01-01" |
   * $search="from:john AND importance:high". Remember: ALWAYS wrap the entire search expression in
   * double quotes! Reference: https://learn.microsoft.com/en-us/graph/search-query-parameter
   *
   * @param includeHiddenMessages? Include Hidden Messages
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function list-mail-messages(includeHiddenMessages?: string, top?: number, skip?: number, search?: string, filter?: string);
  // optional (7): count, orderby, select, expand, fetchAllPages, ...
      {
        "type": "object",
        "properties": {
          "includeHiddenMessages": {
            "type": "string",
            "description": "Include Hidden Messages"
          },
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Create an open extension (openTypeExtension object) and add custom properties in a new or existing
   * instance of a resource. You can create an open extension in a resource instance and store custom
   * data to it all in the same operation, except for specific resources. The table in the Permissions
   * section lists the resources that support open extensions.
   *
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function create-draft-email(body: unknown, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "body": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for an entity. Read-only."
              },
              "createdDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "lastModifiedDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "body": {
                "type": "object",
                "properties": {
                  "content": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The content of the item."
                  },
                  "contentType": {
                    "type": "string",
                    "enum": [
                      "text",
                      "html"
                    ]
                  }
                },
                "additionalProperties": false
              },
              "subject": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The subject of the message."
              },
              "attachments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The unique identifier for an entity. Read-only."
                    },
                    "contentType": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The MIME type."
                    },
                    "isInline": {
                      "type": "boolean",
                      "description": "true if the attachment is an inline attachment; otherwise, false."
                    },
                    "lastModifiedDateTime": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                          "format": "date-time",
                          "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The attachment's file name."
                    },
                    "size": {
                      "type": "number",
                      "minimum": -2147483648,
                      "maximum": 2147483647,
                      "description": "The length of the attachment in bytes."
                    }
                  },
                  "additionalProperties": true
                },
                "description": "The fileAttachment and itemAttachment attachments for the message."
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The categories associated with the item"
              },
              "changeKey": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
              },
              "bccRecipients": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "emailAddress": {
                      "type": "object",
                      "properties": {
                        "address": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The email address of the person or entity."
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The display name of the person or entity."
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "description": "The Bcc: recipients for the message."
              },
              "bodyPreview": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The first 255 characters of the message body. It is in text format."
              },
              "ccRecipients": {
                "type": "array",
                "items": {
                  "$ref": "#/properties/body/properties/bccRecipients/items"
                },
                "description": "The Cc: recipients for the message."
              },
              "conversationId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The ID of the conversation the email belongs to."
              },
              "conversationIndex": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Indicates the position of the message within the conversation."
              },
              "flag": {
                "type": "object",
                "properties": {
                  "completedDateTime": {
                    "type": "object",
                    "properties": {
                      "dateTime": {
                        "type": "string",
                        "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000)."
                      },
                      "timeZone": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values."
                      }
                    },
                    "additionalProperties": false
                  },
                  "dueDateTime": {
                    "$ref": "#/properties/body/properties/flag/properties/completedDateTime"
                  },
                  "flagStatus": {
                    "type": "string",
                    "enum": [
                      "notFlagged",
                      "complete",
                      "flagged"
                    ]
                  },
                  "startDateTime": {
                    "$ref": "#/properties/body/properties/flag/properties/completedDateTime"
                  }
                },
                "additionalProperties": false
              },
              "from": {
                "$ref": "#/properties/body/properties/bccRecipients/items"
              },
              "hasAttachments": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>."
              },
              "importance": {
                "type": "string",
                "enum": [
                  "low",
                  "normal",
                  "high"
                ]
              },
              "inferenceClassification": {
                "type": "string",
                "enum": [
                  "focused",
                  "other"
                ]
              },
              "internetMessageHeaders": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Represents the key in a key-value pair."
                    },
                    "value": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The value in a key-value pair."
                    }
                  },
                  "additionalProperties": false
                },
                "description": "A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Returned only on applying a $select query option. Read-only."
              },
              "internetMessageId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The message ID in the format specified by RFC2822."
              },
              "isDeliveryReceiptRequested": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Indicates whether a read receipt is requested for the message."
              },
              "isDraft": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet."
              },
              "isRead": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Indicates whether the message has been read."
              },
              "isReadReceiptRequested": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Indicates whether a read receipt is requested for the message."
              },
              "parentFolderId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The unique identifier for the message's parent mailFolder."
              }
            },
            "additionalProperties": true
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "body"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Get the properties and relationships of the eventMessage object. Apply the $expand parameter on the
   * event navigation property to get the associated event in an attendee's calendar. Currently,
   * this operation returns event message bodies in only HTML format.
   *
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param messageId Path parameter: messageId
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function get-mail-message(select?: string[], expand?: string[], messageId: string, fetchAllPages?: boolean, includeHeaders?: boolean);
  // optional (1): excludeResponse
      {
        "type": "object",
        "properties": {
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "messageId": {
            "type": "string",
            "description": "Path parameter: messageId"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "messageId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Update the properties of an eventMessage object.
   *
   * @param messageId Path parameter: messageId
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function update-mail-message(body: unknown, messageId: string, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "body": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for an entity. Read-only."
              },
              "createdDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "lastModifiedDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "body": {
                "type": "object",
                "properties": {
                  "content": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The content of the item."
                  },
                  "contentType": {
                    "type": "string",
                    "enum": [
                      "text",
                      "html"
                    ]
                  }
                },
                "additionalProperties": false
              },
              "subject": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The subject of the message."
              },
              "attachments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The unique identifier for an entity. Read-only."
                    },
                    "contentType": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The MIME type."
                    },
                    "isInline": {
                      "type": "boolean",
                      "description": "true if the attachment is an inline attachment; otherwise, false."
                    },
                    "lastModifiedDateTime": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                          "format": "date-time",
                          "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The attachment's file name."
                    },
                    "size": {
                      "type": "number",
                      "minimum": -2147483648,
                      "maximum": 2147483647,
                      "description": "The length of the attachment in bytes."
                    }
                  },
                  "additionalProperties": true
                },
                "description": "The fileAttachment and itemAttachment attachments for the message."
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": "The categories associated with the item"
              },
              "changeKey": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
              },
              "bccRecipients": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "emailAddress": {
                      "type": "object",
                      "properties": {
                        "address": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The email address of the person or entity."
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The display name of the person or entity."
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "description": "The Bcc: recipients for the message."
              },
              "bodyPreview": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The first 255 characters of the message body. It is in text format."
              },
              "ccRecipients": {
                "type": "array",
                "items": {
                  "$ref": "#/properties/body/properties/bccRecipients/items"
                },
                "description": "The Cc: recipients for the message."
              },
              "conversationId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The ID of the conversation the email belongs to."
              },
              "conversationIndex": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Indicates the position of the message within the conversation."
              },
              "flag": {
                "type": "object",
                "properties": {
                  "completedDateTime": {
                    "type": "object",
                    "properties": {
                      "dateTime": {
                        "type": "string",
                        "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000)."
                      },
                      "timeZone": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values."
                      }
                    },
                    "additionalProperties": false
                  },
                  "dueDateTime": {
                    "$ref": "#/properties/body/properties/flag/properties/completedDateTime"
                  },
                  "flagStatus": {
                    "type": "string",
                    "enum": [
                      "notFlagged",
                      "complete",
                      "flagged"
                    ]
                  },
                  "startDateTime": {
                    "$ref": "#/properties/body/properties/flag/properties/completedDateTime"
                  }
                },
                "additionalProperties": false
              },
              "from": {
                "$ref": "#/properties/body/properties/bccRecipients/items"
              },
              "hasAttachments": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>."
              },
              "importance": {
                "type": "string",
                "enum": [
                  "low",
                  "normal",
                  "high"
                ]
              },
              "inferenceClassification": {
                "type": "string",
                "enum": [
                  "focused",
                  "other"
                ]
              },
              "internetMessageHeaders": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Represents the key in a key-value pair."
                    },
                    "value": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The value in a key-value pair."
                    }
                  },
                  "additionalProperties": false
                },
                "description": "A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Returned only on applying a $select query option. Read-only."
              },
              "internetMessageId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The message ID in the format specified by RFC2822."
              },
              "isDeliveryReceiptRequested": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Indicates whether a read receipt is requested for the message."
              },
              "isDraft": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet."
              },
              "isRead": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Indicates whether the message has been read."
              },
              "isReadReceiptRequested": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Indicates whether a read receipt is requested for the message."
              },
              "parentFolderId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The unique identifier for the message's parent mailFolder."
              }
            },
            "additionalProperties": true
          },
          "messageId": {
            "type": "string",
            "description": "Path parameter: messageId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "body",
          "messageId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Delete eventMessage.
   *
   * @param If-Match? ETag
   * @param messageId Path parameter: messageId
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function delete-mail-message(If-Match?: string, messageId: string, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "If-Match": {
            "type": "string",
            "description": "ETag"
          },
          "messageId": {
            "type": "string",
            "description": "Path parameter: messageId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "messageId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Retrieve a list of attachment objects.
   *
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param messageId Path parameter: messageId
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function list-mail-attachments(top?: number, skip?: number, search?: string, filter?: string, messageId: string);
  // optional (7): count, orderby, select, expand, fetchAllPages, ...
      {
        "type": "object",
        "properties": {
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "messageId": {
            "type": "string",
            "description": "Path parameter: messageId"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "messageId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Use this API to create a new Attachment. An attachment can be one of the following types: All these
   * types of attachment resources are derived from the attachment
   * resource.
   *
   * @param messageId Path parameter: messageId
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function add-mail-attachment(body: unknown, messageId: string, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "body": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for an entity. Read-only."
              },
              "contentType": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The MIME type."
              },
              "isInline": {
                "type": "boolean",
                "description": "true if the attachment is an inline attachment; otherwise, false."
              },
              "lastModifiedDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The attachment's file name."
              },
              "size": {
                "type": "number",
                "minimum": -2147483648,
                "maximum": 2147483647,
                "description": "The length of the attachment in bytes."
              }
            },
            "additionalProperties": true
          },
          "messageId": {
            "type": "string",
            "description": "Path parameter: messageId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "body",
          "messageId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Read the properties, relationships, or raw contents of an attachment that is attached to a user
   * event, message, or group post. An attachment can be one of the following types: All these types of
   * attachments are derived from the attachment resource.
   *
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param messageId Path parameter: messageId
   * @param attachmentId Path parameter: attachmentId
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function get-mail-attachment(select?: string[], expand?: string[], messageId: string, attachmentId: string, fetchAllPages?: boolean);
  // optional (2): includeHeaders, excludeResponse
      {
        "type": "object",
        "properties": {
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "messageId": {
            "type": "string",
            "description": "Path parameter: messageId"
          },
          "attachmentId": {
            "type": "string",
            "description": "Path parameter: attachmentId"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "messageId",
          "attachmentId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Delete navigation property attachments for me
   *
   * @param If-Match? ETag
   * @param messageId Path parameter: messageId
   * @param attachmentId Path parameter: attachmentId
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function delete-mail-attachment(If-Match?: string, messageId: string, attachmentId: string, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "If-Match": {
            "type": "string",
            "description": "ETag"
          },
          "messageId": {
            "type": "string",
            "description": "Path parameter: messageId"
          },
          "attachmentId": {
            "type": "string",
            "description": "Path parameter: attachmentId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "messageId",
          "attachmentId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Move a message to another folder within the specified user's mailbox. This creates a new copy
   * of the message in the destination folder and removes the original message.
   *
   * @param messageId Path parameter: messageId
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function move-mail-message(body: unknown, messageId: string, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "body": {
            "type": "object",
            "properties": {
              "DestinationId": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "messageId": {
            "type": "string",
            "description": "Path parameter: messageId"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "body",
          "messageId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Retrieve a list of notebook objects.
   *
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function list-onenote-notebooks(top?: number, skip?: number, search?: string, filter?: string, count?: boolean);
  // optional (6): orderby, select, expand, fetchAllPages, includeHeaders, ...
      {
        "type": "object",
        "properties": {
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Retrieve a list of onenoteSection objects from the specified notebook.
   *
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param notebookId Path parameter: notebookId
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function list-onenote-notebook-sections(top?: number, skip?: number, search?: string, filter?: string, notebookId: string);
  // optional (7): count, orderby, select, expand, fetchAllPages, ...
      {
        "type": "object",
        "properties": {
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "notebookId": {
            "type": "string",
            "description": "Path parameter: notebookId"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "notebookId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Create a new OneNote page in the default section of the default notebook. To create a page in a
   * different section in the default notebook, you can use the sectionName query parameter. Example:
   * ../onenote/pages?sectionName=My%20section The POST /onenote/pages operation is used only to
   * create pages in the current user's default notebook. If you're targeting other notebooks,
   * you can create pages in a specified section.
   *
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function create-onenote-page(body: unknown, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "body": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for an entity. Read-only."
              },
              "self": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The endpoint where you can get details about the page. Read-only."
              },
              "createdDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
              },
              "content": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The page's HTML content."
              },
              "contentUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The URL for the page's HTML content.  Read-only."
              },
              "createdByAppId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The unique identifier of the application that created the page. Read-only."
              },
              "lastModifiedDateTime": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                    "format": "date-time",
                    "description": "The date and time when the page was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The date and time when the page was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
              },
              "level": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": -2147483648,
                    "maximum": 2147483647,
                    "description": "The indentation level of the page. Read-only."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The indentation level of the page. Read-only."
              },
              "links": {
                "type": "object",
                "properties": {
                  "oneNoteClientUrl": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The URL of the link."
                      }
                    },
                    "additionalProperties": false
                  },
                  "oneNoteWebUrl": {
                    "$ref": "#/properties/body/properties/links/properties/oneNoteClientUrl"
                  }
                },
                "additionalProperties": false
              },
              "order": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": -2147483648,
                    "maximum": 2147483647,
                    "description": "The order of the page within its parent section. Read-only."
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The order of the page within its parent section. Read-only."
              },
              "title": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The title of the page."
              },
              "userTags": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "parentNotebook": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for an entity. Read-only."
                  },
                  "self": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The endpoint where you can get details about the page. Read-only."
                  },
                  "createdDateTime": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                        "format": "date-time",
                        "description": "The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                  },
                  "createdBy": {
                    "type": "object",
                    "properties": {
                      "application": {
                        "type": "object",
                        "properties": {
                          "displayName": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta."
                          },
                          "id": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review."
                          }
                        },
                        "additionalProperties": false
                      },
                      "device": {
                        "$ref": "#/properties/body/properties/parentNotebook/properties/createdBy/properties/application"
                      },
                      "user": {
                        "$ref": "#/properties/body/properties/parentNotebook/properties/createdBy/properties/application"
                      }
                    },
                    "additionalProperties": false
                  },
                  "displayName": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The name of the notebook."
                  },
                  "lastModifiedBy": {
                    "$ref": "#/properties/body/properties/parentNotebook/properties/createdBy"
                  },
                  "lastModifiedDateTime": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                        "format": "date-time",
                        "description": "The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                  },
                  "isDefault": {
                    "type": [
                      "boolean",
                      "null"
                    ],
                    "description": "Indicates whether this is the user's default notebook. Read-only."
                  },
                  "isShared": {
                    "type": [
                      "boolean",
                      "null"
                    ],
                    "description": "Indicates whether the notebook is shared. If true, the contents of the notebook can be seen by people other than the owner. Read-only."
                  },
                  "links": {
                    "type": "object",
                    "properties": {
                      "oneNoteClientUrl": {
                        "$ref": "#/properties/body/properties/links/properties/oneNoteClientUrl"
                      },
                      "oneNoteWebUrl": {
                        "$ref": "#/properties/body/properties/links/properties/oneNoteClientUrl"
                      }
                    },
                    "additionalProperties": false
                  },
                  "sectionGroupsUrl": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The URL for the sectionGroups navigation property, which returns all the section groups in the notebook. Read-only."
                  },
                  "sectionsUrl": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The URL for the sections navigation property, which returns all the sections in the notebook. Read-only."
                  },
                  "userRole": {
                    "type": "string",
                    "enum": [
                      "None",
                      "Owner",
                      "Contributor",
                      "Reader"
                    ]
                  },
                  "sectionGroups": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The unique identifier for an entity. Read-only."
                        },
                        "self": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The endpoint where you can get details about the page. Read-only."
                        },
                        "createdDateTime": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                              "format": "date-time",
                              "description": "The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                        },
                        "createdBy": {
                          "$ref": "#/properties/body/properties/parentNotebook/properties/createdBy"
                        },
                        "displayName": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The name of the notebook."
                        },
                        "lastModifiedBy": {
                          "$ref": "#/properties/body/properties/parentNotebook/properties/createdBy"
                        },
                        "lastModifiedDateTime": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                              "format": "date-time",
                              "description": "The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                        },
                        "sectionGroupsUrl": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The URL for the sectionGroups navigation property, which returns all the section groups in the section group. Read-only."
                        },
                        "sectionsUrl": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The URL for the sections navigation property, which returns all the sections in the section group. Read-only."
                        },
                        "parentNotebook": {
                          "$ref": "#/properties/body/properties/parentNotebook"
                        },
                        "parentSectionGroup": {
                          "$ref": "#/properties/body/properties/parentNotebook/properties/sectionGroups/items"
                        },
                        "sectionGroups": {
                          "type": "array",
                          "items": {
                            "$ref": "#/properties/body/properties/parentNotebook/properties/sectionGroups/items"
                          },
                          "description": "The section groups in the section. Read-only. Nullable."
                        },
                        "sections": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "The unique identifier for an entity. Read-only."
                              },
                              "self": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "The endpoint where you can get details about the page. Read-only."
                              },
                              "createdDateTime": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                                    "format": "date-time",
                                    "description": "The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                              },
                              "createdBy": {
                                "$ref": "#/properties/body/properties/parentNotebook/properties/createdBy"
                              },
                              "displayName": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "The name of the notebook."
                              },
                              "lastModifiedBy": {
                                "$ref": "#/properties/body/properties/parentNotebook/properties/createdBy"
                              },
                              "lastModifiedDateTime": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
                                    "format": "date-time",
                                    "description": "The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "The date and time when the notebook was last modified. The timestamp represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only."
                              },
                              "isDefault": {
                                "type": [
                                  "boolean",
                                  "null"
                                ],
                                "description": "Indicates whether this is the user's default section. Read-only."
                              },
                              "links": {
                                "type": "object",
                                "properties": {
                                  "oneNoteClientUrl": {
                                    "$ref": "#/properties/body/properties/links/properties/oneNoteClientUrl"
                                  },
                                  "oneNoteWebUrl": {
                                    "$ref": "#/properties/body/properties/links/properties/oneNoteClientUrl"
                                  }
                                },
                                "additionalProperties": false
                              },
                              "pagesUrl": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "The pages endpoint where you can get details for all the pages in the section. Read-only."
                              },
                              "pages": {
                                "type": "array",
                                "items": {
                                  "$ref": "#/properties/body"
                                },
                                "description": "The collection of pages in the section.  Read-only. Nullable."
                              },
                              "parentNotebook": {
                                "$ref": "#/properties/body/properties/parentNotebook"
                              },
                              "parentSectionGroup": {
                                "$ref": "#/properties/body/properties/parentNotebook/properties/sectionGroups/items"
                              }
                            },
                            "additionalProperties": false
                          },
                          "description": "The sections in the section group. Read-only. Nullable."
                        }
                      },
                      "additionalProperties": false
                    },
                    "description": "The section groups in the notebook. Read-only. Nullable."
                  },
                  "sections": {
                    "type": "array",
                    "items": {
                      "$ref": "#/properties/body/properties/parentNotebook/properties/sectionGroups/items/properties/sections/items"
                    },
                    "description": "The sections in the notebook. Read-only. Nullable."
                  }
                },
                "additionalProperties": false
              },
              "parentSection": {
                "$ref": "#/properties/body/properties/parentNotebook/properties/sectionGroups/items/properties/sections/items"
              }
            },
            "additionalProperties": false
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "body"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * The page's HTML content.
   *
   * @param onenotePageId Path parameter: onenotePageId
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function get-onenote-page-content(onenotePageId: string, fetchAllPages?: boolean, includeHeaders?: boolean, excludeResponse?: boolean);
      {
        "type": "object",
        "properties": {
          "onenotePageId": {
            "type": "string",
            "description": "Path parameter: onenotePageId"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required": [
          "onenotePageId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }

  /**
   * Retrieve a list of page objects from the specified section.
   *
   * @param top? Show only the first n items
   * @param skip? Skip the first n items
   * @param search? Search items by search phrases
   * @param filter? Filter items by property values
   * @param count? Include count of items
   * @param orderby? Order items by property values
   * @param select? Select properties to be returned
   * @param expand? Expand related entities
   * @param onenoteSectionId Path parameter: onenoteSectionId
   * @param fetchAllPages? Automatically fetch all pages of results
   * @param includeHeaders? Include response headers (including ETag) in the response metadata
   * @param excludeResponse? Exclude the full response body and only return success or failure indication
   */
  function list-onenote-section-pages(top?: number, skip?: number, search?: string, filter?: string, onenoteSectionId: string);
  // optional (7): count, orderby, select, expand, fetchAllPages, ...
      {
        "type": "object",
        "properties": {
          "top": {
            "type": "integer",
            "minimum": 0,
            "description": "Show only the first n items"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Skip the first n items"
          },
          "search": {
            "type": "string",
            "description": "Search items by search phrases"
          },
          "filter": {
            "type": "string",
            "description": "Filter items by property values"
          },
          "count": {
            "type": "boolean",
            "description": "Include count of items"
          },
          "orderby": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Order items by property values"
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Select properties to be returned"
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Expand related entities"
          },
          "onenoteSectionId": {
            "type": "string",
            "description": "Path parameter: onenoteSectionId"
          },
          "fetchAllPages": {
            "type": "boolean",
            "description": "Automatically fetch all pages of results"
          },
          "includeHeaders": {
            "type": "boolean",
            "description": "Include response headers (including ETag) in the response metadata"
          },
          "excludeResponse": {
            "type": "boolean",
            "description": "Exclude the full response body and only return success or failure indication"
          }
        },
        "required"