@notionhq/client 5.15.0 → 5.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -9
- package/build/package.json +1 -1
- package/build/src/Client.d.ts.map +1 -1
- package/build/src/Client.js +6 -5
- package/build/src/Client.js.map +1 -1
- package/build/src/api-endpoints/blocks.d.ts +31 -5
- package/build/src/api-endpoints/blocks.d.ts.map +1 -1
- package/build/src/api-endpoints/blocks.js +1 -0
- package/build/src/api-endpoints/blocks.js.map +1 -1
- package/build/src/api-endpoints/common.d.ts +48 -11
- package/build/src/api-endpoints/common.d.ts.map +1 -1
- package/build/src/api-endpoints/common.js.map +1 -1
- package/build/src/constants.d.ts +32 -0
- package/build/src/constants.d.ts.map +1 -0
- package/build/src/constants.js +35 -0
- package/build/src/constants.js.map +1 -0
- package/build/src/errors.d.ts +2 -1
- package/build/src/errors.d.ts.map +1 -1
- package/build/src/errors.js +3 -0
- package/build/src/errors.js.map +1 -1
- package/build/src/index.d.ts +1 -0
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +8 -1
- package/build/src/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/api-endpoints/common.ts"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,+CAA+C","sourcesContent":["// cspell:disable-file\n// Note: This is a generated file. DO NOT EDIT!\n\ntype AnnotationResponse = {\n bold: boolean\n italic: boolean\n strikethrough: boolean\n underline: boolean\n code: boolean\n color: ApiColor\n}\n\n/**\n * One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n * `pink`, `red`, `default_background`, `gray_background`, `brown_background`,\n * `orange_background`, `yellow_background`, `green_background`, `blue_background`,\n * `purple_background`, `pink_background`, `red_background`\n */\nexport type ApiColor =\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n | \"default_background\"\n | \"gray_background\"\n | \"brown_background\"\n | \"orange_background\"\n | \"yellow_background\"\n | \"green_background\"\n | \"blue_background\"\n | \"purple_background\"\n | \"pink_background\"\n | \"red_background\"\n\ntype BlockIdParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"block_id\"\n // The ID of the parent block.\n block_id: IdResponse\n}\n\ntype BoardViewConfigRequest = {\n // The view type. Must be \"board\".\n type: \"board\"\n // Group-by configuration for board columns.\n group_by: GroupByConfigRequest\n // Secondary group-by configuration for sub-grouping within columns. Pass null to remove\n // sub-grouping.\n sub_group_by?: GroupByConfigRequest | null\n // Property visibility and display configuration on cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Cover image configuration for cards. Pass null to clear.\n cover?: CoverConfigRequest | null\n // Size of the cover image on cards. Pass null to clear.\n cover_size?: \"small\" | \"medium\" | \"large\" | null\n // Aspect ratio mode for cover images. \"contain\" fits the image, \"cover\" fills the area.\n // Pass null to clear.\n cover_aspect?: \"contain\" | \"cover\" | null\n // Card layout mode. \"list\" shows full cards, \"compact\" shows condensed cards. Pass null\n // to clear.\n card_layout?: \"list\" | \"compact\" | null\n}\n\ntype BotInfoResponse = {\n // Details about the owner of the bot.\n owner:\n | {\n // Always `user`\n type: \"user\"\n // Details about the owner of the bot, when the `type` of the owner is `user`. This means\n // the bot is for a integration.\n user:\n | {\n // The ID of the user.\n id: IdResponse\n // The user object type name.\n object: \"user\"\n // The name of the user.\n name: string | null\n // The avatar URL of the user.\n avatar_url: string | null\n // The type of the user.\n type: \"person\"\n // The person info of the user.\n person: {\n // The email of the person.\n email?: string\n }\n }\n | PartialUserObjectResponse\n }\n | {\n // Always `workspace`\n type: \"workspace\"\n // Details about the owner of the bot, when the `type` of the owner is `workspace`. This\n // means the bot is for an internal integration.\n workspace: true\n }\n // The ID of the bot's workspace.\n workspace_id: string\n // Limits and restrictions that apply to the bot's workspace\n workspace_limits: {\n // The maximum allowable size of a file upload, in bytes\n max_file_upload_size_in_bytes: number\n }\n // The name of the bot's workspace.\n workspace_name: string | null\n}\n\nexport type BotUserObjectResponse = {\n // Indicates this user is a bot.\n type: \"bot\"\n // Details about the bot, when the `type` of the user is `bot`.\n bot: EmptyObject | BotInfoResponse\n}\n\ntype ButtonPropertyConfigurationRequest = {\n // Always `button`\n type?: \"button\"\n button: EmptyObject\n}\n\ntype CalendarViewConfigRequest = {\n // The view type. Must be \"calendar\".\n type: \"calendar\"\n // Property ID of the date property used to position items on the calendar.\n date_property_id: string\n // Property visibility and display configuration on calendar cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Default calendar range. \"week\" shows a week view, \"month\" shows a month view. Pass\n // null to clear.\n view_range?: \"week\" | \"month\" | null\n // Whether to show weekend days. Pass null to clear.\n show_weekends?: boolean | null\n}\n\ntype ChartAggregationRequest = {\n // The aggregation operator. \"count\" counts all rows and does not require a property_id.\n // All other operators require a property_id.\n aggregator:\n | \"count\"\n | \"count_values\"\n | \"sum\"\n | \"average\"\n | \"median\"\n | \"min\"\n | \"max\"\n | \"range\"\n | \"unique\"\n | \"empty\"\n | \"not_empty\"\n | \"percent_empty\"\n | \"percent_not_empty\"\n | \"checked\"\n | \"unchecked\"\n | \"percent_checked\"\n | \"percent_unchecked\"\n | \"earliest_date\"\n | \"latest_date\"\n | \"date_range\"\n // The property to aggregate on. Required for all operators except \"count\".\n property_id?: string\n}\n\ntype ChartReferenceLineRequest = {\n // The y-axis value where the reference line is drawn.\n value: number\n // Label displayed alongside the reference line.\n label: string\n // Color of the reference line.\n color:\n | \"gray\"\n | \"lightgray\"\n | \"brown\"\n | \"yellow\"\n | \"orange\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n // Line style: \"solid\" for a continuous line, \"dash\" for a dashed line.\n dash_style: \"solid\" | \"dash\"\n // Unique identifier for the reference line. Auto-generated if omitted.\n id?: string\n}\n\ntype ChartViewConfigRequest = {\n // The view type. Must be \"chart\".\n type: \"chart\"\n // The chart type.\n chart_type: \"column\" | \"bar\" | \"line\" | \"donut\" | \"number\"\n // X-axis grouping configuration for grouped data mode. Pass null to clear.\n x_axis?: GroupByConfigRequest | null\n // Y-axis aggregation for grouped data mode. Pass null to clear.\n y_axis?: ChartAggregationRequest | null\n // Property ID for x-axis values in results mode. Pass null to clear.\n x_axis_property_id?: string | null\n // Property ID for y-axis values in results mode. Pass null to clear.\n y_axis_property_id?: string | null\n // Aggregation for number charts. Pass null to clear.\n value?: ChartAggregationRequest | null\n // Sort order for chart data. Pass null to clear.\n sort?:\n | \"manual\"\n | \"x_ascending\"\n | \"x_descending\"\n | \"y_ascending\"\n | \"y_descending\"\n | null\n // Color theme. Pass null to clear.\n color_theme?:\n | \"gray\"\n | \"blue\"\n | \"yellow\"\n | \"green\"\n | \"purple\"\n | \"teal\"\n | \"orange\"\n | \"pink\"\n | \"red\"\n | \"auto\"\n | \"colorful\"\n | null\n // Chart height. Pass null to clear.\n height?: \"small\" | \"medium\" | \"large\" | \"extra_large\" | null\n // Whether to hide groups with no data. Pass null to clear.\n hide_empty_groups?: boolean | null\n // Legend position. Pass null to clear.\n legend_position?: \"off\" | \"bottom\" | \"side\" | null\n // Whether to show data labels. Pass null to clear.\n show_data_labels?: boolean | null\n // Which axis labels to show. Pass null to clear.\n axis_labels?: \"none\" | \"x_axis\" | \"y_axis\" | \"both\" | null\n // Which grid lines to show. Pass null to clear.\n grid_lines?: \"none\" | \"horizontal\" | \"vertical\" | \"both\" | null\n // Cumulative values (line only). Pass null to clear.\n cumulative?: boolean | null\n // Smooth line curves (line only). Pass null to clear.\n smooth_line?: boolean | null\n // Hide area fill (line only). Pass null to clear.\n hide_line_fill_area?: boolean | null\n // Grouped/stacked bar display style. Pass null to clear.\n group_style?: \"normal\" | \"percent\" | \"side_by_side\" | null\n // Custom y-axis minimum. Pass null to clear.\n y_axis_min?: number | null\n // Custom y-axis maximum. Pass null to clear.\n y_axis_max?: number | null\n // Donut slice labels. Pass null to clear.\n donut_labels?: \"none\" | \"value\" | \"name\" | \"name_and_value\" | null\n // Hide title (number only). Pass null to clear.\n hide_title?: boolean | null\n // Stack-by grouping for stacked/grouped bar charts. Pass null to clear.\n stack_by?: GroupByConfigRequest | null\n // Reference lines on the chart. Pass null to clear.\n reference_lines?: Array<ChartReferenceLineRequest> | null\n // Chart caption text. Pass null to clear.\n caption?: string | null\n // Whether to color chart elements by their numeric value (gradient coloring). Pass null\n // to clear.\n color_by_value?: boolean | null\n}\n\ntype CheckboxGroupByConfigRequest = {\n // The property type for grouping.\n type: \"checkbox\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype CheckboxPropertyConfigurationRequest = {\n // Always `checkbox`\n type?: \"checkbox\"\n checkbox: EmptyObject\n}\n\ntype CheckboxPropertyFilter = { equals: boolean } | { does_not_equal: boolean }\n\nexport type ContentPositionSchema =\n | { type: \"after_block\"; after_block: { id: IdRequest } }\n | { type: \"start\" }\n | { type: \"end\" }\n\ntype CoverConfigRequest = {\n // Source of the cover image.\n type: \"page_cover\" | \"page_content\" | \"property\"\n // Property ID when type is \"property\".\n property_id?: string\n}\n\ntype CreateDatabaseForViewRequest = {\n // The parent page for the new linked database block.\n parent: {\n // The parent type. Must be \"page_id\".\n type: \"page_id\"\n // The ID of the page to create the database on.\n page_id: IdRequest\n }\n // Where to place the new database block within the parent page. Defaults to appending at\n // the end.\n position?: {\n // Position type. \"after_block\" places the new database after the specified block in the\n // page.\n type: \"after_block\"\n // The ID of an existing block in the page. The new database will be placed after this\n // block.\n block_id: IdRequest\n }\n}\n\nexport type CreateViewQueryRequest = {\n // The number of results to return per page. Maximum: 100\n page_size?: number\n}\n\nexport type CreateViewRequest = {\n // The ID of the data source this view should be scoped to.\n data_source_id: IdRequest\n // The name of the view.\n name: string\n // The type of view to create.\n type: ViewTypeRequest\n // The ID of the database to create a view in. Mutually exclusive with view_id and\n // create_database.\n database_id?: IdRequest\n // The ID of a dashboard view to add this view to as a widget. Mutually exclusive with\n // database_id and create_database.\n view_id?: IdRequest\n // Filter to apply to the view. Uses the same format as the data source query filter.\n filter?: ViewFilterRequest\n // Sorts to apply to the view. Uses the same format as the data source query sorts.\n sorts?: ViewSortsRequest\n // Quick filters to pin in the view's filter bar. Keys are property names or IDs. Values\n // are filter conditions (same shape as a property filter but without the property\n // field). Each quick filter appears as a clickable pill above the view, independent of\n // the advanced filter.\n quick_filters?: Record<string, QuickFilterConditionRequest>\n // Create a new linked database block on a page and add the view to it. Mutually\n // exclusive with database_id and view_id.\n create_database?: CreateDatabaseForViewRequest\n // View presentation configuration. The type field must match the view type.\n configuration?: ViewConfigRequest\n // Where to place the new view in the database's view tab bar. Only applicable when\n // database_id is provided. Defaults to \"end\" (append).\n position?: ViewPositionRequest\n // Where to place the new widget in a dashboard view. Only applicable when view_id is\n // provided. Defaults to creating a new row at the end.\n placement?: WidgetPlacementRequest\n}\n\ntype CreatedByPropertyConfigurationRequest = {\n // Always `created_by`\n type?: \"created_by\"\n created_by: EmptyObject\n}\n\ntype CreatedTimePropertyConfigurationRequest = {\n // Always `created_time`\n type?: \"created_time\"\n created_time: EmptyObject\n}\n\ntype CustomEmojiPageIconResponse = {\n // Type of icon. In this case, a custom emoji.\n type: \"custom_emoji\"\n // The custom emoji details for the icon.\n custom_emoji: CustomEmojiResponse\n}\n\nexport type CustomEmojiResponse = {\n // The ID of the custom emoji.\n id: IdResponse\n // The name of the custom emoji.\n name: string\n // The URL of the custom emoji.\n url: string\n}\n\nexport type DataSourceParentResponse = {\n // The parent type.\n type: \"data_source_id\"\n // The ID of the parent data source.\n data_source_id: IdResponse\n // The ID of the data source's parent database.\n database_id: IdResponse\n}\n\nexport type DataSourceViewReferenceResponse = {\n // The object type name.\n object: \"view\"\n // The ID of the view.\n id: IdResponse\n}\n\nexport type DatabaseParentResponse = {\n // The parent type.\n type: \"database_id\"\n // The ID of the parent database.\n database_id: IdResponse\n}\n\ntype DateGroupByConfigRequest = {\n // The property type for grouping.\n type: \"date\" | \"created_time\" | \"last_edited_time\"\n // Property ID to group by.\n property_id: string\n // Granularity for date grouping.\n group_by: \"relative\" | \"day\" | \"week\" | \"month\" | \"year\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n // Start day of week for week grouping (0 = Sunday, 1 = Monday).\n start_day_of_week?: 0 | 1\n}\n\ntype DatePropertyConfigurationRequest = {\n // Always `date`\n type?: \"date\"\n date: EmptyObject\n}\n\ntype DatePropertyFilter =\n | { equals: string }\n | { before: string }\n | { after: string }\n | { on_or_before: string }\n | { on_or_after: string }\n | { this_week: EmptyObject }\n | { past_week: EmptyObject }\n | { past_month: EmptyObject }\n | { past_year: EmptyObject }\n | { next_week: EmptyObject }\n | { next_month: EmptyObject }\n | { next_year: EmptyObject }\n | ExistencePropertyFilter\n\nexport type DateResponse = {\n // The start date of the date object.\n start: string\n // The end date of the date object, if any.\n end: string | null\n // The time zone of the date object.\n time_zone: TimeZoneRequest | null\n}\n\ntype EmailPropertyConfigurationRequest = {\n // Always `email`\n type?: \"email\"\n email: EmptyObject\n}\n\ntype EmojiPageIconResponse = {\n // Type of icon. In this case, an emoji.\n type: \"emoji\"\n // The emoji character used as the icon.\n emoji: EmojiRequest\n}\n\ntype EmojiRequest = string\n\nexport type EmptyObject = Record<string, never>\n\nexport type EquationRichTextItemResponse = {\n // Always `equation`\n type: \"equation\"\n // Notion supports inline LaTeX equations as rich text objects with a type value of\n // `equation`.\n equation: {\n // A KaTeX compatible string.\n expression: string\n }\n}\n\ntype ExistencePropertyFilter = { is_empty: true } | { is_not_empty: true }\n\ntype ExternalPageCoverRequest = {\n // Always `external`\n type?: \"external\"\n // External URL for the cover.\n external: {\n // The URL of the external file.\n url: string\n }\n}\n\ntype ExternalPageCoverResponse = {\n // Type of cover. In this case, an external URL.\n type: \"external\"\n // The external URL for the cover.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\ntype ExternalPageIconResponse = {\n // Type of icon. In this case, an external URL.\n type: \"external\"\n // The external URL for the icon.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\ntype FilePageCoverResponse = {\n // Type of cover. In this case, a file.\n type: \"file\"\n // The file URL for the cover.\n file: InternalFileResponse\n}\n\ntype FilePageIconResponse = {\n // Type of icon. In this case, a file.\n type: \"file\"\n // The file URL for the icon.\n file: InternalFileResponse\n}\n\ntype FileUploadPageCoverRequest = {\n // Always `file_upload`\n type?: \"file_upload\"\n // The file upload for the cover.\n file_upload: {\n // ID of a FileUpload object that has the status `uploaded`.\n id: string\n }\n}\n\nexport type FileUploadWithOptionalNameRequest = {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n name?: StringRequest\n}\n\ntype FilesPropertyConfigurationRequest = {\n // Always `files`\n type?: \"files\"\n files: EmptyObject\n}\n\ntype FormViewConfigRequest = {\n // The view type. Must be \"form\".\n type: \"form\"\n // Whether the form is closed for submissions. Pass null to clear.\n is_form_closed?: boolean | null\n // Whether anonymous (non-logged-in) submissions are allowed. Pass null to clear.\n anonymous_submissions?: boolean | null\n // Permission level granted to the submitter on the created page after form submission.\n // Pass null to clear.\n submission_permissions?:\n | \"none\"\n | \"comment_only\"\n | \"reader\"\n | \"read_and_write\"\n | \"editor\"\n | null\n}\n\ntype FormulaCheckboxSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"checkbox\"\n // Sort order for groups.\n sort: GroupSortRequest\n}\n\ntype FormulaDateSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"date\"\n // Granularity for date grouping.\n group_by: \"relative\" | \"day\" | \"week\" | \"month\" | \"year\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Start day of week for week grouping (0 = Sunday, 1 = Monday).\n start_day_of_week?: 0 | 1\n}\n\ntype FormulaGroupByConfigRequest = {\n // The property type for grouping.\n type: \"formula\"\n // Property ID of the formula to group by.\n property_id: string\n // Sub-group-by configuration based on the formula result type.\n group_by:\n | FormulaDateSubGroupByRequest\n | FormulaTextSubGroupByRequest\n | FormulaNumberSubGroupByRequest\n | FormulaCheckboxSubGroupByRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype FormulaNumberSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"number\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Start of the range for number grouping buckets.\n range_start?: number\n // End of the range for number grouping buckets.\n range_end?: number\n // Size of each bucket in number grouping.\n range_size?: number\n}\n\ntype FormulaPropertyConfigurationRequest = {\n // Always `formula`\n type?: \"formula\"\n formula: { expression?: string }\n}\n\ntype FormulaPropertyFilter =\n | { string: TextPropertyFilter }\n | { checkbox: CheckboxPropertyFilter }\n | { number: NumberPropertyFilter }\n | { date: DatePropertyFilter }\n\ntype FormulaTextSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"text\"\n // How to group text values. \"exact\" = exact match, \"alphabet_prefix\" = first letter.\n group_by: \"exact\" | \"alphabet_prefix\"\n // Sort order for groups.\n sort: GroupSortRequest\n}\n\ntype GalleryViewConfigRequest = {\n // The view type. Must be \"gallery\".\n type: \"gallery\"\n // Property visibility and display configuration on gallery cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Cover image configuration for cards. Pass null to clear.\n cover?: CoverConfigRequest | null\n // Size of the cover image on cards. Pass null to clear.\n cover_size?: \"small\" | \"medium\" | \"large\" | null\n // Aspect ratio mode for cover images. \"contain\" fits the image, \"cover\" fills the area.\n // Pass null to clear.\n cover_aspect?: \"contain\" | \"cover\" | null\n // Card layout mode. \"list\" shows full cards, \"compact\" shows condensed cards. Pass null\n // to clear.\n card_layout?: \"list\" | \"compact\" | null\n}\n\n/**\n * Group-by configuration based on property type.\n */\ntype GroupByConfigRequest =\n | SelectGroupByConfigRequest\n | StatusGroupByConfigRequest\n | PersonGroupByConfigRequest\n | RelationGroupByConfigRequest\n | DateGroupByConfigRequest\n | TextGroupByConfigRequest\n | NumberGroupByConfigRequest\n | CheckboxGroupByConfigRequest\n | FormulaGroupByConfigRequest\n\nexport type GroupFilterOperatorArray = Array<\n | PropertyOrTimestampFilter\n | { or: PropertyOrTimestampFilterArray }\n | { and: PropertyOrTimestampFilterArray }\n>\n\nexport type GroupObjectRequest = {\n id: IdRequest\n name?: string | null\n object?: \"group\"\n}\n\nexport type GroupObjectResponse = {\n // The ID of the group.\n id: IdResponse\n // The group object type name.\n object: \"group\"\n // The name of the group.\n name: string | null\n}\n\ntype GroupSortRequest = {\n // Sort direction for groups.\n type: \"manual\" | \"ascending\" | \"descending\"\n}\n\ntype IconPageIconResponse = {\n // Type of icon. In this case, a Notion native icon.\n type: \"icon\"\n // The Notion native icon, specified by name and color.\n icon: NoticonIconResponse\n}\n\nexport type IdRequest = string\n\nexport type IdResponse = string\n\nexport type InitialDataSourceRequest = {\n // Property schema for the initial data source, if you'd like to create one.\n properties?: Record<string, PropertyConfigurationRequest>\n}\n\ntype InternalFileRequest = { url: string; expiry_time?: string }\n\nexport type InternalFileResponse = {\n // The URL of the file.\n url: string\n // The time when the URL will expire.\n expiry_time: string\n}\n\nexport type InternalOrExternalFileWithNameRequest =\n | { file: InternalFileRequest; name: StringRequest; type?: \"file\" }\n | { external: ExternalFileRequest; name: StringRequest; type?: \"external\" }\n\ntype LastEditedByPropertyConfigurationRequest = {\n // Always `last_edited_by`\n type?: \"last_edited_by\"\n last_edited_by: EmptyObject\n}\n\ntype LastEditedTimePropertyConfigurationRequest = {\n // Always `last_edited_time`\n type?: \"last_edited_time\"\n last_edited_time: EmptyObject\n}\n\ntype LastVisitedTimePropertyConfigurationRequest = {\n // Always `last_visited_time`\n type?: \"last_visited_time\"\n last_visited_time: EmptyObject\n}\n\ntype LinkMentionResponse = {\n // The href of the link mention.\n href: string\n // The title of the link.\n title?: string\n // The description of the link.\n description?: string\n // The author of the link.\n link_author?: string\n // The provider of the link.\n link_provider?: string\n // The thumbnail URL of the link.\n thumbnail_url?: string\n // The icon URL of the link.\n icon_url?: string\n // The iframe URL of the link.\n iframe_url?: string\n // The height of the link preview iframe.\n height?: number\n // The padding of the link preview iframe.\n padding?: number\n // The top padding of the link preview iframe.\n padding_top?: number\n}\n\ntype LinkPreviewMentionResponse = {\n // The URL of the link preview mention.\n url: string\n}\n\ntype ListViewConfigRequest = {\n // The view type. Must be \"list\".\n type: \"list\"\n // Property visibility and display configuration. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n}\n\ntype LocationPropertyConfigurationRequest = {\n // Always `location`\n type?: \"location\"\n location: EmptyObject\n}\n\ntype MapViewConfigRequest = {\n // The view type. Must be \"map\".\n type: \"map\"\n // Map display height. Pass null to clear.\n height?: \"small\" | \"medium\" | \"large\" | \"extra_large\" | null\n // Property ID of the location property used to position items on the map. Pass null to\n // clear.\n map_by?: string | null\n // Property visibility and display configuration on map pin cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n}\n\nexport type MentionRichTextItemResponse = {\n // Always `mention`\n type: \"mention\"\n // Mention objects represent an inline mention of a database, date, link preview mention,\n // page, template mention, or user. A mention is created in the Notion UI when a user\n // types `@` followed by the name of the reference.\n mention:\n | {\n // Always `user`\n type: \"user\"\n // Details of the user mention.\n user: UserValueResponse\n }\n | {\n // Always `date`\n type: \"date\"\n // Details of the date mention.\n date: DateResponse\n }\n | {\n // Always `link_preview`\n type: \"link_preview\"\n // Details of the link preview mention.\n link_preview: LinkPreviewMentionResponse\n }\n | {\n // Always `link_mention`\n type: \"link_mention\"\n // Details of the link mention.\n link_mention: LinkMentionResponse\n }\n | {\n // Always `page`\n type: \"page\"\n // Details of the page mention.\n page: {\n // The ID of the page in the mention.\n id: IdResponse\n }\n }\n | {\n // Always `database`\n type: \"database\"\n // Details of the database mention.\n database: {\n // The ID of the database in the mention.\n id: IdResponse\n }\n }\n | {\n // Always `template_mention`\n type: \"template_mention\"\n // Details of the template mention.\n template_mention: TemplateMentionResponse\n }\n | {\n // Always `custom_emoji`\n type: \"custom_emoji\"\n // Details of the custom emoji mention.\n custom_emoji: CustomEmojiResponse\n }\n}\n\ntype MultiSelectPropertyConfigurationRequest = {\n // Always `multi_select`\n type?: \"multi_select\"\n multi_select: {\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n }\n}\n\ntype MultiSelectPropertyFilter =\n | { contains: string }\n | { does_not_contain: string }\n | ExistencePropertyFilter\n\n/**\n * One of: `gray`, `lightgray`, `brown`, `yellow`, `orange`, `green`, `blue`, `purple`,\n * `pink`, `red`\n */\ntype NoticonColor =\n | \"gray\"\n | \"lightgray\"\n | \"brown\"\n | \"yellow\"\n | \"orange\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n\ntype NoticonIconResponse = {\n // The name of the Notion icon (e.g. pizza, meeting, home). See the Notion icon picker\n // for valid names.\n name: NoticonName\n // The color variant of the icon. Valid values: gray, lightgray, brown, yellow, orange,\n // green, blue, purple, pink, red.\n color: NoticonColor\n}\n\ntype NoticonName = string\n\ntype NumberGroupByConfigRequest = {\n // The property type for grouping.\n type: \"number\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n // Start of the range for number grouping buckets.\n range_start?: number\n // End of the range for number grouping buckets.\n range_end?: number\n // Size of each bucket in number grouping.\n range_size?: number\n}\n\ntype NumberPropertyConfigurationRequest = {\n // Always `number`\n type?: \"number\"\n number: { format?: NumberFormat }\n}\n\ntype NumberPropertyFilter =\n | { equals: number }\n | { does_not_equal: number }\n | { greater_than: number }\n | { less_than: number }\n | { greater_than_or_equal_to: number }\n | { less_than_or_equal_to: number }\n | ExistencePropertyFilter\n\nexport type PageCoverRequest =\n | FileUploadPageCoverRequest\n | ExternalPageCoverRequest\n\nexport type PageCoverResponse =\n | FilePageCoverResponse\n | ExternalPageCoverResponse\n\nexport type PageIconResponse =\n | EmojiPageIconResponse\n | FilePageIconResponse\n | ExternalPageIconResponse\n | CustomEmojiPageIconResponse\n | IconPageIconResponse\n\ntype PageIdParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"page_id\"\n // The ID of the parent page.\n page_id: IdResponse\n}\n\nexport type PageMarkdownResponse = {\n // The type of object, always 'page_markdown'.\n object: \"page_markdown\"\n // The ID of the page or block.\n id: IdResponse\n // The page content rendered as enhanced Markdown.\n markdown: string\n // Whether the content was truncated due to exceeding the record count limit.\n truncated: boolean\n // Block IDs that could not be loaded (appeared as <unknown> tags in the markdown). Pass\n // these IDs back to this endpoint to fetch their content separately.\n unknown_block_ids: Array<IdResponse>\n}\n\nexport type PagePositionSchema =\n | { type: \"after_block\"; after_block: { id: IdRequest } }\n | { type: \"page_start\" }\n | { type: \"page_end\" }\n\nexport type ParentForBlockBasedObjectResponse =\n | DatabaseParentResponse\n | DataSourceParentResponse\n | PageIdParentForBlockBasedObjectResponse\n | BlockIdParentForBlockBasedObjectResponse\n | WorkspaceParentForBlockBasedObjectResponse\n\nexport type ParentOfDataSourceRequest = {\n // Always `database_id`\n type?: \"database_id\"\n // The ID of the parent database (with or without dashes), for example,\n // 195de9221179449fab8075a27c979105\n database_id: IdRequest\n}\n\nexport type ParentOfDatabaseResponse =\n | PageIdParentForBlockBasedObjectResponse\n | WorkspaceParentForBlockBasedObjectResponse\n | DatabaseParentResponse\n | BlockIdParentForBlockBasedObjectResponse\n\nexport type PartialUserObjectResponse = {\n id: IdResponse\n // Always `user`\n object: \"user\"\n}\n\ntype PeoplePropertyConfigurationRequest = {\n // Always `people`\n type?: \"people\"\n people: EmptyObject\n}\n\ntype PeoplePropertyFilter =\n | { contains: IdRequest }\n | { does_not_contain: IdRequest }\n | ExistencePropertyFilter\n\ntype PersonGroupByConfigRequest = {\n // The property type for grouping.\n type: \"person\" | \"created_by\" | \"last_edited_by\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\nexport type PersonUserObjectResponse = {\n // Indicates this user is a person.\n type: \"person\"\n // Details about the person, when the `type` of the user is `person`.\n person: {\n // The email of the person.\n email?: string\n }\n}\n\ntype PhoneNumberPropertyConfigurationRequest = {\n // Always `phone_number`\n type?: \"phone_number\"\n phone_number: EmptyObject\n}\n\ntype PlacePropertyConfigurationRequest = {\n // Always `place`\n type?: \"place\"\n place: EmptyObject\n}\n\nexport type PropertyConfigurationRequest = PropertyConfigurationRequestCommon &\n (\n | NumberPropertyConfigurationRequest\n | FormulaPropertyConfigurationRequest\n | SelectPropertyConfigurationRequest\n | MultiSelectPropertyConfigurationRequest\n | StatusPropertyConfigurationRequest\n | RelationPropertyConfigurationRequest\n | RollupPropertyConfigurationRequest\n | UniqueIdPropertyConfigurationRequest\n | TitlePropertyConfigurationRequest\n | RichTextPropertyConfigurationRequest\n | UrlPropertyConfigurationRequest\n | PeoplePropertyConfigurationRequest\n | FilesPropertyConfigurationRequest\n | EmailPropertyConfigurationRequest\n | PhoneNumberPropertyConfigurationRequest\n | DatePropertyConfigurationRequest\n | CheckboxPropertyConfigurationRequest\n | CreatedByPropertyConfigurationRequest\n | CreatedTimePropertyConfigurationRequest\n | LastEditedByPropertyConfigurationRequest\n | LastEditedTimePropertyConfigurationRequest\n | ButtonPropertyConfigurationRequest\n | LocationPropertyConfigurationRequest\n | VerificationPropertyConfigurationRequest\n | LastVisitedTimePropertyConfigurationRequest\n | PlacePropertyConfigurationRequest\n )\n\ntype PropertyConfigurationRequestCommon = {\n // The description of the property.\n description?: PropertyDescriptionRequest | null\n}\n\nexport type PropertyFilter =\n | { title: TextPropertyFilter; property: string; type?: \"title\" }\n | { rich_text: TextPropertyFilter; property: string; type?: \"rich_text\" }\n | { number: NumberPropertyFilter; property: string; type?: \"number\" }\n | { checkbox: CheckboxPropertyFilter; property: string; type?: \"checkbox\" }\n | { select: SelectPropertyFilter; property: string; type?: \"select\" }\n | {\n multi_select: MultiSelectPropertyFilter\n property: string\n type?: \"multi_select\"\n }\n | { status: StatusPropertyFilter; property: string; type?: \"status\" }\n | { date: DatePropertyFilter; property: string; type?: \"date\" }\n | { people: PeoplePropertyFilter; property: string; type?: \"people\" }\n | { files: ExistencePropertyFilter; property: string; type?: \"files\" }\n | { url: TextPropertyFilter; property: string; type?: \"url\" }\n | { email: TextPropertyFilter; property: string; type?: \"email\" }\n | {\n phone_number: TextPropertyFilter\n property: string\n type?: \"phone_number\"\n }\n | { relation: RelationPropertyFilter; property: string; type?: \"relation\" }\n | { created_by: PeoplePropertyFilter; property: string; type?: \"created_by\" }\n | {\n created_time: DatePropertyFilter\n property: string\n type?: \"created_time\"\n }\n | {\n last_edited_by: PeoplePropertyFilter\n property: string\n type?: \"last_edited_by\"\n }\n | {\n last_edited_time: DatePropertyFilter\n property: string\n type?: \"last_edited_time\"\n }\n | { formula: FormulaPropertyFilter; property: string; type?: \"formula\" }\n | { unique_id: NumberPropertyFilter; property: string; type?: \"unique_id\" }\n | { rollup: RollupPropertyFilter; property: string; type?: \"rollup\" }\n | {\n verification: VerificationPropertyStatusFilter\n property: string\n type?: \"verification\"\n }\n\ntype PropertyOrTimestampFilter = PropertyFilter | TimestampFilter\n\ntype PropertyOrTimestampFilterArray = Array<PropertyOrTimestampFilter>\n\n/**\n * A property filter condition. Same shape as a property filter but without the\n * \"property\" field (the hashmap key identifies the property). For example: { \"select\": {\n * \"equals\": \"High\" } }.\n */\ntype QuickFilterConditionRequest = Record<string, never>\n\ntype RelationGroupByConfigRequest = {\n // The property type for grouping.\n type: \"relation\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype RelationPropertyConfigurationRequest = {\n // Always `relation`\n type?: \"relation\"\n relation: { data_source_id: IdRequest } & (\n | {\n // Always `single_property`\n type?: \"single_property\"\n single_property: EmptyObject\n }\n | {\n // Always `dual_property`\n type?: \"dual_property\"\n dual_property: {\n synced_property_id?: string\n synced_property_name?: string\n }\n }\n )\n}\n\ntype RelationPropertyFilter =\n | { contains: IdRequest }\n | { does_not_contain: IdRequest }\n | ExistencePropertyFilter\n\nexport type RichTextItemResponse = RichTextItemResponseCommon &\n (\n | TextRichTextItemResponse\n | MentionRichTextItemResponse\n | EquationRichTextItemResponse\n )\n\nexport type RichTextItemResponseCommon = {\n // The plain text content of the rich text object, without any styling.\n plain_text: string\n // A URL that the rich text object links to or mentions.\n href: string | null\n // All rich text objects contain an annotations object that sets the styling for the rich\n // text.\n annotations: AnnotationResponse\n}\n\ntype RichTextPropertyConfigurationRequest = {\n // Always `rich_text`\n type?: \"rich_text\"\n rich_text: EmptyObject\n}\n\nexport type RollupFunction =\n | \"count\"\n | \"count_values\"\n | \"empty\"\n | \"not_empty\"\n | \"unique\"\n | \"show_unique\"\n | \"percent_empty\"\n | \"percent_not_empty\"\n | \"sum\"\n | \"average\"\n | \"median\"\n | \"min\"\n | \"max\"\n | \"range\"\n | \"earliest_date\"\n | \"latest_date\"\n | \"date_range\"\n | \"checked\"\n | \"unchecked\"\n | \"percent_checked\"\n | \"percent_unchecked\"\n | \"count_per_group\"\n | \"percent_per_group\"\n | \"show_original\"\n\ntype RollupPropertyConfigurationRequest = {\n // Always `rollup`\n type?: \"rollup\"\n rollup: {\n // The function to use for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n } & (\n | { relation_property_name: string; rollup_property_name: string }\n | { relation_property_id: string; rollup_property_name: string }\n | { relation_property_name: string; rollup_property_id: string }\n | { relation_property_id: string; rollup_property_id: string }\n )\n}\n\ntype RollupPropertyFilter =\n | { any: RollupSubfilterPropertyFilter }\n | { none: RollupSubfilterPropertyFilter }\n | { every: RollupSubfilterPropertyFilter }\n | { date: DatePropertyFilter }\n | { number: NumberPropertyFilter }\n\ntype RollupSubfilterPropertyFilter =\n | { rich_text: TextPropertyFilter }\n | { number: NumberPropertyFilter }\n | { checkbox: CheckboxPropertyFilter }\n | { select: SelectPropertyFilter }\n | { multi_select: MultiSelectPropertyFilter }\n | { relation: RelationPropertyFilter }\n | { date: DatePropertyFilter }\n | { people: PeoplePropertyFilter }\n | { files: ExistencePropertyFilter }\n | { status: StatusPropertyFilter }\n\n/**\n * One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n * `pink`, `red`\n */\nexport type SelectColor =\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n\ntype SelectGroupByConfigRequest = {\n // The property type for grouping.\n type: \"select\" | \"multi_select\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype SelectPropertyConfigurationRequest = {\n // Always `select`\n type?: \"select\"\n select: {\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n }\n}\n\ntype SelectPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | ExistencePropertyFilter\n\n/**\n * One of: `ascending`, `descending`\n */\ntype SortDirectionRequest = \"ascending\" | \"descending\"\n\ntype StatusGroupByConfigRequest = {\n // The property type for grouping.\n type: \"status\"\n // Property ID to group by.\n property_id: string\n // How to group status values. \"group\" groups by status group (To Do/In Progress/Done),\n // \"option\" groups by individual option.\n group_by: \"group\" | \"option\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype StatusPropertyConfigRequest = {\n // The initial status options. If not provided, defaults are created.\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n}\n\nexport type StatusPropertyConfigUpdateRequest = {\n // Status options to add or update. New options are assigned to the To-do group.\n options?: Array<\n { color?: SelectColor; description?: string | null } & (\n | { name: string; id?: string }\n | { id: string; name?: string }\n )\n >\n}\n\ntype StatusPropertyConfigurationRequest = {\n // Always `status`\n type?: \"status\"\n status: StatusPropertyConfigRequest\n}\n\ntype StatusPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | ExistencePropertyFilter\n\ntype SubtaskConfigRequest = {\n // Relation property ID used for parent-child nesting.\n property_id?: string\n // How sub-items are displayed. \"show\" renders hierarchically with toggles, \"hidden\"\n // shows parents with a count, \"flattened\" shows sub-items with a parent indicator,\n // \"disabled\" turns off sub-item rendering.\n display_mode?: \"show\" | \"hidden\" | \"flattened\" | \"disabled\"\n // Which items are included when filtering. \"parents\" includes parent items only,\n // \"parents_and_subitems\" includes both, \"subitems\" includes sub-items only.\n filter_scope?: \"parents\" | \"parents_and_subitems\" | \"subitems\"\n // Property ID of the column showing the sub-item expand/collapse toggle.\n toggle_column_id?: string\n}\n\ntype TableViewConfigRequest = {\n // The view type. Must be \"table\".\n type: \"table\"\n // Property visibility and display configuration. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Group-by configuration for the table. Pass null to remove grouping.\n group_by?: GroupByConfigRequest | null\n // Subtask (sub-item) configuration. Pass null to reset subtask config to defaults (which\n // may show subtasks). Use `{ \"display_mode\": \"disabled\" }` to explicitly disable\n // subtasks.\n subtasks?: SubtaskConfigRequest | null\n // Whether to wrap cell content in the table.\n wrap_cells?: boolean\n // Number of columns frozen from the left side of the table.\n frozen_column_index?: number\n // Whether to show vertical grid lines between columns.\n show_vertical_lines?: boolean\n}\n\ntype TemplateMentionDateTemplateMentionResponse = {\n // Always `template_mention_date`\n type: \"template_mention_date\"\n // The date of the template mention.\n template_mention_date: \"today\" | \"now\"\n}\n\ntype TemplateMentionResponse =\n | TemplateMentionDateTemplateMentionResponse\n | TemplateMentionUserTemplateMentionResponse\n\ntype TemplateMentionUserTemplateMentionResponse = {\n // Always `template_mention_user`\n type: \"template_mention_user\"\n // The user of the template mention.\n template_mention_user: \"me\"\n}\n\n/**\n * IANA timezone to use when resolving template variables like @now and @today (e.g.\n * 'America/New_York'). Defaults to the authorizing user's timezone for public\n * integrations, or UTC for internal integrations.\n */\nexport type TemplateTimezone = string\n\ntype TextGroupByConfigRequest = {\n // The property type for grouping.\n type: \"text\" | \"title\" | \"url\" | \"email\" | \"phone_number\"\n // Property ID to group by.\n property_id: string\n // How to group text values. \"exact\" = exact match, \"alphabet_prefix\" = first letter.\n group_by: \"exact\" | \"alphabet_prefix\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype TextPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | { contains: string }\n | { does_not_contain: string }\n | { starts_with: string }\n | { ends_with: string }\n | ExistencePropertyFilter\n\nexport type TextRichTextItemResponse = {\n // Always `text`\n type: \"text\"\n // If a rich text object's type value is `text`, then the corresponding text field\n // contains an object including the text content and any inline link.\n text: {\n // The actual text content of the text.\n content: string\n // An object with information about any inline link in this text, if included.\n link: {\n // The URL of the link.\n url: string\n } | null\n }\n}\n\ntype TimeZoneRequest = string\n\ntype TimelineArrowsByRequest = {\n // Relation property ID used for dependency arrows, or null to disable arrows.\n property_id?: string | null\n}\n\ntype TimelinePreferenceRequest = {\n // Zoom level for the timeline.\n zoom_level:\n | \"hours\"\n | \"day\"\n | \"week\"\n | \"bi_week\"\n | \"month\"\n | \"quarter\"\n | \"year\"\n | \"5_years\"\n // Timestamp (ms) to center the timeline view on.\n center_timestamp?: number\n}\n\ntype TimelineViewConfigRequest = {\n // The view type. Must be \"timeline\".\n type: \"timeline\"\n // Property ID of the date property used for the start of timeline items.\n date_property_id: string\n // Property ID of the date property used for the end of timeline items. Pass null to\n // clear.\n end_date_property_id?: string | null\n // Property visibility and display configuration on timeline items. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Whether to show the table panel alongside the timeline. Pass null to clear.\n show_table?: boolean | null\n // Property configuration for the table panel (when show_table is true). Pass null to\n // clear.\n table_properties?: Array<ViewPropertyConfigRequest> | null\n // Timeline display preferences (zoom level and center position). Pass null to clear.\n preference?: TimelinePreferenceRequest | null\n // Configuration for dependency arrows between timeline items. Pass null to clear.\n arrows_by?: TimelineArrowsByRequest | null\n // Whether to color timeline items by a property. Pass null to clear.\n color_by?: boolean | null\n}\n\ntype TimestampCreatedTimeFilter = {\n created_time: DatePropertyFilter\n timestamp: \"created_time\"\n type?: \"created_time\"\n}\n\nexport type TimestampFilter =\n | TimestampCreatedTimeFilter\n | TimestampLastEditedTimeFilter\n\ntype TimestampLastEditedTimeFilter = {\n last_edited_time: DatePropertyFilter\n timestamp: \"last_edited_time\"\n type?: \"last_edited_time\"\n}\n\ntype TitlePropertyConfigurationRequest = {\n // Always `title`\n type?: \"title\"\n title: EmptyObject\n}\n\ntype UniqueIdPropertyConfigurationRequest = {\n // Always `unique_id`\n type?: \"unique_id\"\n unique_id: { prefix?: string | null }\n}\n\nexport type UpdateMediaContentWithFileAndCaptionRequest = {\n caption?: Array<RichTextItemRequest>\n external?: ExternalFileRequest\n file_upload?: FileUploadIdRequest\n}\n\nexport type UpdateMediaContentWithFileNameAndCaptionRequest = {\n caption?: Array<RichTextItemRequest>\n external?: ExternalFileRequest\n file_upload?: FileUploadIdRequest\n name?: StringRequest\n}\n\nexport type UpdateMediaContentWithUrlAndCaptionRequest = {\n url?: string\n caption?: Array<RichTextItemRequest>\n}\n\nexport type UpdateViewRequest = {\n // New name for the view.\n name?: string\n // Filter to apply to the view. Uses the same format as the data source query filter.\n // Pass null to clear the filter.\n filter?: ViewFilterRequest | null\n // Property sorts to apply to the view. Only property-based sorts are supported. Pass\n // null to clear the sorts.\n sorts?: ViewPropertySortsRequest | null\n // Quick filters for the view's filter bar. Keys are property names or IDs. Set a key to\n // a filter condition to add/update that quick filter. Set a key to null to remove it.\n // Pass null for the entire field to clear all quick filters. Unmentioned quick filters\n // are preserved.\n quick_filters?: Record<string, QuickFilterConditionRequest | null> | null\n // View presentation configuration. The type field must match the view type. Individual\n // nullable fields within the configuration can be set to null to clear them.\n configuration?: ViewConfigRequest\n}\n\ntype UrlPropertyConfigurationRequest = {\n // Always `url`\n type?: \"url\"\n url: EmptyObject\n}\n\nexport type UserObjectResponse = UserObjectResponseCommon &\n (PersonUserObjectResponse | BotUserObjectResponse)\n\nexport type UserObjectResponseCommon = {\n // The ID of the user.\n id: IdResponse\n // The user object type name.\n object: \"user\"\n // The name of the user.\n name: string | null\n // The avatar URL of the user.\n avatar_url: string | null\n}\n\ntype UserValueResponse = PartialUserObjectResponse | UserObjectResponse\n\ntype VerificationPropertyConfigurationRequest = {\n // Always `verification`\n type?: \"verification\"\n verification: EmptyObject\n}\n\ntype VerificationPropertyStatusFilter = {\n status: \"verified\" | \"expired\" | \"none\"\n}\n\n/**\n * View configuration, discriminated by the type field.\n */\ntype ViewConfigRequest =\n | TableViewConfigRequest\n | BoardViewConfigRequest\n | CalendarViewConfigRequest\n | TimelineViewConfigRequest\n | GalleryViewConfigRequest\n | ListViewConfigRequest\n | MapViewConfigRequest\n | FormViewConfigRequest\n | ChartViewConfigRequest\n\n/**\n * Filter for the view. Uses the same format as the data source query filter (property\n * filters, timestamp filters, or compound and/or filters). Simple property filters appear\n * in the view's filter bar in the Notion UI. To filter by multiple values on a select or\n * status property, use a compound \"or\" filter with separate \"equals\" conditions for each\n * value.\n */\ntype ViewFilterRequest = Record<string, never>\n\n/**\n * Position of the new view in the database's view tab bar.\n */\ntype ViewPositionRequest =\n | {\n // Position type. \"start\" places the view as the first tab.\n type: \"start\"\n }\n | {\n // Position type. \"end\" places the view as the last tab.\n type: \"end\"\n }\n | {\n // Position type. \"after_view\" places the new view immediately after the specified view.\n type: \"after_view\"\n // The ID of an existing view in the database. The new view will be placed after this\n // view.\n view_id: IdRequest\n }\n\ntype ViewPropertyConfigRequest = {\n // Property ID (stable identifier).\n property_id: string\n // Whether this property is visible in the view.\n visible?: boolean\n // Width of the property column in pixels (table view only).\n width?: number\n // Whether to wrap content in this property cell/card.\n wrap?: boolean\n // How to display status properties (select dropdown or checkbox).\n status_show_as?: \"select\" | \"checkbox\"\n // Property width mode in compact card layouts (board/gallery).\n card_property_width_mode?: \"full_line\" | \"inline\"\n // Date display format (date properties only).\n date_format?:\n | \"full\"\n | \"short\"\n | \"month_day_year\"\n | \"day_month_year\"\n | \"year_month_day\"\n | \"relative\"\n // Time display format (date properties only).\n time_format?: \"12_hour\" | \"24_hour\" | \"hidden\"\n}\n\ntype ViewPropertySortRequest = {\n // Property name or ID to sort by.\n property: string\n // Sort direction.\n direction: SortDirectionRequest\n}\n\ntype ViewPropertySortsRequest = Array<ViewPropertySortRequest>\n\n/**\n * Sort for the view. Can be a property sort (with property and direction) or timestamp\n * sort (with timestamp and direction).\n */\ntype ViewSortRequest = Record<string, never>\n\ntype ViewSortsRequest = Array<ViewSortRequest>\n\n/**\n * One of: `table`, `board`, `list`, `calendar`, `timeline`, `gallery`, `form`, `chart`,\n * `map`, `dashboard`\n */\ntype ViewTypeRequest =\n | \"table\"\n | \"board\"\n | \"list\"\n | \"calendar\"\n | \"timeline\"\n | \"gallery\"\n | \"form\"\n | \"chart\"\n | \"map\"\n | \"dashboard\"\n\n/**\n * Where to place the new widget in the dashboard. \"new_row\" creates a new row,\n * \"existing_row\" adds to an existing row side-by-side with other widgets.\n */\ntype WidgetPlacementRequest =\n | {\n // Placement type. \"new_row\" creates a new row containing the widget.\n type: \"new_row\"\n // The 0-based row position to insert the new row at. If omitted, the new row is appended\n // at the end.\n row_index?: number\n }\n | {\n // Placement type. \"existing_row\" adds the widget to an existing row (side-by-side with\n // other widgets).\n type: \"existing_row\"\n // The 0-based index of the existing row to add the widget to.\n row_index: number\n }\n\ntype WorkspaceParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"workspace\"\n // Always true for workspace parent.\n workspace: true\n}\n\nexport type BlockObjectRequest =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | { tab: TabRequestWithNestedTabItemChildren; type?: \"tab\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n table: TableRequestWithTableRowChildren\n type?: \"table\"\n object?: \"block\"\n }\n | { column_list: ColumnListRequest; type?: \"column_list\"; object?: \"block\" }\n | { column: ColumnWithChildrenRequest; type?: \"column\"; object?: \"block\" }\n | {\n heading_1: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n paragraph: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n checked?: boolean\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: {\n rich_text: Array<RichTextItemRequest>\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n icon?: PageIconRequest\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\nexport type DateRequest = {\n // The start date of the date object.\n start: string\n // The end date of the date object, if any.\n end?: string | null\n // The time zone of the date object, if any. E.g. America/Los_Angeles, Europe/London,\n // etc.\n time_zone?: TimeZoneRequest | null\n}\n\nexport type PageIconRequest =\n | FileUploadPageIconRequest\n | EmojiPageIconRequest\n | ExternalPageIconRequest\n | CustomEmojiPageIconRequest\n | IconPageIconRequest\n\nexport type PartialUserObjectRequest = {\n // The ID of the user.\n id: IdRequest\n // The user object type name.\n object?: \"user\"\n}\n\nexport type RichTextItemRequest = RichTextItemRequestCommon &\n (\n | TextRichTextItemRequest\n | MentionRichTextItemRequest\n | EquationRichTextItemRequest\n )\n\nexport type StringRequest = string\n\nexport type TextRequest = string\n\nexport type PartialPageObjectResponse = {\n // The page object type name.\n object: \"page\"\n // The ID of the page.\n id: IdResponse\n}\n\nexport type PageObjectResponse = {\n // The page object type name.\n object: \"page\"\n // The ID of the page.\n id: IdResponse\n // Date and time when this page was created.\n created_time: string\n // Date and time when this page was last edited.\n last_edited_time: string\n // Whether the page is in trash.\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n // Whether the page has been archived.\n is_archived: boolean\n // Whether the page is locked from editing in the Notion app UI.\n is_locked: boolean\n // The URL of the Notion page.\n url: string\n // The public URL of the Notion page, if it has been published to the web.\n public_url: string | null\n // Information about the page's parent.\n parent: ParentForBlockBasedObjectResponse\n // Property values of this page.\n properties: Record<string, PagePropertyValueWithIdResponse>\n // Page icon.\n icon: PageIconResponse | null\n // Page cover image.\n cover: PageCoverResponse | null\n // User who created the page.\n created_by: PartialUserObjectResponse\n // User who last edited the page.\n last_edited_by: PartialUserObjectResponse\n}\n\ntype BlockObjectWithSingleLevelOfChildrenRequest =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | { tab: TabRequestWithTabItemChildren; type?: \"tab\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n heading_1: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n paragraph: ContentWithSingleLevelOfChildrenRequest\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: ContentWithSingleLevelOfChildrenRequest\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: ContentWithSingleLevelOfChildrenRequest\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: ContentWithSingleLevelOfChildrenRequest\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n table: TableRequestWithTableRowChildren\n type?: \"table\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n checked?: boolean\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: ContentWithSingleLevelOfChildrenRequest\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: {\n rich_text: Array<RichTextItemRequest>\n children?: Array<BlockObjectRequestWithoutChildren>\n }\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n icon?: PageIconRequest\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n children?: Array<BlockObjectRequestWithoutChildren>\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\ntype ColumnListRequest = { children: Array<ColumnBlockWithChildrenRequest> }\n\ntype ColumnWithChildrenRequest = {\n children: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n // Ratio between 0 and 1 of the width of this column relative to all columns in the list.\n // If not provided, uses an equal width.\n width_ratio?: number\n}\n\nexport type ContentWithExpressionRequest = { expression: string }\n\nexport type ContentWithTableRowRequest = {\n cells: Array<Array<RichTextItemRequest>>\n}\n\ntype CustomEmojiPageIconRequest = {\n // Always `custom_emoji`\n type?: \"custom_emoji\"\n custom_emoji: {\n // The ID of the custom emoji.\n id: IdRequest\n // The name of the custom emoji.\n name?: string\n // The URL of the custom emoji.\n url?: string\n }\n}\n\ntype EmojiPageIconRequest = {\n // Always `emoji`\n type?: \"emoji\"\n // An emoji character.\n emoji: EmojiRequest\n}\n\ntype EquationRichTextItemRequest = {\n // Always `equation`\n type?: \"equation\"\n // Notion supports inline LaTeX equations as rich text objects with a type value of\n // `equation`.\n equation: {\n // A KaTeX compatible string.\n expression: string\n }\n}\n\ntype ExternalFileRequest = { url: TextRequest }\n\ntype ExternalPageIconRequest = {\n // Always `external`\n type?: \"external\"\n external: {\n // The URL of the external file.\n url: string\n }\n}\n\ntype FileUploadIdRequest = { id: IdRequest }\n\ntype FileUploadPageIconRequest = {\n // Always `file_upload`\n type?: \"file_upload\"\n file_upload: {\n // ID of a FileUpload object that has the status `uploaded`.\n id: string\n }\n}\n\ntype IconPageIconRequest = {\n // Always `icon`\n type?: \"icon\"\n // A Notion native icon, specified by name and optional color.\n icon: {\n // The name of the Notion icon (e.g. pizza, meeting, home). See the Notion icon picker\n // for valid names.\n name: NoticonName\n // The color variant of the icon. Defaults to gray if not specified. Valid values: gray,\n // lightgray, brown, yellow, orange, green, blue, purple, pink, red.\n color?: NoticonColor\n }\n}\n\nexport type LanguageRequest =\n | \"abap\"\n | \"abc\"\n | \"agda\"\n | \"arduino\"\n | \"ascii art\"\n | \"assembly\"\n | \"bash\"\n | \"basic\"\n | \"bnf\"\n | \"c\"\n | \"c#\"\n | \"c++\"\n | \"clojure\"\n | \"coffeescript\"\n | \"coq\"\n | \"css\"\n | \"dart\"\n | \"dhall\"\n | \"diff\"\n | \"docker\"\n | \"ebnf\"\n | \"elixir\"\n | \"elm\"\n | \"erlang\"\n | \"f#\"\n | \"flow\"\n | \"fortran\"\n | \"gherkin\"\n | \"glsl\"\n | \"go\"\n | \"graphql\"\n | \"groovy\"\n | \"haskell\"\n | \"hcl\"\n | \"html\"\n | \"idris\"\n | \"java\"\n | \"javascript\"\n | \"json\"\n | \"julia\"\n | \"kotlin\"\n | \"latex\"\n | \"less\"\n | \"lisp\"\n | \"livescript\"\n | \"llvm ir\"\n | \"lua\"\n | \"makefile\"\n | \"markdown\"\n | \"markup\"\n | \"matlab\"\n | \"mathematica\"\n | \"mermaid\"\n | \"nix\"\n | \"notion formula\"\n | \"objective-c\"\n | \"ocaml\"\n | \"pascal\"\n | \"perl\"\n | \"php\"\n | \"plain text\"\n | \"powershell\"\n | \"prolog\"\n | \"protobuf\"\n | \"purescript\"\n | \"python\"\n | \"r\"\n | \"racket\"\n | \"reason\"\n | \"ruby\"\n | \"rust\"\n | \"sass\"\n | \"scala\"\n | \"scheme\"\n | \"scss\"\n | \"shell\"\n | \"smalltalk\"\n | \"solidity\"\n | \"sql\"\n | \"swift\"\n | \"toml\"\n | \"typescript\"\n | \"vb.net\"\n | \"verilog\"\n | \"vhdl\"\n | \"visual basic\"\n | \"webassembly\"\n | \"xml\"\n | \"yaml\"\n | \"java/c/c++/c#\"\n\ntype MediaContentWithFileAndCaptionRequest =\n | {\n external: ExternalFileRequest\n type?: \"external\"\n caption?: Array<RichTextItemRequest>\n }\n | {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n caption?: Array<RichTextItemRequest>\n }\n\ntype MediaContentWithFileNameAndCaptionRequest =\n | {\n external: ExternalFileRequest\n type?: \"external\"\n caption?: Array<RichTextItemRequest>\n name?: StringRequest\n }\n | {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n caption?: Array<RichTextItemRequest>\n name?: StringRequest\n }\n\ntype MediaContentWithUrlAndCaptionRequest = {\n url: string\n caption?: Array<RichTextItemRequest>\n}\n\ntype MentionRichTextItemRequest = {\n // Always `mention`\n type?: \"mention\"\n // Mention objects represent an inline mention of a database, date, link preview mention,\n // page, template mention, or user. A mention is created in the Notion UI when a user\n // types `@` followed by the name of the reference.\n mention:\n | {\n // Always `user`\n type?: \"user\"\n // Details of the user mention.\n user: PartialUserObjectRequest\n }\n | {\n // Always `date`\n type?: \"date\"\n // Details of the date mention.\n date: DateRequest\n }\n | {\n // Always `page`\n type?: \"page\"\n // Details of the page mention.\n page: {\n // The ID of the page in the mention.\n id: IdRequest\n }\n }\n | {\n // Always `database`\n type?: \"database\"\n // Details of the database mention.\n database: {\n // The ID of the database in the mention.\n id: IdRequest\n }\n }\n | {\n // Always `template_mention`\n type?: \"template_mention\"\n // Details of the template mention.\n template_mention: TemplateMentionRequest\n }\n | {\n // Always `custom_emoji`\n type?: \"custom_emoji\"\n // Details of the custom emoji mention.\n custom_emoji: {\n // The ID of the custom emoji.\n id: IdRequest\n // The name of the custom emoji.\n name?: string\n // The URL of the custom emoji.\n url?: string\n }\n }\n}\n\ntype RichTextItemRequestCommon = {\n // All rich text objects contain an annotations object that sets the styling for the rich\n // text.\n annotations?: AnnotationRequest\n}\n\ntype TabRequestWithNestedTabItemChildren = {\n children: Array<TabItemRequestWithSingleLevelOfChildren>\n}\n\ntype TableRequestWithTableRowChildren = {\n table_width: number\n children: Array<TableRowRequest>\n has_column_header?: boolean\n has_row_header?: boolean\n}\n\ntype TextRichTextItemRequest = {\n // Always `text`\n type?: \"text\"\n // If a rich text object's type value is `text`, then the corresponding text field\n // contains an object including the text content and any inline link.\n text: {\n // The actual text content of the text.\n content: string\n // An object with information about any inline link in this text, if included.\n link?: {\n // The URL of the link.\n url: string\n } | null\n }\n}\n\ntype PagePropertyValueWithIdResponse = IdObjectResponse &\n (SimpleOrArrayPropertyValueResponse | PartialRollupPropertyResponse)\n\nexport type NumberFormat = string\n\nexport type PropertyDescriptionRequest = string\n\ntype AnnotationRequest = {\n // Whether the text is formatted as bold.\n bold?: boolean\n // Whether the text is formatted as italic.\n italic?: boolean\n // Whether the text is formatted with a strikethrough.\n strikethrough?: boolean\n // Whether the text is formatted with an underline.\n underline?: boolean\n // Whether the text is formatted as code.\n code?: boolean\n // The color of the text.\n color?: ApiColor\n}\n\nexport type BlockObjectRequestWithoutChildren =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | { tab: EmptyObject; type?: \"tab\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n heading_1: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n paragraph: ContentWithRichTextAndColorRequest\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: ContentWithRichTextAndColorRequest\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: ContentWithRichTextAndColorRequest\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: ContentWithRichTextAndColorRequest\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n checked?: boolean\n color?: ApiColor\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: ContentWithRichTextAndColorRequest\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: ContentWithRichTextRequest\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n icon?: PageIconRequest\n color?: ApiColor\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\ntype ColumnBlockWithChildrenRequest = {\n column: ColumnWithChildrenRequest\n type?: \"column\"\n object?: \"block\"\n}\n\ntype ContentWithSingleLevelOfChildrenRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n}\n\ntype HeaderContentWithSingleLevelOfChildrenRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectRequestWithoutChildren>\n}\n\ntype TabItemRequestWithSingleLevelOfChildren = {\n paragraph: ContentWithSingleLevelOfChildrenRequest\n type?: \"paragraph\"\n object?: \"block\"\n}\n\ntype TabRequestWithTabItemChildren = {\n children: Array<TabItemRequestWithoutChildren>\n}\n\ntype TableRowRequest = {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n}\n\ntype TemplateMentionRequest =\n | TemplateMentionDateTemplateMentionRequest\n | TemplateMentionUserTemplateMentionRequest\n\ntype IdObjectResponse = { id: string }\n\ntype PartialRollupPropertyResponse = {\n // Always `rollup`\n type: \"rollup\"\n rollup: PartialRollupValueResponse\n}\n\ntype SimpleOrArrayPropertyValueResponse =\n | SimplePropertyValueResponse\n | ArrayBasedPropertyValueResponse\n\nexport type ContentWithRichTextAndColorRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n}\n\nexport type ContentWithRichTextRequest = {\n rich_text: Array<RichTextItemRequest>\n}\n\nexport type HeaderContentWithRichTextAndColorRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n}\n\ntype TabItemRequestWithoutChildren = {\n paragraph: ContentWithRichTextAndColorRequest\n type?: \"paragraph\"\n object?: \"block\"\n}\n\ntype TemplateMentionDateTemplateMentionRequest = {\n // Always `template_mention_date`\n type?: \"template_mention_date\"\n // The date of the template mention.\n template_mention_date: \"today\" | \"now\"\n}\n\ntype TemplateMentionUserTemplateMentionRequest = {\n // Always `template_mention_user`\n type?: \"template_mention_user\"\n // The user of the template mention.\n template_mention_user: \"me\"\n}\n\ntype ArrayBasedPropertyValueResponse =\n | TitleArrayBasedPropertyValueResponse\n | RichTextArrayBasedPropertyValueResponse\n | PeopleArrayBasedPropertyValueResponse\n | RelationArrayBasedPropertyValueResponse\n\ntype PartialRollupValueResponse = PartialRollupValueResponseCommon &\n (\n | NumberPartialRollupValueResponse\n | DatePartialRollupValueResponse\n | ArrayPartialRollupValueResponse\n )\n\ntype SimplePropertyValueResponse =\n | NumberSimplePropertyValueResponse\n | UrlSimplePropertyValueResponse\n | SelectSimplePropertyValueResponse\n | MultiSelectSimplePropertyValueResponse\n | StatusSimplePropertyValueResponse\n | DateSimplePropertyValueResponse\n | EmailSimplePropertyValueResponse\n | PhoneNumberSimplePropertyValueResponse\n | CheckboxSimplePropertyValueResponse\n | FilesSimplePropertyValueResponse\n | CreatedBySimplePropertyValueResponse\n | CreatedTimeSimplePropertyValueResponse\n | LastEditedBySimplePropertyValueResponse\n | LastEditedTimeSimplePropertyValueResponse\n | FormulaSimplePropertyValueResponse\n | ButtonSimplePropertyValueResponse\n | UniqueIdSimplePropertyValueResponse\n | VerificationSimplePropertyValueResponse\n | PlaceSimplePropertyValueResponse\n\ntype ArrayPartialRollupValueResponse = {\n // Always `array`\n type: \"array\"\n array: Array<SimpleOrArrayPropertyValueResponse>\n}\n\ntype ButtonSimplePropertyValueResponse = {\n // Always `button`\n type: \"button\"\n button: EmptyObject\n}\n\ntype CheckboxSimplePropertyValueResponse = {\n // Always `checkbox`\n type: \"checkbox\"\n checkbox: boolean\n}\n\ntype CreatedBySimplePropertyValueResponse = {\n // Always `created_by`\n type: \"created_by\"\n created_by: UserValueResponse\n}\n\ntype CreatedTimeSimplePropertyValueResponse = {\n // Always `created_time`\n type: \"created_time\"\n created_time: string\n}\n\ntype DatePartialRollupValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\ntype DateSimplePropertyValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\ntype EmailSimplePropertyValueResponse = {\n // Always `email`\n type: \"email\"\n email: string | null\n}\n\ntype FilesSimplePropertyValueResponse = {\n // Always `files`\n type: \"files\"\n files: Array<InternalOrExternalFileWithNameResponse>\n}\n\ntype FormulaSimplePropertyValueResponse = {\n // Always `formula`\n type: \"formula\"\n formula: FormulaPropertyValueResponse\n}\n\ntype LastEditedBySimplePropertyValueResponse = {\n // Always `last_edited_by`\n type: \"last_edited_by\"\n last_edited_by: UserValueResponse\n}\n\ntype LastEditedTimeSimplePropertyValueResponse = {\n // Always `last_edited_time`\n type: \"last_edited_time\"\n last_edited_time: string\n}\n\ntype MultiSelectSimplePropertyValueResponse = {\n // Always `multi_select`\n type: \"multi_select\"\n multi_select: Array<PartialSelectPropertyValueResponse>\n}\n\ntype NumberPartialRollupValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype NumberSimplePropertyValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype PartialRollupValueResponseCommon = {\n // The function used for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n}\n\ntype PeopleArrayBasedPropertyValueResponse = {\n // Always `people`\n type: \"people\"\n people: Array<UserValueResponse | GroupObjectResponse>\n}\n\ntype PhoneNumberSimplePropertyValueResponse = {\n // Always `phone_number`\n type: \"phone_number\"\n phone_number: string | null\n}\n\ntype PlaceSimplePropertyValueResponse = {\n // Always `place`\n type: \"place\"\n place: PlacePropertyValueResponse | null\n}\n\ntype RelationArrayBasedPropertyValueResponse = {\n // Always `relation`\n type: \"relation\"\n relation: Array<RelationItemPropertyValueResponse>\n}\n\ntype RichTextArrayBasedPropertyValueResponse = {\n // Always `rich_text`\n type: \"rich_text\"\n rich_text: Array<RichTextItemResponse>\n}\n\ntype SelectSimplePropertyValueResponse = {\n // Always `select`\n type: \"select\"\n select: PartialSelectPropertyValueResponse | null\n}\n\ntype StatusSimplePropertyValueResponse = {\n // Always `status`\n type: \"status\"\n status: PartialSelectPropertyValueResponse | null\n}\n\ntype TitleArrayBasedPropertyValueResponse = {\n // Always `title`\n type: \"title\"\n title: Array<RichTextItemResponse>\n}\n\ntype UniqueIdSimplePropertyValueResponse = {\n // Always `unique_id`\n type: \"unique_id\"\n unique_id: UniqueIdPropertyValueResponse\n}\n\ntype UrlSimplePropertyValueResponse = {\n // Always `url`\n type: \"url\"\n url: string | null\n}\n\ntype VerificationSimplePropertyValueResponse = {\n // Always `verification`\n type: \"verification\"\n verification: VerificationPropertyValueResponse | null\n}\n\ntype FormulaPropertyValueResponse =\n | BooleanFormulaPropertyValueResponse\n | DateFormulaPropertyValueResponse\n | NumberFormulaPropertyValueResponse\n | StringFormulaPropertyValueResponse\n\nexport type InternalOrExternalFileWithNameResponse =\n InternalOrExternalFileWithNameResponseCommon &\n (\n | FileInternalOrExternalFileWithNameResponse\n | ExternalInternalOrExternalFileWithNameResponse\n )\n\ntype PartialSelectPropertyValueResponse = {\n id: string\n name: string\n // One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n // `pink`, `red`\n color:\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n}\n\ntype PlacePropertyValueResponse = {\n lat: number\n lon: number\n name?: string | null\n address?: string | null\n aws_place_id?: string | null\n google_place_id?: string | null\n}\n\nexport type RelationItemPropertyValueResponse = { id: IdRequest }\n\ntype UniqueIdPropertyValueResponse = {\n prefix: string | null\n number: number | null\n}\n\nexport type VerificationPropertyValueResponse =\n | VerificationPropertyUnverifiedResponse\n | VerificationPropertyResponse\n\ntype BooleanFormulaPropertyValueResponse = {\n // Always `boolean`\n type: \"boolean\"\n boolean: boolean | null\n}\n\ntype DateFormulaPropertyValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\ntype ExternalInternalOrExternalFileWithNameResponse = {\n // Type of attachment. In this case, an external URL.\n type: \"external\"\n // The external URL.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\ntype FileInternalOrExternalFileWithNameResponse = {\n // Type of attachment. In this case, a file uploaded to a Notion workspace.\n type: \"file\"\n // The file URL.\n file: InternalFileResponse\n}\n\ntype InternalOrExternalFileWithNameResponseCommon = {\n // The name of the file.\n name: string\n}\n\ntype NumberFormulaPropertyValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype StringFormulaPropertyValueResponse = {\n // Always `string`\n type: \"string\"\n string: string | null\n}\n\ntype VerificationPropertyResponse = {\n // One of: `verified`, `expired`\n state: \"verified\" | \"expired\"\n date: DateResponse | null\n verified_by: UserValueResponse | null\n}\n\ntype VerificationPropertyUnverifiedResponse = {\n // Always `unverified`\n state: \"unverified\"\n date: null\n verified_by: null\n}\n"]}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/api-endpoints/common.ts"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,+CAA+C","sourcesContent":["// cspell:disable-file\n// Note: This is a generated file. DO NOT EDIT!\n\ntype AnnotationResponse = {\n bold: boolean\n italic: boolean\n strikethrough: boolean\n underline: boolean\n code: boolean\n color: ApiColor\n}\n\n/**\n * One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n * `pink`, `red`, `default_background`, `gray_background`, `brown_background`,\n * `orange_background`, `yellow_background`, `green_background`, `blue_background`,\n * `purple_background`, `pink_background`, `red_background`\n */\nexport type ApiColor =\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n | \"default_background\"\n | \"gray_background\"\n | \"brown_background\"\n | \"orange_background\"\n | \"yellow_background\"\n | \"green_background\"\n | \"blue_background\"\n | \"purple_background\"\n | \"pink_background\"\n | \"red_background\"\n\ntype BlockIdParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"block_id\"\n // The ID of the parent block.\n block_id: IdResponse\n}\n\ntype BoardViewConfigRequest = {\n // The view type. Must be \"board\".\n type: \"board\"\n // Group-by configuration for board columns.\n group_by: GroupByConfigRequest\n // Secondary group-by configuration for sub-grouping within columns. Pass null to remove\n // sub-grouping.\n sub_group_by?: GroupByConfigRequest | null\n // Property visibility and display configuration on cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Cover image configuration for cards. Pass null to clear.\n cover?: CoverConfigRequest | null\n // Size of the cover image on cards. Pass null to clear.\n cover_size?: \"small\" | \"medium\" | \"large\" | null\n // Aspect ratio mode for cover images. \"contain\" fits the image, \"cover\" fills the area.\n // Pass null to clear.\n cover_aspect?: \"contain\" | \"cover\" | null\n // Card layout mode. \"list\" shows full cards, \"compact\" shows condensed cards. Pass null\n // to clear.\n card_layout?: \"list\" | \"compact\" | null\n}\n\ntype BotInfoResponse = {\n // Details about the owner of the bot.\n owner:\n | {\n // Always `user`\n type: \"user\"\n // Details about the owner of the bot, when the `type` of the owner is `user`. This means\n // the bot is for a integration.\n user:\n | {\n // The ID of the user.\n id: IdResponse\n // The user object type name.\n object: \"user\"\n // The name of the user.\n name: string | null\n // The avatar URL of the user.\n avatar_url: string | null\n // The type of the user.\n type: \"person\"\n // The person info of the user.\n person: {\n // The email of the person.\n email?: string\n }\n }\n | PartialUserObjectResponse\n }\n | {\n // Always `workspace`\n type: \"workspace\"\n // Details about the owner of the bot, when the `type` of the owner is `workspace`. This\n // means the bot is for an internal integration.\n workspace: true\n }\n // The ID of the bot's workspace.\n workspace_id: string\n // Limits and restrictions that apply to the bot's workspace\n workspace_limits: {\n // The maximum allowable size of a file upload, in bytes\n max_file_upload_size_in_bytes: number\n }\n // The name of the bot's workspace.\n workspace_name: string | null\n}\n\nexport type BotUserObjectResponse = {\n // Indicates this user is a bot.\n type: \"bot\"\n // Details about the bot, when the `type` of the user is `bot`.\n bot: EmptyObject | BotInfoResponse\n}\n\ntype ButtonPropertyConfigurationRequest = {\n // Always `button`\n type?: \"button\"\n button: EmptyObject\n}\n\ntype CalendarViewConfigRequest = {\n // The view type. Must be \"calendar\".\n type: \"calendar\"\n // Property ID of the date property used to position items on the calendar.\n date_property_id: string\n // Property visibility and display configuration on calendar cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Default calendar range. \"week\" shows a week view, \"month\" shows a month view. Pass\n // null to clear.\n view_range?: \"week\" | \"month\" | null\n // Whether to show weekend days. Pass null to clear.\n show_weekends?: boolean | null\n}\n\ntype ChartAggregationRequest = {\n // The aggregation operator. \"count\" counts all rows and does not require a property_id.\n // All other operators require a property_id.\n aggregator:\n | \"count\"\n | \"count_values\"\n | \"sum\"\n | \"average\"\n | \"median\"\n | \"min\"\n | \"max\"\n | \"range\"\n | \"unique\"\n | \"empty\"\n | \"not_empty\"\n | \"percent_empty\"\n | \"percent_not_empty\"\n | \"checked\"\n | \"unchecked\"\n | \"percent_checked\"\n | \"percent_unchecked\"\n | \"earliest_date\"\n | \"latest_date\"\n | \"date_range\"\n // The property to aggregate on. Required for all operators except \"count\".\n property_id?: string\n}\n\ntype ChartReferenceLineRequest = {\n // The y-axis value where the reference line is drawn.\n value: number\n // Label displayed alongside the reference line.\n label: string\n // Color of the reference line.\n color:\n | \"gray\"\n | \"lightgray\"\n | \"brown\"\n | \"yellow\"\n | \"orange\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n // Line style: \"solid\" for a continuous line, \"dash\" for a dashed line.\n dash_style: \"solid\" | \"dash\"\n // Unique identifier for the reference line. Auto-generated if omitted.\n id?: string\n}\n\ntype ChartViewConfigRequest = {\n // The view type. Must be \"chart\".\n type: \"chart\"\n // The chart type.\n chart_type: \"column\" | \"bar\" | \"line\" | \"donut\" | \"number\"\n // X-axis grouping configuration for grouped data mode. Pass null to clear.\n x_axis?: GroupByConfigRequest | null\n // Y-axis aggregation for grouped data mode. Pass null to clear.\n y_axis?: ChartAggregationRequest | null\n // Property ID for x-axis values in results mode. Pass null to clear.\n x_axis_property_id?: string | null\n // Property ID for y-axis values in results mode. Pass null to clear.\n y_axis_property_id?: string | null\n // Aggregation for number charts. Pass null to clear.\n value?: ChartAggregationRequest | null\n // Sort order for chart data. Pass null to clear.\n sort?:\n | \"manual\"\n | \"x_ascending\"\n | \"x_descending\"\n | \"y_ascending\"\n | \"y_descending\"\n | null\n // Color theme. Pass null to clear.\n color_theme?:\n | \"gray\"\n | \"blue\"\n | \"yellow\"\n | \"green\"\n | \"purple\"\n | \"teal\"\n | \"orange\"\n | \"pink\"\n | \"red\"\n | \"auto\"\n | \"colorful\"\n | null\n // Chart height. Pass null to clear.\n height?: \"small\" | \"medium\" | \"large\" | \"extra_large\" | null\n // Whether to hide groups with no data. Pass null to clear.\n hide_empty_groups?: boolean | null\n // Legend position. Pass null to clear.\n legend_position?: \"off\" | \"bottom\" | \"side\" | null\n // Whether to show data labels. Pass null to clear.\n show_data_labels?: boolean | null\n // Which axis labels to show. Pass null to clear.\n axis_labels?: \"none\" | \"x_axis\" | \"y_axis\" | \"both\" | null\n // Which grid lines to show. Pass null to clear.\n grid_lines?: \"none\" | \"horizontal\" | \"vertical\" | \"both\" | null\n // Cumulative values (line only). Pass null to clear.\n cumulative?: boolean | null\n // Smooth line curves (line only). Pass null to clear.\n smooth_line?: boolean | null\n // Hide area fill (line only). Pass null to clear.\n hide_line_fill_area?: boolean | null\n // Grouped/stacked bar display style. Pass null to clear.\n group_style?: \"normal\" | \"percent\" | \"side_by_side\" | null\n // Custom y-axis minimum. Pass null to clear.\n y_axis_min?: number | null\n // Custom y-axis maximum. Pass null to clear.\n y_axis_max?: number | null\n // Donut slice labels. Pass null to clear.\n donut_labels?: \"none\" | \"value\" | \"name\" | \"name_and_value\" | null\n // Hide title (number only). Pass null to clear.\n hide_title?: boolean | null\n // Stack-by grouping for stacked/grouped bar charts. Pass null to clear.\n stack_by?: GroupByConfigRequest | null\n // Reference lines on the chart. Pass null to clear.\n reference_lines?: Array<ChartReferenceLineRequest> | null\n // Chart caption text. Pass null to clear.\n caption?: string | null\n // Whether to color chart elements by their numeric value (gradient coloring). Pass null\n // to clear.\n color_by_value?: boolean | null\n}\n\ntype CheckboxGroupByConfigRequest = {\n // The property type for grouping.\n type: \"checkbox\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype CheckboxPropertyConfigurationRequest = {\n // Always `checkbox`\n type?: \"checkbox\"\n checkbox: EmptyObject\n}\n\ntype CheckboxPropertyFilter = { equals: boolean } | { does_not_equal: boolean }\n\nexport type ContentPositionSchema =\n | { type: \"after_block\"; after_block: { id: IdRequest } }\n | { type: \"start\" }\n | { type: \"end\" }\n\nexport type ContentWithRichTextColorAndIconUpdateRequest = {\n rich_text?: Array<RichTextItemRequest>\n icon?: PageIconRequest\n color?: ApiColor\n}\n\ntype CoverConfigRequest = {\n // Source of the cover image.\n type: \"page_cover\" | \"page_content\" | \"property\"\n // Property ID when type is \"property\".\n property_id?: string\n}\n\ntype CreateDatabaseForViewRequest = {\n // The parent page for the new linked database block.\n parent: {\n // The parent type. Must be \"page_id\".\n type: \"page_id\"\n // The ID of the page to create the database on.\n page_id: IdRequest\n }\n // Where to place the new database block within the parent page. Defaults to appending at\n // the end.\n position?: {\n // Position type. \"after_block\" places the new database after the specified block in the\n // page.\n type: \"after_block\"\n // The ID of an existing block in the page. The new database will be placed after this\n // block.\n block_id: IdRequest\n }\n}\n\nexport type CreateViewQueryRequest = {\n // The number of results to return per page. Maximum: 100\n page_size?: number\n}\n\nexport type CreateViewRequest = {\n // The ID of the data source this view should be scoped to.\n data_source_id: IdRequest\n // The name of the view.\n name: string\n // The type of view to create.\n type: ViewTypeRequest\n // The ID of the database to create a view in. Mutually exclusive with view_id and\n // create_database.\n database_id?: IdRequest\n // The ID of a dashboard view to add this view to as a widget. Mutually exclusive with\n // database_id and create_database.\n view_id?: IdRequest\n // Filter to apply to the view. Uses the same format as the data source query filter.\n filter?: ViewFilterRequest\n // Sorts to apply to the view. Uses the same format as the data source query sorts.\n sorts?: ViewSortsRequest\n // Quick filters to pin in the view's filter bar. Keys are property names or IDs. Values\n // are filter conditions (same shape as a property filter but without the property\n // field). Each quick filter appears as a clickable pill above the view, independent of\n // the advanced filter.\n quick_filters?: Record<string, QuickFilterConditionRequest>\n // Create a new linked database block on a page and add the view to it. Mutually\n // exclusive with database_id and view_id.\n create_database?: CreateDatabaseForViewRequest\n // View presentation configuration. The type field must match the view type.\n configuration?: ViewConfigRequest\n // Where to place the new view in the database's view tab bar. Only applicable when\n // database_id is provided. Defaults to \"end\" (append).\n position?: ViewPositionRequest\n // Where to place the new widget in a dashboard view. Only applicable when view_id is\n // provided. Defaults to creating a new row at the end.\n placement?: WidgetPlacementRequest\n}\n\ntype CreatedByPropertyConfigurationRequest = {\n // Always `created_by`\n type?: \"created_by\"\n created_by: EmptyObject\n}\n\ntype CreatedTimePropertyConfigurationRequest = {\n // Always `created_time`\n type?: \"created_time\"\n created_time: EmptyObject\n}\n\ntype CustomEmojiPageIconResponse = {\n // Type of icon. In this case, a custom emoji.\n type: \"custom_emoji\"\n // The custom emoji details for the icon.\n custom_emoji: CustomEmojiResponse\n}\n\nexport type CustomEmojiResponse = {\n // The ID of the custom emoji.\n id: IdResponse\n // The name of the custom emoji.\n name: string\n // The URL of the custom emoji.\n url: string\n}\n\nexport type DataSourceParentResponse = {\n // The parent type.\n type: \"data_source_id\"\n // The ID of the parent data source.\n data_source_id: IdResponse\n // The ID of the data source's parent database.\n database_id: IdResponse\n}\n\nexport type DataSourceViewReferenceResponse = {\n // The object type name.\n object: \"view\"\n // The ID of the view.\n id: IdResponse\n}\n\nexport type DatabaseParentResponse = {\n // The parent type.\n type: \"database_id\"\n // The ID of the parent database.\n database_id: IdResponse\n}\n\ntype DateGroupByConfigRequest = {\n // The property type for grouping.\n type: \"date\" | \"created_time\" | \"last_edited_time\"\n // Property ID to group by.\n property_id: string\n // Granularity for date grouping.\n group_by: \"relative\" | \"day\" | \"week\" | \"month\" | \"year\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n // Start day of week for week grouping (0 = Sunday, 1 = Monday).\n start_day_of_week?: 0 | 1\n}\n\ntype DateOrRelativeDate = string | RelativeDateValue\n\ntype DatePropertyConfigurationRequest = {\n // Always `date`\n type?: \"date\"\n date: EmptyObject\n}\n\ntype DatePropertyFilter =\n | { equals: DateOrRelativeDate }\n | { before: DateOrRelativeDate }\n | { after: DateOrRelativeDate }\n | { on_or_before: DateOrRelativeDate }\n | { on_or_after: DateOrRelativeDate }\n | { this_week: EmptyObject }\n | { past_week: EmptyObject }\n | { past_month: EmptyObject }\n | { past_year: EmptyObject }\n | { next_week: EmptyObject }\n | { next_month: EmptyObject }\n | { next_year: EmptyObject }\n | ExistencePropertyFilter\n\nexport type DateResponse = {\n // The start date of the date object.\n start: string\n // The end date of the date object, if any.\n end: string | null\n // The time zone of the date object.\n time_zone: TimeZoneRequest | null\n}\n\ntype EmailPropertyConfigurationRequest = {\n // Always `email`\n type?: \"email\"\n email: EmptyObject\n}\n\ntype EmojiPageIconResponse = {\n // Type of icon. In this case, an emoji.\n type: \"emoji\"\n // The emoji character used as the icon.\n emoji: EmojiRequest\n}\n\ntype EmojiRequest = string\n\nexport type EmptyObject = Record<string, never>\n\nexport type EquationRichTextItemResponse = {\n // Always `equation`\n type: \"equation\"\n // Notion supports inline LaTeX equations as rich text objects with a type value of\n // `equation`.\n equation: {\n // A KaTeX compatible string.\n expression: string\n }\n}\n\ntype ExistencePropertyFilter = { is_empty: true } | { is_not_empty: true }\n\ntype ExternalPageCoverRequest = {\n // Always `external`\n type?: \"external\"\n // External URL for the cover.\n external: {\n // The URL of the external file.\n url: string\n }\n}\n\ntype ExternalPageCoverResponse = {\n // Type of cover. In this case, an external URL.\n type: \"external\"\n // The external URL for the cover.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\ntype ExternalPageIconResponse = {\n // Type of icon. In this case, an external URL.\n type: \"external\"\n // The external URL for the icon.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\ntype FilePageCoverResponse = {\n // Type of cover. In this case, a file.\n type: \"file\"\n // The file URL for the cover.\n file: InternalFileResponse\n}\n\ntype FilePageIconResponse = {\n // Type of icon. In this case, a file.\n type: \"file\"\n // The file URL for the icon.\n file: InternalFileResponse\n}\n\ntype FileUploadPageCoverRequest = {\n // Always `file_upload`\n type?: \"file_upload\"\n // The file upload for the cover.\n file_upload: {\n // ID of a FileUpload object that has the status `uploaded`.\n id: string\n }\n}\n\nexport type FileUploadWithOptionalNameRequest = {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n name?: StringRequest\n}\n\ntype FilesPropertyConfigurationRequest = {\n // Always `files`\n type?: \"files\"\n files: EmptyObject\n}\n\ntype FormViewConfigRequest = {\n // The view type. Must be \"form\".\n type: \"form\"\n // Whether the form is closed for submissions. Pass null to clear.\n is_form_closed?: boolean | null\n // Whether anonymous (non-logged-in) submissions are allowed. Pass null to clear.\n anonymous_submissions?: boolean | null\n // Permission level granted to the submitter on the created page after form submission.\n // Pass null to clear.\n submission_permissions?:\n | \"none\"\n | \"comment_only\"\n | \"reader\"\n | \"read_and_write\"\n | \"editor\"\n | null\n}\n\ntype FormulaCheckboxSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"checkbox\"\n // Sort order for groups.\n sort: GroupSortRequest\n}\n\ntype FormulaDateSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"date\"\n // Granularity for date grouping.\n group_by: \"relative\" | \"day\" | \"week\" | \"month\" | \"year\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Start day of week for week grouping (0 = Sunday, 1 = Monday).\n start_day_of_week?: 0 | 1\n}\n\ntype FormulaGroupByConfigRequest = {\n // The property type for grouping.\n type: \"formula\"\n // Property ID of the formula to group by.\n property_id: string\n // Sub-group-by configuration based on the formula result type.\n group_by:\n | FormulaDateSubGroupByRequest\n | FormulaTextSubGroupByRequest\n | FormulaNumberSubGroupByRequest\n | FormulaCheckboxSubGroupByRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype FormulaNumberSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"number\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Start of the range for number grouping buckets.\n range_start?: number\n // End of the range for number grouping buckets.\n range_end?: number\n // Size of each bucket in number grouping.\n range_size?: number\n}\n\ntype FormulaPropertyConfigurationRequest = {\n // Always `formula`\n type?: \"formula\"\n formula: { expression?: string }\n}\n\ntype FormulaPropertyFilter =\n | { string: TextPropertyFilter }\n | { checkbox: CheckboxPropertyFilter }\n | { number: NumberPropertyFilter }\n | { date: DatePropertyFilter }\n\ntype FormulaTextSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"text\"\n // How to group text values. \"exact\" = exact match, \"alphabet_prefix\" = first letter.\n group_by: \"exact\" | \"alphabet_prefix\"\n // Sort order for groups.\n sort: GroupSortRequest\n}\n\ntype GalleryViewConfigRequest = {\n // The view type. Must be \"gallery\".\n type: \"gallery\"\n // Property visibility and display configuration on gallery cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Cover image configuration for cards. Pass null to clear.\n cover?: CoverConfigRequest | null\n // Size of the cover image on cards. Pass null to clear.\n cover_size?: \"small\" | \"medium\" | \"large\" | null\n // Aspect ratio mode for cover images. \"contain\" fits the image, \"cover\" fills the area.\n // Pass null to clear.\n cover_aspect?: \"contain\" | \"cover\" | null\n // Card layout mode. \"list\" shows full cards, \"compact\" shows condensed cards. Pass null\n // to clear.\n card_layout?: \"list\" | \"compact\" | null\n}\n\n/**\n * Group-by configuration based on property type.\n */\ntype GroupByConfigRequest =\n | SelectGroupByConfigRequest\n | StatusGroupByConfigRequest\n | PersonGroupByConfigRequest\n | RelationGroupByConfigRequest\n | DateGroupByConfigRequest\n | TextGroupByConfigRequest\n | NumberGroupByConfigRequest\n | CheckboxGroupByConfigRequest\n | FormulaGroupByConfigRequest\n\nexport type GroupFilterOperatorArray = Array<\n | PropertyOrTimestampFilter\n | { or: PropertyOrTimestampFilterArray }\n | { and: PropertyOrTimestampFilterArray }\n>\n\nexport type GroupObjectRequest = {\n id: IdRequest\n name?: string | null\n object?: \"group\"\n}\n\nexport type GroupObjectResponse = {\n // The ID of the group.\n id: IdResponse\n // The group object type name.\n object: \"group\"\n // The name of the group.\n name: string | null\n}\n\ntype GroupSortRequest = {\n // Sort direction for groups.\n type: \"manual\" | \"ascending\" | \"descending\"\n}\n\ntype IconPageIconResponse = {\n // Type of icon. In this case, a Notion native icon.\n type: \"icon\"\n // The Notion native icon, specified by name and color.\n icon: NoticonIconResponse\n}\n\nexport type IdRequest = string\n\nexport type IdResponse = string\n\nexport type InitialDataSourceRequest = {\n // Property schema for the initial data source, if you'd like to create one.\n properties?: Record<string, PropertyConfigurationRequest>\n}\n\ntype InternalFileRequest = { url: string; expiry_time?: string }\n\nexport type InternalFileResponse = {\n // The URL of the file.\n url: string\n // The time when the URL will expire.\n expiry_time: string\n}\n\nexport type InternalOrExternalFileWithNameRequest =\n | { file: InternalFileRequest; name: StringRequest; type?: \"file\" }\n | { external: ExternalFileRequest; name: StringRequest; type?: \"external\" }\n\ntype LastEditedByPropertyConfigurationRequest = {\n // Always `last_edited_by`\n type?: \"last_edited_by\"\n last_edited_by: EmptyObject\n}\n\ntype LastEditedTimePropertyConfigurationRequest = {\n // Always `last_edited_time`\n type?: \"last_edited_time\"\n last_edited_time: EmptyObject\n}\n\ntype LastVisitedTimePropertyConfigurationRequest = {\n // Always `last_visited_time`\n type?: \"last_visited_time\"\n last_visited_time: EmptyObject\n}\n\ntype LinkMentionResponse = {\n // The href of the link mention.\n href: string\n // The title of the link.\n title?: string\n // The description of the link.\n description?: string\n // The author of the link.\n link_author?: string\n // The provider of the link.\n link_provider?: string\n // The thumbnail URL of the link.\n thumbnail_url?: string\n // The icon URL of the link.\n icon_url?: string\n // The iframe URL of the link.\n iframe_url?: string\n // The height of the link preview iframe.\n height?: number\n // The padding of the link preview iframe.\n padding?: number\n // The top padding of the link preview iframe.\n padding_top?: number\n}\n\ntype LinkPreviewMentionResponse = {\n // The URL of the link preview mention.\n url: string\n}\n\ntype ListViewConfigRequest = {\n // The view type. Must be \"list\".\n type: \"list\"\n // Property visibility and display configuration. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n}\n\ntype LocationPropertyConfigurationRequest = {\n // Always `location`\n type?: \"location\"\n location: EmptyObject\n}\n\ntype MapViewConfigRequest = {\n // The view type. Must be \"map\".\n type: \"map\"\n // Map display height. Pass null to clear.\n height?: \"small\" | \"medium\" | \"large\" | \"extra_large\" | null\n // Property ID of the location property used to position items on the map. Pass null to\n // clear.\n map_by?: string | null\n // Property visibility and display configuration on map pin cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n}\n\nexport type MentionRichTextItemResponse = {\n // Always `mention`\n type: \"mention\"\n // Mention objects represent an inline mention of a database, date, link preview mention,\n // page, template mention, or user. A mention is created in the Notion UI when a user\n // types `@` followed by the name of the reference.\n mention:\n | {\n // Always `user`\n type: \"user\"\n // Details of the user mention.\n user: UserValueResponse\n }\n | {\n // Always `date`\n type: \"date\"\n // Details of the date mention.\n date: DateResponse\n }\n | {\n // Always `link_preview`\n type: \"link_preview\"\n // Details of the link preview mention.\n link_preview: LinkPreviewMentionResponse\n }\n | {\n // Always `link_mention`\n type: \"link_mention\"\n // Details of the link mention.\n link_mention: LinkMentionResponse\n }\n | {\n // Always `page`\n type: \"page\"\n // Details of the page mention.\n page: {\n // The ID of the page in the mention.\n id: IdResponse\n }\n }\n | {\n // Always `database`\n type: \"database\"\n // Details of the database mention.\n database: {\n // The ID of the database in the mention.\n id: IdResponse\n }\n }\n | {\n // Always `template_mention`\n type: \"template_mention\"\n // Details of the template mention.\n template_mention: TemplateMentionResponse\n }\n | {\n // Always `custom_emoji`\n type: \"custom_emoji\"\n // Details of the custom emoji mention.\n custom_emoji: CustomEmojiResponse\n }\n}\n\ntype MultiSelectPropertyConfigurationRequest = {\n // Always `multi_select`\n type?: \"multi_select\"\n multi_select: {\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n }\n}\n\ntype MultiSelectPropertyFilter =\n | { contains: string }\n | { does_not_contain: string }\n | ExistencePropertyFilter\n\n/**\n * One of: `gray`, `lightgray`, `brown`, `yellow`, `orange`, `green`, `blue`, `purple`,\n * `pink`, `red`\n */\ntype NoticonColor =\n | \"gray\"\n | \"lightgray\"\n | \"brown\"\n | \"yellow\"\n | \"orange\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n\ntype NoticonIconResponse = {\n // The name of the Notion icon (e.g. pizza, meeting, home). See the Notion icon picker\n // for valid names.\n name: NoticonName\n // The color variant of the icon. Valid values: gray, lightgray, brown, yellow, orange,\n // green, blue, purple, pink, red.\n color: NoticonColor\n}\n\ntype NoticonName = string\n\ntype NumberGroupByConfigRequest = {\n // The property type for grouping.\n type: \"number\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n // Start of the range for number grouping buckets.\n range_start?: number\n // End of the range for number grouping buckets.\n range_end?: number\n // Size of each bucket in number grouping.\n range_size?: number\n}\n\ntype NumberPropertyConfigurationRequest = {\n // Always `number`\n type?: \"number\"\n number: { format?: NumberFormat }\n}\n\ntype NumberPropertyFilter =\n | { equals: number }\n | { does_not_equal: number }\n | { greater_than: number }\n | { less_than: number }\n | { greater_than_or_equal_to: number }\n | { less_than_or_equal_to: number }\n | ExistencePropertyFilter\n\nexport type PageCoverRequest =\n | FileUploadPageCoverRequest\n | ExternalPageCoverRequest\n\nexport type PageCoverResponse =\n | FilePageCoverResponse\n | ExternalPageCoverResponse\n\nexport type PageIconResponse =\n | EmojiPageIconResponse\n | FilePageIconResponse\n | ExternalPageIconResponse\n | CustomEmojiPageIconResponse\n | IconPageIconResponse\n\ntype PageIdParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"page_id\"\n // The ID of the parent page.\n page_id: IdResponse\n}\n\nexport type PageMarkdownResponse = {\n // The type of object, always 'page_markdown'.\n object: \"page_markdown\"\n // The ID of the page or block.\n id: IdResponse\n // The page content rendered as enhanced Markdown.\n markdown: string\n // Whether the content was truncated due to exceeding the record count limit.\n truncated: boolean\n // Block IDs that could not be loaded (appeared as <unknown> tags in the markdown). Pass\n // these IDs back to this endpoint to fetch their content separately.\n unknown_block_ids: Array<IdResponse>\n}\n\nexport type PagePositionSchema =\n | { type: \"after_block\"; after_block: { id: IdRequest } }\n | { type: \"page_start\" }\n | { type: \"page_end\" }\n\nexport type ParentForBlockBasedObjectResponse =\n | DatabaseParentResponse\n | DataSourceParentResponse\n | PageIdParentForBlockBasedObjectResponse\n | BlockIdParentForBlockBasedObjectResponse\n | WorkspaceParentForBlockBasedObjectResponse\n\nexport type ParentOfDataSourceRequest = {\n // Always `database_id`\n type?: \"database_id\"\n // The ID of the parent database (with or without dashes), for example,\n // 195de9221179449fab8075a27c979105\n database_id: IdRequest\n}\n\nexport type ParentOfDatabaseResponse =\n | PageIdParentForBlockBasedObjectResponse\n | WorkspaceParentForBlockBasedObjectResponse\n | DatabaseParentResponse\n | BlockIdParentForBlockBasedObjectResponse\n\nexport type PartialUserObjectResponse = {\n id: IdResponse\n // Always `user`\n object: \"user\"\n}\n\ntype PeoplePropertyConfigurationRequest = {\n // Always `people`\n type?: \"people\"\n people: EmptyObject\n}\n\ntype PeoplePropertyFilter =\n | { contains: PersonIdOrMe }\n | { does_not_contain: PersonIdOrMe }\n | ExistencePropertyFilter\n\ntype PersonGroupByConfigRequest = {\n // The property type for grouping.\n type: \"person\" | \"created_by\" | \"last_edited_by\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype PersonIdOrMe = IdRequest | \"me\"\n\nexport type PersonUserObjectResponse = {\n // Indicates this user is a person.\n type: \"person\"\n // Details about the person, when the `type` of the user is `person`.\n person: {\n // The email of the person.\n email?: string\n }\n}\n\ntype PhoneNumberPropertyConfigurationRequest = {\n // Always `phone_number`\n type?: \"phone_number\"\n phone_number: EmptyObject\n}\n\ntype PlacePropertyConfigurationRequest = {\n // Always `place`\n type?: \"place\"\n place: EmptyObject\n}\n\nexport type PropertyConfigurationRequest = PropertyConfigurationRequestCommon &\n (\n | NumberPropertyConfigurationRequest\n | FormulaPropertyConfigurationRequest\n | SelectPropertyConfigurationRequest\n | MultiSelectPropertyConfigurationRequest\n | StatusPropertyConfigurationRequest\n | RelationPropertyConfigurationRequest\n | RollupPropertyConfigurationRequest\n | UniqueIdPropertyConfigurationRequest\n | TitlePropertyConfigurationRequest\n | RichTextPropertyConfigurationRequest\n | UrlPropertyConfigurationRequest\n | PeoplePropertyConfigurationRequest\n | FilesPropertyConfigurationRequest\n | EmailPropertyConfigurationRequest\n | PhoneNumberPropertyConfigurationRequest\n | DatePropertyConfigurationRequest\n | CheckboxPropertyConfigurationRequest\n | CreatedByPropertyConfigurationRequest\n | CreatedTimePropertyConfigurationRequest\n | LastEditedByPropertyConfigurationRequest\n | LastEditedTimePropertyConfigurationRequest\n | ButtonPropertyConfigurationRequest\n | LocationPropertyConfigurationRequest\n | VerificationPropertyConfigurationRequest\n | LastVisitedTimePropertyConfigurationRequest\n | PlacePropertyConfigurationRequest\n )\n\ntype PropertyConfigurationRequestCommon = {\n // The description of the property.\n description?: PropertyDescriptionRequest | null\n}\n\nexport type PropertyFilter =\n | { title: TextPropertyFilter; property: string; type?: \"title\" }\n | { rich_text: TextPropertyFilter; property: string; type?: \"rich_text\" }\n | { number: NumberPropertyFilter; property: string; type?: \"number\" }\n | { checkbox: CheckboxPropertyFilter; property: string; type?: \"checkbox\" }\n | { select: SelectPropertyFilter; property: string; type?: \"select\" }\n | {\n multi_select: MultiSelectPropertyFilter\n property: string\n type?: \"multi_select\"\n }\n | { status: StatusPropertyFilter; property: string; type?: \"status\" }\n | { date: DatePropertyFilter; property: string; type?: \"date\" }\n | { people: PeoplePropertyFilter; property: string; type?: \"people\" }\n | { files: ExistencePropertyFilter; property: string; type?: \"files\" }\n | { url: TextPropertyFilter; property: string; type?: \"url\" }\n | { email: TextPropertyFilter; property: string; type?: \"email\" }\n | {\n phone_number: TextPropertyFilter\n property: string\n type?: \"phone_number\"\n }\n | { relation: RelationPropertyFilter; property: string; type?: \"relation\" }\n | { created_by: PeoplePropertyFilter; property: string; type?: \"created_by\" }\n | {\n created_time: DatePropertyFilter\n property: string\n type?: \"created_time\"\n }\n | {\n last_edited_by: PeoplePropertyFilter\n property: string\n type?: \"last_edited_by\"\n }\n | {\n last_edited_time: DatePropertyFilter\n property: string\n type?: \"last_edited_time\"\n }\n | { formula: FormulaPropertyFilter; property: string; type?: \"formula\" }\n | { unique_id: NumberPropertyFilter; property: string; type?: \"unique_id\" }\n | { rollup: RollupPropertyFilter; property: string; type?: \"rollup\" }\n | {\n verification: VerificationPropertyStatusFilter\n property: string\n type?: \"verification\"\n }\n\ntype PropertyOrTimestampFilter = PropertyFilter | TimestampFilter\n\ntype PropertyOrTimestampFilterArray = Array<PropertyOrTimestampFilter>\n\n/**\n * A property filter condition. Same shape as a property filter but without the\n * \"property\" field (the hashmap key identifies the property). For example: { \"select\": {\n * \"equals\": \"High\" } }.\n */\ntype QuickFilterConditionRequest = Record<string, never>\n\ntype RelationGroupByConfigRequest = {\n // The property type for grouping.\n type: \"relation\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype RelationPropertyConfigurationRequest = {\n // Always `relation`\n type?: \"relation\"\n relation: { data_source_id: IdRequest } & (\n | {\n // Always `single_property`\n type?: \"single_property\"\n single_property: EmptyObject\n }\n | {\n // Always `dual_property`\n type?: \"dual_property\"\n dual_property: {\n synced_property_id?: string\n synced_property_name?: string\n }\n }\n )\n}\n\ntype RelationPropertyFilter =\n | { contains: IdRequest }\n | { does_not_contain: IdRequest }\n | ExistencePropertyFilter\n\ntype RelativeDateValue =\n | \"today\"\n | \"tomorrow\"\n | \"yesterday\"\n | \"one_week_ago\"\n | \"one_week_from_now\"\n | \"one_month_ago\"\n | \"one_month_from_now\"\n\nexport type RichTextItemResponse = RichTextItemResponseCommon &\n (\n | TextRichTextItemResponse\n | MentionRichTextItemResponse\n | EquationRichTextItemResponse\n )\n\nexport type RichTextItemResponseCommon = {\n // The plain text content of the rich text object, without any styling.\n plain_text: string\n // A URL that the rich text object links to or mentions.\n href: string | null\n // All rich text objects contain an annotations object that sets the styling for the rich\n // text.\n annotations: AnnotationResponse\n}\n\ntype RichTextPropertyConfigurationRequest = {\n // Always `rich_text`\n type?: \"rich_text\"\n rich_text: EmptyObject\n}\n\nexport type RollupFunction =\n | \"count\"\n | \"count_values\"\n | \"empty\"\n | \"not_empty\"\n | \"unique\"\n | \"show_unique\"\n | \"percent_empty\"\n | \"percent_not_empty\"\n | \"sum\"\n | \"average\"\n | \"median\"\n | \"min\"\n | \"max\"\n | \"range\"\n | \"earliest_date\"\n | \"latest_date\"\n | \"date_range\"\n | \"checked\"\n | \"unchecked\"\n | \"percent_checked\"\n | \"percent_unchecked\"\n | \"count_per_group\"\n | \"percent_per_group\"\n | \"show_original\"\n\ntype RollupPropertyConfigurationRequest = {\n // Always `rollup`\n type?: \"rollup\"\n rollup: {\n // The function to use for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n } & (\n | { relation_property_name: string; rollup_property_name: string }\n | { relation_property_id: string; rollup_property_name: string }\n | { relation_property_name: string; rollup_property_id: string }\n | { relation_property_id: string; rollup_property_id: string }\n )\n}\n\ntype RollupPropertyFilter =\n | { any: RollupSubfilterPropertyFilter }\n | { none: RollupSubfilterPropertyFilter }\n | { every: RollupSubfilterPropertyFilter }\n | { date: DatePropertyFilter }\n | { number: NumberPropertyFilter }\n\ntype RollupSubfilterPropertyFilter =\n | { rich_text: TextPropertyFilter }\n | { number: NumberPropertyFilter }\n | { checkbox: CheckboxPropertyFilter }\n | { select: SelectPropertyFilter }\n | { multi_select: MultiSelectPropertyFilter }\n | { relation: RelationPropertyFilter }\n | { date: DatePropertyFilter }\n | { people: PeoplePropertyFilter }\n | { files: ExistencePropertyFilter }\n | { status: StatusPropertyFilter }\n\n/**\n * One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n * `pink`, `red`\n */\nexport type SelectColor =\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n\ntype SelectGroupByConfigRequest = {\n // The property type for grouping.\n type: \"select\" | \"multi_select\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype SelectPropertyConfigurationRequest = {\n // Always `select`\n type?: \"select\"\n select: {\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n }\n}\n\ntype SelectPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | ExistencePropertyFilter\n\n/**\n * One of: `ascending`, `descending`\n */\ntype SortDirectionRequest = \"ascending\" | \"descending\"\n\ntype StatusGroupByConfigRequest = {\n // The property type for grouping.\n type: \"status\"\n // Property ID to group by.\n property_id: string\n // How to group status values. \"group\" groups by status group (To Do/In Progress/Done),\n // \"option\" groups by individual option.\n group_by: \"group\" | \"option\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype StatusPropertyConfigRequest = {\n // The initial status options. If not provided, defaults are created.\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n}\n\nexport type StatusPropertyConfigUpdateRequest = {\n // Status options to add or update. New options are assigned to the To-do group.\n options?: Array<\n { color?: SelectColor; description?: string | null } & (\n | { name: string; id?: string }\n | { id: string; name?: string }\n )\n >\n}\n\ntype StatusPropertyConfigurationRequest = {\n // Always `status`\n type?: \"status\"\n status: StatusPropertyConfigRequest\n}\n\ntype StatusPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | ExistencePropertyFilter\n\ntype SubtaskConfigRequest = {\n // Relation property ID used for parent-child nesting.\n property_id?: string\n // How sub-items are displayed. \"show\" renders hierarchically with toggles, \"hidden\"\n // shows parents with a count, \"flattened\" shows sub-items with a parent indicator,\n // \"disabled\" turns off sub-item rendering.\n display_mode?: \"show\" | \"hidden\" | \"flattened\" | \"disabled\"\n // Which items are included when filtering. \"parents\" includes parent items only,\n // \"parents_and_subitems\" includes both, \"subitems\" includes sub-items only.\n filter_scope?: \"parents\" | \"parents_and_subitems\" | \"subitems\"\n // Property ID of the column showing the sub-item expand/collapse toggle.\n toggle_column_id?: string\n}\n\ntype TableViewConfigRequest = {\n // The view type. Must be \"table\".\n type: \"table\"\n // Property visibility and display configuration. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Group-by configuration for the table. Pass null to remove grouping.\n group_by?: GroupByConfigRequest | null\n // Subtask (sub-item) configuration. Pass null to reset subtask config to defaults (which\n // may show subtasks). Use `{ \"display_mode\": \"disabled\" }` to explicitly disable\n // subtasks.\n subtasks?: SubtaskConfigRequest | null\n // Whether to wrap cell content in the table.\n wrap_cells?: boolean\n // Number of columns frozen from the left side of the table.\n frozen_column_index?: number\n // Whether to show vertical grid lines between columns.\n show_vertical_lines?: boolean\n}\n\ntype TemplateMentionDateTemplateMentionResponse = {\n // Always `template_mention_date`\n type: \"template_mention_date\"\n // The date of the template mention.\n template_mention_date: \"today\" | \"now\"\n}\n\ntype TemplateMentionResponse =\n | TemplateMentionDateTemplateMentionResponse\n | TemplateMentionUserTemplateMentionResponse\n\ntype TemplateMentionUserTemplateMentionResponse = {\n // Always `template_mention_user`\n type: \"template_mention_user\"\n // The user of the template mention.\n template_mention_user: \"me\"\n}\n\n/**\n * IANA timezone to use when resolving template variables like @now and @today (e.g.\n * 'America/New_York'). Defaults to the authorizing user's timezone for public\n * integrations, or UTC for internal integrations.\n */\nexport type TemplateTimezone = string\n\ntype TextGroupByConfigRequest = {\n // The property type for grouping.\n type: \"text\" | \"title\" | \"url\" | \"email\" | \"phone_number\"\n // Property ID to group by.\n property_id: string\n // How to group text values. \"exact\" = exact match, \"alphabet_prefix\" = first letter.\n group_by: \"exact\" | \"alphabet_prefix\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype TextPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | { contains: string }\n | { does_not_contain: string }\n | { starts_with: string }\n | { ends_with: string }\n | ExistencePropertyFilter\n\nexport type TextRichTextItemResponse = {\n // Always `text`\n type: \"text\"\n // If a rich text object's type value is `text`, then the corresponding text field\n // contains an object including the text content and any inline link.\n text: {\n // The actual text content of the text.\n content: string\n // An object with information about any inline link in this text, if included.\n link: {\n // The URL of the link.\n url: string\n } | null\n }\n}\n\ntype TimeZoneRequest = string\n\ntype TimelineArrowsByRequest = {\n // Relation property ID used for dependency arrows, or null to disable arrows.\n property_id?: string | null\n}\n\ntype TimelinePreferenceRequest = {\n // Zoom level for the timeline.\n zoom_level:\n | \"hours\"\n | \"day\"\n | \"week\"\n | \"bi_week\"\n | \"month\"\n | \"quarter\"\n | \"year\"\n | \"5_years\"\n // Timestamp (ms) to center the timeline view on.\n center_timestamp?: number\n}\n\ntype TimelineViewConfigRequest = {\n // The view type. Must be \"timeline\".\n type: \"timeline\"\n // Property ID of the date property used for the start of timeline items.\n date_property_id: string\n // Property ID of the date property used for the end of timeline items. Pass null to\n // clear.\n end_date_property_id?: string | null\n // Property visibility and display configuration on timeline items. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Whether to show the table panel alongside the timeline. Pass null to clear.\n show_table?: boolean | null\n // Property configuration for the table panel (when show_table is true). Pass null to\n // clear.\n table_properties?: Array<ViewPropertyConfigRequest> | null\n // Timeline display preferences (zoom level and center position). Pass null to clear.\n preference?: TimelinePreferenceRequest | null\n // Configuration for dependency arrows between timeline items. Pass null to clear.\n arrows_by?: TimelineArrowsByRequest | null\n // Whether to color timeline items by a property. Pass null to clear.\n color_by?: boolean | null\n}\n\ntype TimestampCreatedTimeFilter = {\n created_time: DatePropertyFilter\n timestamp: \"created_time\"\n type?: \"created_time\"\n}\n\nexport type TimestampFilter =\n | TimestampCreatedTimeFilter\n | TimestampLastEditedTimeFilter\n\ntype TimestampLastEditedTimeFilter = {\n last_edited_time: DatePropertyFilter\n timestamp: \"last_edited_time\"\n type?: \"last_edited_time\"\n}\n\ntype TitlePropertyConfigurationRequest = {\n // Always `title`\n type?: \"title\"\n title: EmptyObject\n}\n\ntype UniqueIdPropertyConfigurationRequest = {\n // Always `unique_id`\n type?: \"unique_id\"\n unique_id: { prefix?: string | null }\n}\n\nexport type UpdateMediaContentWithFileAndCaptionRequest = {\n caption?: Array<RichTextItemRequest>\n external?: ExternalFileRequest\n file_upload?: FileUploadIdRequest\n}\n\nexport type UpdateMediaContentWithFileNameAndCaptionRequest = {\n caption?: Array<RichTextItemRequest>\n external?: ExternalFileRequest\n file_upload?: FileUploadIdRequest\n name?: StringRequest\n}\n\nexport type UpdateMediaContentWithUrlAndCaptionRequest = {\n url?: string\n caption?: Array<RichTextItemRequest>\n}\n\nexport type UpdateViewRequest = {\n // New name for the view.\n name?: string\n // Filter to apply to the view. Uses the same format as the data source query filter.\n // Pass null to clear the filter.\n filter?: ViewFilterRequest | null\n // Property sorts to apply to the view. Only property-based sorts are supported. Pass\n // null to clear the sorts.\n sorts?: ViewPropertySortsRequest | null\n // Quick filters for the view's filter bar. Keys are property names or IDs. Set a key to\n // a filter condition to add/update that quick filter. Set a key to null to remove it.\n // Pass null for the entire field to clear all quick filters. Unmentioned quick filters\n // are preserved.\n quick_filters?: Record<string, QuickFilterConditionRequest | null> | null\n // View presentation configuration. The type field must match the view type. Individual\n // nullable fields within the configuration can be set to null to clear them.\n configuration?: ViewConfigRequest\n}\n\ntype UrlPropertyConfigurationRequest = {\n // Always `url`\n type?: \"url\"\n url: EmptyObject\n}\n\nexport type UserObjectResponse = UserObjectResponseCommon &\n (PersonUserObjectResponse | BotUserObjectResponse)\n\nexport type UserObjectResponseCommon = {\n // The ID of the user.\n id: IdResponse\n // The user object type name.\n object: \"user\"\n // The name of the user.\n name: string | null\n // The avatar URL of the user.\n avatar_url: string | null\n}\n\ntype UserValueResponse = PartialUserObjectResponse | UserObjectResponse\n\ntype VerificationPropertyConfigurationRequest = {\n // Always `verification`\n type?: \"verification\"\n verification: EmptyObject\n}\n\ntype VerificationPropertyStatusFilter = {\n status: \"verified\" | \"expired\" | \"none\"\n}\n\n/**\n * View configuration, discriminated by the type field.\n */\ntype ViewConfigRequest =\n | TableViewConfigRequest\n | BoardViewConfigRequest\n | CalendarViewConfigRequest\n | TimelineViewConfigRequest\n | GalleryViewConfigRequest\n | ListViewConfigRequest\n | MapViewConfigRequest\n | FormViewConfigRequest\n | ChartViewConfigRequest\n\n/**\n * Filter for the view. Uses the same format as the data source query filter (property\n * filters, timestamp filters, or compound and/or filters). Simple property filters appear\n * in the view's filter bar in the Notion UI. To filter by multiple values on a select or\n * status property, use a compound \"or\" filter with separate \"equals\" conditions for each\n * value.\n */\ntype ViewFilterRequest = Record<string, never>\n\n/**\n * Position of the new view in the database's view tab bar.\n */\ntype ViewPositionRequest =\n | {\n // Position type. \"start\" places the view as the first tab.\n type: \"start\"\n }\n | {\n // Position type. \"end\" places the view as the last tab.\n type: \"end\"\n }\n | {\n // Position type. \"after_view\" places the new view immediately after the specified view.\n type: \"after_view\"\n // The ID of an existing view in the database. The new view will be placed after this\n // view.\n view_id: IdRequest\n }\n\ntype ViewPropertyConfigRequest = {\n // Property ID (stable identifier).\n property_id: string\n // Whether this property is visible in the view.\n visible?: boolean\n // Width of the property column in pixels (table view only).\n width?: number\n // Whether to wrap content in this property cell/card.\n wrap?: boolean\n // How to display status properties (select dropdown or checkbox).\n status_show_as?: \"select\" | \"checkbox\"\n // Property width mode in compact card layouts (board/gallery).\n card_property_width_mode?: \"full_line\" | \"inline\"\n // Date display format (date properties only).\n date_format?:\n | \"full\"\n | \"short\"\n | \"month_day_year\"\n | \"day_month_year\"\n | \"year_month_day\"\n | \"relative\"\n // Time display format (date properties only).\n time_format?: \"12_hour\" | \"24_hour\" | \"hidden\"\n}\n\ntype ViewPropertySortRequest = {\n // Property name or ID to sort by.\n property: string\n // Sort direction.\n direction: SortDirectionRequest\n}\n\ntype ViewPropertySortsRequest = Array<ViewPropertySortRequest>\n\n/**\n * Sort for the view. Can be a property sort (with property and direction) or timestamp\n * sort (with timestamp and direction).\n */\ntype ViewSortRequest = Record<string, never>\n\ntype ViewSortsRequest = Array<ViewSortRequest>\n\n/**\n * One of: `table`, `board`, `list`, `calendar`, `timeline`, `gallery`, `form`, `chart`,\n * `map`, `dashboard`\n */\ntype ViewTypeRequest =\n | \"table\"\n | \"board\"\n | \"list\"\n | \"calendar\"\n | \"timeline\"\n | \"gallery\"\n | \"form\"\n | \"chart\"\n | \"map\"\n | \"dashboard\"\n\n/**\n * Where to place the new widget in the dashboard. \"new_row\" creates a new row,\n * \"existing_row\" adds to an existing row side-by-side with other widgets.\n */\ntype WidgetPlacementRequest =\n | {\n // Placement type. \"new_row\" creates a new row containing the widget.\n type: \"new_row\"\n // The 0-based row position to insert the new row at. If omitted, the new row is appended\n // at the end.\n row_index?: number\n }\n | {\n // Placement type. \"existing_row\" adds the widget to an existing row (side-by-side with\n // other widgets).\n type: \"existing_row\"\n // The 0-based index of the existing row to add the widget to.\n row_index: number\n }\n\ntype WorkspaceParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"workspace\"\n // Always true for workspace parent.\n workspace: true\n}\n\nexport type BlockObjectRequest =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | { tab: TabRequestWithNestedTabItemChildren; type?: \"tab\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n table: TableRequestWithTableRowChildren\n type?: \"table\"\n object?: \"block\"\n }\n | { column_list: ColumnListRequest; type?: \"column_list\"; object?: \"block\" }\n | { column: ColumnWithChildrenRequest; type?: \"column\"; object?: \"block\" }\n | {\n heading_1: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n heading_4: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_4\"\n object?: \"block\"\n }\n | {\n paragraph: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n icon?: PageIconRequest\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n checked?: boolean\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: {\n rich_text: Array<RichTextItemRequest>\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n icon?: PageIconRequest\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\nexport type DateRequest = {\n // The start date of the date object.\n start: string\n // The end date of the date object, if any.\n end?: string | null\n // The time zone of the date object, if any. E.g. America/Los_Angeles, Europe/London,\n // etc.\n time_zone?: TimeZoneRequest | null\n}\n\nexport type PageIconRequest =\n | FileUploadPageIconRequest\n | EmojiPageIconRequest\n | ExternalPageIconRequest\n | CustomEmojiPageIconRequest\n | IconPageIconRequest\n\nexport type PartialUserObjectRequest = {\n // The ID of the user.\n id: IdRequest\n // The user object type name.\n object?: \"user\"\n}\n\nexport type RichTextItemRequest = RichTextItemRequestCommon &\n (\n | TextRichTextItemRequest\n | MentionRichTextItemRequest\n | EquationRichTextItemRequest\n )\n\nexport type StringRequest = string\n\nexport type TextRequest = string\n\nexport type PartialPageObjectResponse = {\n // The page object type name.\n object: \"page\"\n // The ID of the page.\n id: IdResponse\n}\n\nexport type PageObjectResponse = {\n // The page object type name.\n object: \"page\"\n // The ID of the page.\n id: IdResponse\n // Date and time when this page was created.\n created_time: string\n // Date and time when this page was last edited.\n last_edited_time: string\n // Whether the page is in trash.\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n // Whether the page has been archived.\n is_archived: boolean\n // Whether the page is locked from editing in the Notion app UI.\n is_locked: boolean\n // The URL of the Notion page.\n url: string\n // The public URL of the Notion page, if it has been published to the web.\n public_url: string | null\n // Information about the page's parent.\n parent: ParentForBlockBasedObjectResponse\n // Property values of this page.\n properties: Record<string, PagePropertyValueWithIdResponse>\n // Page icon.\n icon: PageIconResponse | null\n // Page cover image.\n cover: PageCoverResponse | null\n // User who created the page.\n created_by: PartialUserObjectResponse\n // User who last edited the page.\n last_edited_by: PartialUserObjectResponse\n}\n\ntype BlockObjectWithSingleLevelOfChildrenRequest =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | { tab: TabRequestWithTabItemChildren; type?: \"tab\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n heading_1: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n heading_4: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_4\"\n object?: \"block\"\n }\n | {\n paragraph: ParagraphWithSingleLevelOfChildrenRequest\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: ContentWithSingleLevelOfChildrenRequest\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: ContentWithSingleLevelOfChildrenRequest\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: ContentWithSingleLevelOfChildrenRequest\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n table: TableRequestWithTableRowChildren\n type?: \"table\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n checked?: boolean\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: ContentWithSingleLevelOfChildrenRequest\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: {\n rich_text: Array<RichTextItemRequest>\n children?: Array<BlockObjectRequestWithoutChildren>\n }\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n icon?: PageIconRequest\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n children?: Array<BlockObjectRequestWithoutChildren>\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\ntype ColumnListRequest = { children: Array<ColumnBlockWithChildrenRequest> }\n\ntype ColumnWithChildrenRequest = {\n children: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n // Ratio between 0 and 1 of the width of this column relative to all columns in the list.\n // If not provided, uses an equal width.\n width_ratio?: number\n}\n\nexport type ContentWithExpressionRequest = { expression: string }\n\nexport type ContentWithTableRowRequest = {\n cells: Array<Array<RichTextItemRequest>>\n}\n\ntype CustomEmojiPageIconRequest = {\n // Always `custom_emoji`\n type?: \"custom_emoji\"\n custom_emoji: {\n // The ID of the custom emoji.\n id: IdRequest\n // The name of the custom emoji.\n name?: string\n // The URL of the custom emoji.\n url?: string\n }\n}\n\ntype EmojiPageIconRequest = {\n // Always `emoji`\n type?: \"emoji\"\n // An emoji character.\n emoji: EmojiRequest\n}\n\ntype EquationRichTextItemRequest = {\n // Always `equation`\n type?: \"equation\"\n // Notion supports inline LaTeX equations as rich text objects with a type value of\n // `equation`.\n equation: {\n // A KaTeX compatible string.\n expression: string\n }\n}\n\ntype ExternalFileRequest = { url: TextRequest }\n\ntype ExternalPageIconRequest = {\n // Always `external`\n type?: \"external\"\n external: {\n // The URL of the external file.\n url: string\n }\n}\n\ntype FileUploadIdRequest = { id: IdRequest }\n\ntype FileUploadPageIconRequest = {\n // Always `file_upload`\n type?: \"file_upload\"\n file_upload: {\n // ID of a FileUpload object that has the status `uploaded`.\n id: string\n }\n}\n\ntype IconPageIconRequest = {\n // Always `icon`\n type?: \"icon\"\n // A Notion native icon, specified by name and optional color.\n icon: {\n // The name of the Notion icon (e.g. pizza, meeting, home). See the Notion icon picker\n // for valid names.\n name: NoticonName\n // The color variant of the icon. Defaults to gray if not specified. Valid values: gray,\n // lightgray, brown, yellow, orange, green, blue, purple, pink, red.\n color?: NoticonColor\n }\n}\n\nexport type LanguageRequest =\n | \"abap\"\n | \"abc\"\n | \"agda\"\n | \"arduino\"\n | \"ascii art\"\n | \"assembly\"\n | \"bash\"\n | \"basic\"\n | \"bnf\"\n | \"c\"\n | \"c#\"\n | \"c++\"\n | \"clojure\"\n | \"coffeescript\"\n | \"coq\"\n | \"css\"\n | \"dart\"\n | \"dhall\"\n | \"diff\"\n | \"docker\"\n | \"ebnf\"\n | \"elixir\"\n | \"elm\"\n | \"erlang\"\n | \"f#\"\n | \"flow\"\n | \"fortran\"\n | \"gherkin\"\n | \"glsl\"\n | \"go\"\n | \"graphql\"\n | \"groovy\"\n | \"haskell\"\n | \"hcl\"\n | \"html\"\n | \"idris\"\n | \"java\"\n | \"javascript\"\n | \"json\"\n | \"julia\"\n | \"kotlin\"\n | \"latex\"\n | \"less\"\n | \"lisp\"\n | \"livescript\"\n | \"llvm ir\"\n | \"lua\"\n | \"makefile\"\n | \"markdown\"\n | \"markup\"\n | \"matlab\"\n | \"mathematica\"\n | \"mermaid\"\n | \"nix\"\n | \"notion formula\"\n | \"objective-c\"\n | \"ocaml\"\n | \"pascal\"\n | \"perl\"\n | \"php\"\n | \"plain text\"\n | \"powershell\"\n | \"prolog\"\n | \"protobuf\"\n | \"purescript\"\n | \"python\"\n | \"r\"\n | \"racket\"\n | \"reason\"\n | \"ruby\"\n | \"rust\"\n | \"sass\"\n | \"scala\"\n | \"scheme\"\n | \"scss\"\n | \"shell\"\n | \"smalltalk\"\n | \"solidity\"\n | \"sql\"\n | \"swift\"\n | \"toml\"\n | \"typescript\"\n | \"vb.net\"\n | \"verilog\"\n | \"vhdl\"\n | \"visual basic\"\n | \"webassembly\"\n | \"xml\"\n | \"yaml\"\n | \"java/c/c++/c#\"\n\ntype MediaContentWithFileAndCaptionRequest =\n | {\n external: ExternalFileRequest\n type?: \"external\"\n caption?: Array<RichTextItemRequest>\n }\n | {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n caption?: Array<RichTextItemRequest>\n }\n\ntype MediaContentWithFileNameAndCaptionRequest =\n | {\n external: ExternalFileRequest\n type?: \"external\"\n caption?: Array<RichTextItemRequest>\n name?: StringRequest\n }\n | {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n caption?: Array<RichTextItemRequest>\n name?: StringRequest\n }\n\ntype MediaContentWithUrlAndCaptionRequest = {\n url: string\n caption?: Array<RichTextItemRequest>\n}\n\ntype MentionRichTextItemRequest = {\n // Always `mention`\n type?: \"mention\"\n // Mention objects represent an inline mention of a database, date, link preview mention,\n // page, template mention, or user. A mention is created in the Notion UI when a user\n // types `@` followed by the name of the reference.\n mention:\n | {\n // Always `user`\n type?: \"user\"\n // Details of the user mention.\n user: PartialUserObjectRequest\n }\n | {\n // Always `date`\n type?: \"date\"\n // Details of the date mention.\n date: DateRequest\n }\n | {\n // Always `page`\n type?: \"page\"\n // Details of the page mention.\n page: {\n // The ID of the page in the mention.\n id: IdRequest\n }\n }\n | {\n // Always `database`\n type?: \"database\"\n // Details of the database mention.\n database: {\n // The ID of the database in the mention.\n id: IdRequest\n }\n }\n | {\n // Always `template_mention`\n type?: \"template_mention\"\n // Details of the template mention.\n template_mention: TemplateMentionRequest\n }\n | {\n // Always `custom_emoji`\n type?: \"custom_emoji\"\n // Details of the custom emoji mention.\n custom_emoji: {\n // The ID of the custom emoji.\n id: IdRequest\n // The name of the custom emoji.\n name?: string\n // The URL of the custom emoji.\n url?: string\n }\n }\n}\n\ntype RichTextItemRequestCommon = {\n // All rich text objects contain an annotations object that sets the styling for the rich\n // text.\n annotations?: AnnotationRequest\n}\n\ntype TabRequestWithNestedTabItemChildren = {\n children: Array<TabItemRequestWithSingleLevelOfChildren>\n}\n\ntype TableRequestWithTableRowChildren = {\n table_width: number\n children: Array<TableRowRequest>\n has_column_header?: boolean\n has_row_header?: boolean\n}\n\ntype TextRichTextItemRequest = {\n // Always `text`\n type?: \"text\"\n // If a rich text object's type value is `text`, then the corresponding text field\n // contains an object including the text content and any inline link.\n text: {\n // The actual text content of the text.\n content: string\n // An object with information about any inline link in this text, if included.\n link?: {\n // The URL of the link.\n url: string\n } | null\n }\n}\n\ntype PagePropertyValueWithIdResponse = IdObjectResponse &\n (SimpleOrArrayPropertyValueResponse | PartialRollupPropertyResponse)\n\nexport type NumberFormat = string\n\nexport type PropertyDescriptionRequest = string\n\ntype AnnotationRequest = {\n // Whether the text is formatted as bold.\n bold?: boolean\n // Whether the text is formatted as italic.\n italic?: boolean\n // Whether the text is formatted with a strikethrough.\n strikethrough?: boolean\n // Whether the text is formatted with an underline.\n underline?: boolean\n // Whether the text is formatted as code.\n code?: boolean\n // The color of the text.\n color?: ApiColor\n}\n\nexport type BlockObjectRequestWithoutChildren =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | { tab: EmptyObject; type?: \"tab\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n heading_1: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n heading_4: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_4\"\n object?: \"block\"\n }\n | {\n paragraph: ContentWithRichTextColorAndIconRequest\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: ContentWithRichTextAndColorRequest\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: ContentWithRichTextAndColorRequest\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: ContentWithRichTextAndColorRequest\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n checked?: boolean\n color?: ApiColor\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: ContentWithRichTextAndColorRequest\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: ContentWithRichTextRequest\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n icon?: PageIconRequest\n color?: ApiColor\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\ntype ColumnBlockWithChildrenRequest = {\n column: ColumnWithChildrenRequest\n type?: \"column\"\n object?: \"block\"\n}\n\ntype ContentWithSingleLevelOfChildrenRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n}\n\ntype HeaderContentWithSingleLevelOfChildrenRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectRequestWithoutChildren>\n}\n\ntype ParagraphWithSingleLevelOfChildrenRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n icon?: PageIconRequest\n children?: Array<BlockObjectRequestWithoutChildren>\n}\n\ntype TabItemRequestWithSingleLevelOfChildren = {\n paragraph: ParagraphWithSingleLevelOfChildrenRequest\n type?: \"paragraph\"\n object?: \"block\"\n}\n\ntype TabRequestWithTabItemChildren = {\n children: Array<TabItemRequestWithoutChildren>\n}\n\ntype TableRowRequest = {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n}\n\ntype TemplateMentionRequest =\n | TemplateMentionDateTemplateMentionRequest\n | TemplateMentionUserTemplateMentionRequest\n\ntype IdObjectResponse = { id: string }\n\ntype PartialRollupPropertyResponse = {\n // Always `rollup`\n type: \"rollup\"\n rollup: PartialRollupValueResponse\n}\n\ntype SimpleOrArrayPropertyValueResponse =\n | SimplePropertyValueResponse\n | ArrayBasedPropertyValueResponse\n\nexport type ContentWithRichTextAndColorRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n}\n\ntype ContentWithRichTextColorAndIconRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n icon?: PageIconRequest\n}\n\nexport type ContentWithRichTextRequest = {\n rich_text: Array<RichTextItemRequest>\n}\n\nexport type HeaderContentWithRichTextAndColorRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n}\n\ntype TabItemRequestWithoutChildren = {\n paragraph: ContentWithRichTextColorAndIconRequest\n type?: \"paragraph\"\n object?: \"block\"\n}\n\ntype TemplateMentionDateTemplateMentionRequest = {\n // Always `template_mention_date`\n type?: \"template_mention_date\"\n // The date of the template mention.\n template_mention_date: \"today\" | \"now\"\n}\n\ntype TemplateMentionUserTemplateMentionRequest = {\n // Always `template_mention_user`\n type?: \"template_mention_user\"\n // The user of the template mention.\n template_mention_user: \"me\"\n}\n\ntype ArrayBasedPropertyValueResponse =\n | TitleArrayBasedPropertyValueResponse\n | RichTextArrayBasedPropertyValueResponse\n | PeopleArrayBasedPropertyValueResponse\n | RelationArrayBasedPropertyValueResponse\n\ntype PartialRollupValueResponse = PartialRollupValueResponseCommon &\n (\n | NumberPartialRollupValueResponse\n | DatePartialRollupValueResponse\n | ArrayPartialRollupValueResponse\n )\n\ntype SimplePropertyValueResponse =\n | NumberSimplePropertyValueResponse\n | UrlSimplePropertyValueResponse\n | SelectSimplePropertyValueResponse\n | MultiSelectSimplePropertyValueResponse\n | StatusSimplePropertyValueResponse\n | DateSimplePropertyValueResponse\n | EmailSimplePropertyValueResponse\n | PhoneNumberSimplePropertyValueResponse\n | CheckboxSimplePropertyValueResponse\n | FilesSimplePropertyValueResponse\n | CreatedBySimplePropertyValueResponse\n | CreatedTimeSimplePropertyValueResponse\n | LastEditedBySimplePropertyValueResponse\n | LastEditedTimeSimplePropertyValueResponse\n | FormulaSimplePropertyValueResponse\n | ButtonSimplePropertyValueResponse\n | UniqueIdSimplePropertyValueResponse\n | VerificationSimplePropertyValueResponse\n | PlaceSimplePropertyValueResponse\n\ntype ArrayPartialRollupValueResponse = {\n // Always `array`\n type: \"array\"\n array: Array<SimpleOrArrayPropertyValueResponse>\n}\n\ntype ButtonSimplePropertyValueResponse = {\n // Always `button`\n type: \"button\"\n button: EmptyObject\n}\n\ntype CheckboxSimplePropertyValueResponse = {\n // Always `checkbox`\n type: \"checkbox\"\n checkbox: boolean\n}\n\ntype CreatedBySimplePropertyValueResponse = {\n // Always `created_by`\n type: \"created_by\"\n created_by: UserValueResponse\n}\n\ntype CreatedTimeSimplePropertyValueResponse = {\n // Always `created_time`\n type: \"created_time\"\n created_time: string\n}\n\ntype DatePartialRollupValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\ntype DateSimplePropertyValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\ntype EmailSimplePropertyValueResponse = {\n // Always `email`\n type: \"email\"\n email: string | null\n}\n\ntype FilesSimplePropertyValueResponse = {\n // Always `files`\n type: \"files\"\n files: Array<InternalOrExternalFileWithNameResponse>\n}\n\ntype FormulaSimplePropertyValueResponse = {\n // Always `formula`\n type: \"formula\"\n formula: FormulaPropertyValueResponse\n}\n\ntype LastEditedBySimplePropertyValueResponse = {\n // Always `last_edited_by`\n type: \"last_edited_by\"\n last_edited_by: UserValueResponse\n}\n\ntype LastEditedTimeSimplePropertyValueResponse = {\n // Always `last_edited_time`\n type: \"last_edited_time\"\n last_edited_time: string\n}\n\ntype MultiSelectSimplePropertyValueResponse = {\n // Always `multi_select`\n type: \"multi_select\"\n multi_select: Array<PartialSelectPropertyValueResponse>\n}\n\ntype NumberPartialRollupValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype NumberSimplePropertyValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype PartialRollupValueResponseCommon = {\n // The function used for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n}\n\ntype PeopleArrayBasedPropertyValueResponse = {\n // Always `people`\n type: \"people\"\n people: Array<UserValueResponse | GroupObjectResponse>\n}\n\ntype PhoneNumberSimplePropertyValueResponse = {\n // Always `phone_number`\n type: \"phone_number\"\n phone_number: string | null\n}\n\ntype PlaceSimplePropertyValueResponse = {\n // Always `place`\n type: \"place\"\n place: PlacePropertyValueResponse | null\n}\n\ntype RelationArrayBasedPropertyValueResponse = {\n // Always `relation`\n type: \"relation\"\n relation: Array<RelationItemPropertyValueResponse>\n}\n\ntype RichTextArrayBasedPropertyValueResponse = {\n // Always `rich_text`\n type: \"rich_text\"\n rich_text: Array<RichTextItemResponse>\n}\n\ntype SelectSimplePropertyValueResponse = {\n // Always `select`\n type: \"select\"\n select: PartialSelectPropertyValueResponse | null\n}\n\ntype StatusSimplePropertyValueResponse = {\n // Always `status`\n type: \"status\"\n status: PartialSelectPropertyValueResponse | null\n}\n\ntype TitleArrayBasedPropertyValueResponse = {\n // Always `title`\n type: \"title\"\n title: Array<RichTextItemResponse>\n}\n\ntype UniqueIdSimplePropertyValueResponse = {\n // Always `unique_id`\n type: \"unique_id\"\n unique_id: UniqueIdPropertyValueResponse\n}\n\ntype UrlSimplePropertyValueResponse = {\n // Always `url`\n type: \"url\"\n url: string | null\n}\n\ntype VerificationSimplePropertyValueResponse = {\n // Always `verification`\n type: \"verification\"\n verification: VerificationPropertyValueResponse | null\n}\n\ntype FormulaPropertyValueResponse =\n | BooleanFormulaPropertyValueResponse\n | DateFormulaPropertyValueResponse\n | NumberFormulaPropertyValueResponse\n | StringFormulaPropertyValueResponse\n\nexport type InternalOrExternalFileWithNameResponse =\n InternalOrExternalFileWithNameResponseCommon &\n (\n | FileInternalOrExternalFileWithNameResponse\n | ExternalInternalOrExternalFileWithNameResponse\n )\n\ntype PartialSelectPropertyValueResponse = {\n id: string\n name: string\n // One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n // `pink`, `red`\n color:\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n}\n\ntype PlacePropertyValueResponse = {\n lat: number\n lon: number\n name?: string | null\n address?: string | null\n aws_place_id?: string | null\n google_place_id?: string | null\n}\n\nexport type RelationItemPropertyValueResponse = { id: IdRequest }\n\ntype UniqueIdPropertyValueResponse = {\n prefix: string | null\n number: number | null\n}\n\nexport type VerificationPropertyValueResponse =\n | VerificationPropertyUnverifiedResponse\n | VerificationPropertyResponse\n\ntype BooleanFormulaPropertyValueResponse = {\n // Always `boolean`\n type: \"boolean\"\n boolean: boolean | null\n}\n\ntype DateFormulaPropertyValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\ntype ExternalInternalOrExternalFileWithNameResponse = {\n // Type of attachment. In this case, an external URL.\n type: \"external\"\n // The external URL.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\ntype FileInternalOrExternalFileWithNameResponse = {\n // Type of attachment. In this case, a file uploaded to a Notion workspace.\n type: \"file\"\n // The file URL.\n file: InternalFileResponse\n}\n\ntype InternalOrExternalFileWithNameResponseCommon = {\n // The name of the file.\n name: string\n}\n\ntype NumberFormulaPropertyValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype StringFormulaPropertyValueResponse = {\n // Always `string`\n type: \"string\"\n string: string | null\n}\n\ntype VerificationPropertyResponse = {\n // One of: `verified`, `expired`\n state: \"verified\" | \"expired\"\n date: DateResponse | null\n verified_by: UserValueResponse | null\n}\n\ntype VerificationPropertyUnverifiedResponse = {\n // Always `unverified`\n state: \"unverified\"\n date: null\n verified_by: null\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default base URL for the Notion API.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DEFAULT_BASE_URL = "https://api.notion.com";
|
|
5
|
+
/**
|
|
6
|
+
* Default request timeout in milliseconds (60 seconds).
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_TIMEOUT_MS = 60000;
|
|
9
|
+
/**
|
|
10
|
+
* Default maximum number of retry attempts for failed requests.
|
|
11
|
+
*/
|
|
12
|
+
export declare const DEFAULT_MAX_RETRIES = 2;
|
|
13
|
+
/**
|
|
14
|
+
* Default initial delay between retries in milliseconds (1 second).
|
|
15
|
+
* Used as the base for exponential back-off when the retry-after
|
|
16
|
+
* header is absent.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DEFAULT_INITIAL_RETRY_DELAY_MS = 1000;
|
|
19
|
+
/**
|
|
20
|
+
* Default maximum delay between retries in milliseconds
|
|
21
|
+
* (60 seconds). Caps both retry-after and exponential
|
|
22
|
+
* back-off delays.
|
|
23
|
+
*/
|
|
24
|
+
export declare const DEFAULT_MAX_RETRY_DELAY_MS = 60000;
|
|
25
|
+
/**
|
|
26
|
+
* The minimum width of a view column in pixels. Use this
|
|
27
|
+
* with the views API to make a property column that appears
|
|
28
|
+
* minimal / collapsed in the Notion app UI (e.g. a checkbox
|
|
29
|
+
* or status-as-checkbox column).
|
|
30
|
+
*/
|
|
31
|
+
export declare const MIN_VIEW_COLUMN_WIDTH = 32;
|
|
32
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,gBAAgB,2BAA2B,CAAA;AAExD;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAA;AAExC;;GAEG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,OAAQ,CAAA;AAEnD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MIN_VIEW_COLUMN_WIDTH = exports.DEFAULT_MAX_RETRY_DELAY_MS = exports.DEFAULT_INITIAL_RETRY_DELAY_MS = exports.DEFAULT_MAX_RETRIES = exports.DEFAULT_TIMEOUT_MS = exports.DEFAULT_BASE_URL = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default base URL for the Notion API.
|
|
6
|
+
*/
|
|
7
|
+
exports.DEFAULT_BASE_URL = "https://api.notion.com";
|
|
8
|
+
/**
|
|
9
|
+
* Default request timeout in milliseconds (60 seconds).
|
|
10
|
+
*/
|
|
11
|
+
exports.DEFAULT_TIMEOUT_MS = 60000;
|
|
12
|
+
/**
|
|
13
|
+
* Default maximum number of retry attempts for failed requests.
|
|
14
|
+
*/
|
|
15
|
+
exports.DEFAULT_MAX_RETRIES = 2;
|
|
16
|
+
/**
|
|
17
|
+
* Default initial delay between retries in milliseconds (1 second).
|
|
18
|
+
* Used as the base for exponential back-off when the retry-after
|
|
19
|
+
* header is absent.
|
|
20
|
+
*/
|
|
21
|
+
exports.DEFAULT_INITIAL_RETRY_DELAY_MS = 1000;
|
|
22
|
+
/**
|
|
23
|
+
* Default maximum delay between retries in milliseconds
|
|
24
|
+
* (60 seconds). Caps both retry-after and exponential
|
|
25
|
+
* back-off delays.
|
|
26
|
+
*/
|
|
27
|
+
exports.DEFAULT_MAX_RETRY_DELAY_MS = 60000;
|
|
28
|
+
/**
|
|
29
|
+
* The minimum width of a view column in pixels. Use this
|
|
30
|
+
* with the views API to make a property column that appears
|
|
31
|
+
* minimal / collapsed in the Notion app UI (e.g. a checkbox
|
|
32
|
+
* or status-as-checkbox column).
|
|
33
|
+
*/
|
|
34
|
+
exports.MIN_VIEW_COLUMN_WIDTH = 32;
|
|
35
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,gBAAgB,GAAG,wBAAwB,CAAA;AAExD;;GAEG;AACU,QAAA,kBAAkB,GAAG,KAAM,CAAA;AAExC;;GAEG;AACU,QAAA,mBAAmB,GAAG,CAAC,CAAA;AAEpC;;;;GAIG;AACU,QAAA,8BAA8B,GAAG,IAAK,CAAA;AAEnD;;;;GAIG;AACU,QAAA,0BAA0B,GAAG,KAAM,CAAA;AAEhD;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,EAAE,CAAA","sourcesContent":["/**\n * Default base URL for the Notion API.\n */\nexport const DEFAULT_BASE_URL = \"https://api.notion.com\"\n\n/**\n * Default request timeout in milliseconds (60 seconds).\n */\nexport const DEFAULT_TIMEOUT_MS = 60_000\n\n/**\n * Default maximum number of retry attempts for failed requests.\n */\nexport const DEFAULT_MAX_RETRIES = 2\n\n/**\n * Default initial delay between retries in milliseconds (1 second).\n * Used as the base for exponential back-off when the retry-after\n * header is absent.\n */\nexport const DEFAULT_INITIAL_RETRY_DELAY_MS = 1_000\n\n/**\n * Default maximum delay between retries in milliseconds\n * (60 seconds). Caps both retry-after and exponential\n * back-off delays.\n */\nexport const DEFAULT_MAX_RETRY_DELAY_MS = 60_000\n\n/**\n * The minimum width of a view column in pixels. Use this\n * with the views API to make a property column that appears\n * minimal / collapsed in the Notion app UI (e.g. a checkbox\n * or status-as-checkbox column).\n */\nexport const MIN_VIEW_COLUMN_WIDTH = 32\n"]}
|
package/build/src/errors.d.ts
CHANGED
|
@@ -13,7 +13,8 @@ export declare enum APIErrorCode {
|
|
|
13
13
|
ValidationError = "validation_error",
|
|
14
14
|
ConflictError = "conflict_error",
|
|
15
15
|
InternalServerError = "internal_server_error",
|
|
16
|
-
ServiceUnavailable = "service_unavailable"
|
|
16
|
+
ServiceUnavailable = "service_unavailable",
|
|
17
|
+
GatewayTimeout = "gateway_timeout"
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
20
|
* Error codes generated for client errors.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAIjD;;GAEG;AACH,oBAAY,YAAY;IACtB,YAAY,iBAAiB;IAC7B,kBAAkB,wBAAwB;IAC1C,cAAc,qBAAqB;IACnC,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAC5B,iBAAiB,wBAAwB;IACzC,cAAc,oBAAoB;IAClC,eAAe,qBAAqB;IACpC,aAAa,mBAAmB;IAChC,mBAAmB,0BAA0B;IAC7C,kBAAkB,wBAAwB;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAIjD;;GAEG;AACH,oBAAY,YAAY;IACtB,YAAY,iBAAiB;IAC7B,kBAAkB,wBAAwB;IAC1C,cAAc,qBAAqB;IACnC,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;IAC5B,iBAAiB,wBAAwB;IACzC,cAAc,oBAAoB;IAClC,eAAe,qBAAqB;IACpC,aAAa,mBAAmB;IAChC,mBAAmB,0BAA0B;IAC7C,kBAAkB,wBAAwB;IAC1C,cAAc,oBAAoB;CACnC;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,cAAc,oCAAoC;IAClD,aAAa,mCAAmC;IAChD,oBAAoB,2CAA2C;CAChE;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,eAAe,CAAA;AAE5D;;GAEG;AACH,uBAAe,qBAAqB,CAClC,IAAI,SAAS,eAAe,CAC5B,SAAQ,KAAK;IACb,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,mBAAmB,GACnB,wBAAwB,GACxB,gBAAgB,GAChB,yBAAyB,CAAA;AAgB7B;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iBAAiB,CAE5B;AAeD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,qBAAqB,CAAC,eAAe,CAAC,cAAc,CAAC;IAC5F,QAAQ,CAAC,IAAI,kCAAiC;IAC9C,QAAQ,CAAC,IAAI,yBAAwB;gBAEzB,OAAO,SAAwC;IAI3D,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB;IAM1E,MAAM,CAAC,kBAAkB,CAAC,CAAC,EACzB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC;CAYd;AAED;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,qBAAqB,CAAC,eAAe,CAAC,oBAAoB,CAAC;IACxG,QAAQ,CAAC,IAAI,wCAAuC;IACpD,QAAQ,CAAC,IAAI,+BAA8B;gBAGzC,OAAO,SAAiF;IAK1F,MAAM,CAAC,2BAA2B,CAChC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,yBAAyB;CAKtC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAwBtD;AAED,KAAK,qBAAqB,GAAG,eAAe,CAAC,aAAa,GAAG,YAAY,CAAA;AAEzE,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;AAEvD,cAAM,iBAAiB,CACrB,IAAI,SAAS,qBAAqB,CAClC,SAAQ,qBAAqB,CAAC,IAAI,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAsB;IAC3C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,eAAe,EAAE,cAAc,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;gBAE3B,IAAI,EAAE;QAChB,IAAI,EAAE,IAAI,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;QACrC,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,cAAc,GAAG,SAAS,CAAA;QAC3C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;KAC/B;CAWF;AAkBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,wBAAwB,GAAG,gBAAgB,CAWtD;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,iBAAiB,CAAC,eAAe,CAAC,aAAa,CAAC;IAC5F,QAAQ,CAAC,IAAI,8BAA6B;gBAE9B,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;QACrC,WAAW,EAAE,MAAM,CAAA;KACpB;IAYD,MAAM,CAAC,0BAA0B,CAC/B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,wBAAwB;CAKrC;AAiBD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB,CAAC,YAAY,CAAC;IACnE,QAAQ,CAAC,IAAI,sBAAqB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAEvC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB;CAGrE;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,MAAM,GACf,gBAAgB,GAAG,wBAAwB,CAmB7C"}
|
package/build/src/errors.js
CHANGED
|
@@ -22,6 +22,7 @@ var APIErrorCode;
|
|
|
22
22
|
APIErrorCode["ConflictError"] = "conflict_error";
|
|
23
23
|
APIErrorCode["InternalServerError"] = "internal_server_error";
|
|
24
24
|
APIErrorCode["ServiceUnavailable"] = "service_unavailable";
|
|
25
|
+
APIErrorCode["GatewayTimeout"] = "gateway_timeout";
|
|
25
26
|
})(APIErrorCode || (exports.APIErrorCode = APIErrorCode = {}));
|
|
26
27
|
/**
|
|
27
28
|
* Error codes generated for client errors.
|
|
@@ -149,6 +150,7 @@ const httpResponseErrorCodes = {
|
|
|
149
150
|
[APIErrorCode.ConflictError]: true,
|
|
150
151
|
[APIErrorCode.InternalServerError]: true,
|
|
151
152
|
[APIErrorCode.ServiceUnavailable]: true,
|
|
153
|
+
[APIErrorCode.GatewayTimeout]: true,
|
|
152
154
|
};
|
|
153
155
|
function isHTTPResponseError(error) {
|
|
154
156
|
if (!isNotionClientErrorWithCode(error, httpResponseErrorCodes)) {
|
|
@@ -191,6 +193,7 @@ const apiErrorCodes = {
|
|
|
191
193
|
[APIErrorCode.ConflictError]: true,
|
|
192
194
|
[APIErrorCode.InternalServerError]: true,
|
|
193
195
|
[APIErrorCode.ServiceUnavailable]: true,
|
|
196
|
+
[APIErrorCode.GatewayTimeout]: true,
|
|
194
197
|
};
|
|
195
198
|
/**
|
|
196
199
|
* A response from the API indicating a problem.
|