/** * This file was auto-generated from an OpenAPI spec. */ import { z } from 'zod' export namespace notion { export const apiBaseUrl = 'https://api.notion.so' // ----------------------------------------------------------------------------- // Component schemas // ----------------------------------------------------------------------------- export const UserObjectResponseSchema = z.object({ object: z.literal('user'), id: z.string(), type: z.enum(['person', 'bot']), name: z.string(), avatar_url: z.string() }) export type UserObjectResponse = z.infer export const AnnotationRequestSchema = z.object({ bold: z.boolean().optional(), italic: z.boolean().optional(), strikethrough: z.boolean().optional(), underline: z.boolean().optional(), code: z.boolean().optional(), color: z .enum([ 'default', 'gray', 'brown', 'orange', 'yellow', 'green', 'blue', 'purple', 'pink', 'red', 'gray_background', 'brown_background', 'orange_background', 'yellow_background', 'green_background', 'blue_background', 'purple_background', 'pink_background', 'red_background' ]) .optional() }) export type AnnotationRequest = z.infer export const DateRequestSchema = z.object({ start: z.string(), end: z.union([z.string(), z.null()]).optional(), time_zone: z.union([z.string(), z.null()]).optional() }) export type DateRequest = z.infer export const PageObjectResponseSchema = z.object({ object: z.literal('page'), id: z.string(), created_time: z.string(), last_edited_time: z.string(), archived: z.boolean(), url: z.string() }) export type PageObjectResponse = z.infer export const PartialPageObjectResponseSchema = z.object({ object: z.literal('page'), id: z.string() }) export type PartialPageObjectResponse = z.infer< typeof PartialPageObjectResponseSchema > export const PropertyItemObjectResponseSchema = z.object({ type: z.string(), id: z.string() }) export type PropertyItemObjectResponse = z.infer< typeof PropertyItemObjectResponseSchema > export const PartialBlockObjectResponseSchema = z.object({ object: z.literal('block'), id: z.string() }) export type PartialBlockObjectResponse = z.infer< typeof PartialBlockObjectResponseSchema > export const BlockObjectResponseSchema = z.object({ object: z.literal('block'), id: z.string(), type: z.string(), created_time: z.string(), last_edited_time: z.string(), has_children: z.boolean(), archived: z.boolean() }) export type BlockObjectResponse = z.infer export const TitlePropertyResponseSchema = z.object({ id: z.string(), type: z.literal('title'), title: z.record(z.any()) }) export type TitlePropertyResponse = z.infer< typeof TitlePropertyResponseSchema > export const RichTextPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('rich_text'), rich_text: z.record(z.any()) }) export type RichTextPropertyResponse = z.infer< typeof RichTextPropertyResponseSchema > export const NumberPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('number'), number: z.object({ format: z.string() }) }) export type NumberPropertyResponse = z.infer< typeof NumberPropertyResponseSchema > export const SelectOptionSchema = z.object({ id: z.string(), name: z.string(), color: z.string() }) export type SelectOption = z.infer export const DatePropertyResponseSchema = z.object({ id: z.string(), type: z.literal('date'), date: z.record(z.any()) }) export type DatePropertyResponse = z.infer export const PeoplePropertyResponseSchema = z.object({ id: z.string(), type: z.literal('people'), people: z.record(z.any()) }) export type PeoplePropertyResponse = z.infer< typeof PeoplePropertyResponseSchema > export const FilePropertyResponseSchema = z.object({ id: z.string(), type: z.literal('files'), files: z.record(z.any()) }) export type FilePropertyResponse = z.infer export const CheckboxPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('checkbox'), checkbox: z.record(z.any()) }) export type CheckboxPropertyResponse = z.infer< typeof CheckboxPropertyResponseSchema > export const UrlPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('url'), url: z.record(z.any()) }) export type UrlPropertyResponse = z.infer export const EmailPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('email'), email: z.record(z.any()) }) export type EmailPropertyResponse = z.infer< typeof EmailPropertyResponseSchema > export const PhoneNumberPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('phone_number'), phone_number: z.record(z.any()) }) export type PhoneNumberPropertyResponse = z.infer< typeof PhoneNumberPropertyResponseSchema > export const FormulaPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('formula'), formula: z.object({ expression: z.string() }) }) export type FormulaPropertyResponse = z.infer< typeof FormulaPropertyResponseSchema > export const RelationPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('relation'), relation: z.object({ database_id: z.string(), synced_property_name: z.string(), synced_property_id: z.string() }) }) export type RelationPropertyResponse = z.infer< typeof RelationPropertyResponseSchema > export const RollupPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('rollup'), rollup: z.object({ relation_property_name: z.string(), relation_property_id: z.string(), rollup_property_name: z.string(), rollup_property_id: z.string(), function: z.string() }) }) export type RollupPropertyResponse = z.infer< typeof RollupPropertyResponseSchema > export const CreatedTimePropertyResponseSchema = z.object({ id: z.string(), type: z.literal('created_time'), created_time: z.record(z.any()) }) export type CreatedTimePropertyResponse = z.infer< typeof CreatedTimePropertyResponseSchema > export const CreatedByPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('created_by'), created_by: z.record(z.any()) }) export type CreatedByPropertyResponse = z.infer< typeof CreatedByPropertyResponseSchema > export const LastEditedTimePropertyResponseSchema = z.object({ id: z.string(), type: z.literal('last_edited_time'), last_edited_time: z.record(z.any()) }) export type LastEditedTimePropertyResponse = z.infer< typeof LastEditedTimePropertyResponseSchema > export const LastEditedByPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('last_edited_by'), last_edited_by: z.record(z.any()) }) export type LastEditedByPropertyResponse = z.infer< typeof LastEditedByPropertyResponseSchema > export const PartialUserObjectResponseSchema = z.object({ object: z.literal('user'), id: z.string() }) export type PartialUserObjectResponse = z.infer< typeof PartialUserObjectResponseSchema > export const AnnotationResponseSchema = z.object({ bold: z.boolean(), italic: z.boolean(), strikethrough: z.boolean(), underline: z.boolean(), code: z.boolean(), color: z.enum([ 'default', 'gray', 'brown', 'orange', 'yellow', 'green', 'blue', 'purple', 'pink', 'red', 'gray_background', 'brown_background', 'orange_background', 'yellow_background', 'green_background', 'blue_background', 'purple_background', 'pink_background', 'red_background' ]) }) export type AnnotationResponse = z.infer export const DateResponseSchema = z.object({ start: z.string(), end: z.union([z.string(), z.null()]), time_zone: z.union([z.string(), z.null()]) }) export type DateResponse = z.infer export const PropertyUpdateSchemaSchema = z.object({ name: z.string().optional(), type: z.string().optional() }) export type PropertyUpdateSchema = z.infer export const TextPropertyFilterSchema = z.object({ equals: z.string().optional(), does_not_equal: z.string().optional(), contains: z.string().optional(), does_not_contain: z.string().optional(), starts_with: z.string().optional(), ends_with: z.string().optional(), is_empty: z.boolean().optional(), is_not_empty: z.boolean().optional() }) export type TextPropertyFilter = z.infer export const NumberPropertyFilterSchema = z.object({ equals: z.number().optional(), does_not_equal: z.number().optional(), greater_than: z.number().optional(), less_than: z.number().optional(), greater_than_or_equal_to: z.number().optional(), less_than_or_equal_to: z.number().optional(), is_empty: z.boolean().optional(), is_not_empty: z.boolean().optional() }) export type NumberPropertyFilter = z.infer export const CheckboxPropertyFilterSchema = z.object({ equals: z.boolean().optional(), does_not_equal: z.boolean().optional() }) export type CheckboxPropertyFilter = z.infer< typeof CheckboxPropertyFilterSchema > export const SelectPropertyFilterSchema = z.object({ equals: z.string().optional(), does_not_equal: z.string().optional(), is_empty: z.boolean().optional(), is_not_empty: z.boolean().optional() }) export type SelectPropertyFilter = z.infer export const MultiSelectPropertyFilterSchema = z.object({ contains: z.string().optional(), does_not_contain: z.string().optional(), is_empty: z.boolean().optional(), is_not_empty: z.boolean().optional() }) export type MultiSelectPropertyFilter = z.infer< typeof MultiSelectPropertyFilterSchema > export const DatePropertyFilterSchema = z.object({ equals: z.string().optional(), before: z.string().optional(), after: z.string().optional(), on_or_before: z.string().optional(), on_or_after: z.string().optional(), past_week: z.any().optional(), past_month: z.any().optional(), past_year: z.any().optional(), next_week: z.any().optional(), next_month: z.any().optional(), next_year: z.any().optional(), is_empty: z.boolean().optional(), is_not_empty: z.boolean().optional() }) export type DatePropertyFilter = z.infer export const PeoplePropertyFilterSchema = z.object({ contains: z.string().optional(), does_not_contain: z.string().optional(), is_empty: z.boolean().optional(), is_not_empty: z.boolean().optional() }) export type PeoplePropertyFilter = z.infer export const FilesPropertyFilterSchema = z.object({ is_empty: z.boolean().optional(), is_not_empty: z.boolean().optional() }) export type FilesPropertyFilter = z.infer export const RelationPropertyFilterSchema = z.object({ contains: z.string().optional(), does_not_contain: z.string().optional(), is_empty: z.boolean().optional(), is_not_empty: z.boolean().optional() }) export type RelationPropertyFilter = z.infer< typeof RelationPropertyFilterSchema > export const PropertySchemaSchema = z.object({ type: z.string(), name: z.union([z.string(), z.null()]).optional() }) export type PropertySchema = z.infer export const SearchParametersSchema = z.object({ query: z.string().optional(), sort: z .object({ direction: z.enum(['ascending', 'descending']), timestamp: z.literal('last_edited_time') }) .optional(), filter: z .object({ value: z.enum(['page', 'database']), property: z.literal('object') }) .optional(), start_cursor: z.string().optional(), page_size: z.number().int().optional() }) export type SearchParameters = z.infer export const PartialCommentObjectResponseSchema = z.object({ object: z.literal('comment'), id: z.string() }) export type PartialCommentObjectResponse = z.infer< typeof PartialCommentObjectResponseSchema > export const OauthTokenParametersSchema = z.object({ grant_type: z.string(), code: z.string(), redirect_uri: z.string().optional(), external_account: z.object({ key: z.string(), name: z.string() }).optional() }) export type OauthTokenParameters = z.infer export const ListUsersResponseSchema = z.object({ results: z.array(UserObjectResponseSchema), next_cursor: z.union([z.string(), z.null()]), has_more: z.boolean() }) export type ListUsersResponse = z.infer export const PropertyItemListResponseSchema = z.object({ results: z.array(PropertyItemObjectResponseSchema), next_cursor: z.union([z.string(), z.null()]), has_more: z.boolean() }) export type PropertyItemListResponse = z.infer< typeof PropertyItemListResponseSchema > export const SelectPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('select'), select: z.object({ options: z.array(SelectOptionSchema) }) }) export type SelectPropertyResponse = z.infer< typeof SelectPropertyResponseSchema > export const MultiSelectPropertyResponseSchema = z.object({ id: z.string(), type: z.literal('multi_select'), multi_select: z.object({ options: z.array(SelectOptionSchema) }) }) export type MultiSelectPropertyResponse = z.infer< typeof MultiSelectPropertyResponseSchema > export const TextRichTextItemResponseSchema = z.object({ type: z.literal('text'), text: z.object({ content: z.string(), link: z.union([z.object({ url: z.string() }), z.null()]) }), annotations: AnnotationResponseSchema, plain_text: z.string(), href: z.union([z.string(), z.null()]) }) export type TextRichTextItemResponse = z.infer< typeof TextRichTextItemResponseSchema > export const EquationRichTextItemResponseSchema = z.object({ type: z.literal('equation'), equation: z.object({ expression: z.string() }), annotations: AnnotationResponseSchema, plain_text: z.string(), href: z.union([z.string(), z.null()]) }) export type EquationRichTextItemResponse = z.infer< typeof EquationRichTextItemResponseSchema > export const ListBlockChildrenResponseSchema = z.object({ object: z.literal('list'), results: z.array( z.union([PartialBlockObjectResponseSchema, BlockObjectResponseSchema]) ), next_cursor: z.union([z.string(), z.null()]), has_more: z.boolean() }) export type ListBlockChildrenResponse = z.infer< typeof ListBlockChildrenResponseSchema > export const AppendBlockChildrenResponseSchema = z.object({ object: z.literal('list'), results: z.array( z.union([PartialBlockObjectResponseSchema, BlockObjectResponseSchema]) ), next_cursor: z.union([z.string(), z.null()]), has_more: z.boolean() }) export type AppendBlockChildrenResponse = z.infer< typeof AppendBlockChildrenResponseSchema > export const QueryDatabaseResponseSchema = z.object({ object: z.literal('list'), results: z.array( z.union([PageObjectResponseSchema, PartialPageObjectResponseSchema]) ), next_cursor: z.union([z.string(), z.null()]), has_more: z.boolean() }) export type QueryDatabaseResponse = z.infer< typeof QueryDatabaseResponseSchema > export const OauthTokenResponseSchema = z.object({ access_token: z.string(), token_type: z.literal('bearer'), bot_id: z.string(), workspace_name: z.union([z.string(), z.null()]), workspace_icon: z.union([z.string(), z.null()]), workspace_id: z.string(), owner: z.union([ z.object({ type: z.literal('user'), user: z.union([ UserObjectResponseSchema, PartialUserObjectResponseSchema ]) }), z.object({ type: z.literal('workspace'), workspace: z.literal(true) }) ]), duplicated_template_id: z.union([z.string(), z.null()]) }) export type OauthTokenResponse = z.infer export const RichTextItemRequestSchema = z.union([ z.object({ text: z.object({ content: z.string(), link: z.union([z.object({ url: z.string() }), z.null()]).optional() }), type: z.literal('text').optional(), annotations: AnnotationRequestSchema.optional() }), z.object({ mention: z.union([ z.object({ user: z.union([ z.object({ id: z.string() }), UserObjectResponseSchema ]) }), z.object({ page: z.object({ id: z.string() }) }), z.object({ database: z.object({ id: z.string() }) }), z.object({ date: DateRequestSchema }) ]), type: z.literal('mention').optional(), annotations: AnnotationRequestSchema.optional() }), z.object({ equation: z.object({ expression: z.string() }), type: z.literal('equation').optional(), annotations: AnnotationRequestSchema.optional() }) ]) export type RichTextItemRequest = z.infer export const CreatePageParametersSchema = z.object({ parent: z .record(z.any()) .and( z.union([ z.object({ type: z.literal('page_id'), page_id: z.string() }), z.object({ type: z.literal('database_id'), database_id: z.string() }) ]) ), properties: z.record( z.union([ z.object({ title: z.array(RichTextItemRequestSchema) }), z.object({ rich_text: z.array(RichTextItemRequestSchema) }), z.object({ number: z.union([z.number(), z.null()]) }), z.object({ select: z.union([z.object({ name: z.string() }), z.null()]) }) ]) ) }) export type CreatePageParameters = z.infer export const UpdatePageParametersSchema = z.object({ properties: z .record( z.union([ z.object({ title: z.array(RichTextItemRequestSchema) }), z.object({ rich_text: z.array(RichTextItemRequestSchema) }), z.object({ number: z.union([z.number(), z.null()]) }), z.object({ select: z.union([z.object({ name: z.string() }), z.null()]) }) ]) ) .optional(), archived: z.boolean().optional() }) export type UpdatePageParameters = z.infer export const UpdateBlockParametersSchema = z.object({ paragraph: z .object({ rich_text: z.array(RichTextItemRequestSchema).optional(), color: z.string().optional() }) .optional(), heading_1: z .object({ rich_text: z.array(RichTextItemRequestSchema).optional(), color: z.string().optional() }) .optional(), heading_2: z .object({ rich_text: z.array(RichTextItemRequestSchema).optional(), color: z.string().optional() }) .optional(), heading_3: z .object({ rich_text: z.array(RichTextItemRequestSchema).optional(), color: z.string().optional() }) .optional(), bulleted_list_item: z .object({ rich_text: z.array(RichTextItemRequestSchema).optional(), color: z.string().optional() }) .optional(), numbered_list_item: z .object({ rich_text: z.array(RichTextItemRequestSchema).optional(), color: z.string().optional() }) .optional(), quote: z .object({ rich_text: z.array(RichTextItemRequestSchema).optional(), color: z.string().optional() }) .optional(), to_do: z .object({ rich_text: z.array(RichTextItemRequestSchema).optional(), checked: z.boolean().optional(), color: z.string().optional() }) .optional(), toggle: z .object({ rich_text: z.array(RichTextItemRequestSchema).optional(), color: z.string().optional() }) .optional(), code: z .object({ rich_text: z.array(RichTextItemRequestSchema).optional(), language: z.string().optional() }) .optional(), embed: z.object({ url: z.string().optional() }).optional(), image: z .object({ external: z.object({ url: z.string().optional() }).optional() }) .optional(), video: z .object({ external: z.object({ url: z.string().optional() }).optional() }) .optional(), file: z .object({ external: z.object({ url: z.string().optional() }).optional() }) .optional(), pdf: z .object({ external: z.object({ url: z.string().optional() }).optional() }) .optional(), bookmark: z.object({ url: z.string().optional() }).optional(), equation: z.object({ expression: z.string().optional() }).optional(), divider: z.record(z.any()).optional(), table_of_contents: z.object({ color: z.string().optional() }).optional(), breadcrumb: z.record(z.any()).optional(), column_list: z.record(z.any()).optional(), column: z.record(z.any()).optional(), link_to_page: z .object({ type: z.enum(['page_id', 'database_id']).optional(), page_id: z.string().optional(), database_id: z.string().optional() }) .optional(), table_row: z .object({ cells: z.array(z.array(RichTextItemRequestSchema)).optional() }) .optional(), archived: z.boolean().optional() }) export type UpdateBlockParameters = z.infer< typeof UpdateBlockParametersSchema > export const BlockObjectRequestSchema = z.union([ z.object({ object: z.literal('block'), type: z.literal('paragraph'), paragraph: z.object({ rich_text: z.array(RichTextItemRequestSchema), color: z.string().optional() }) }), z.object({ object: z.literal('block'), type: z.literal('heading_1'), heading_1: z.object({ rich_text: z.array(RichTextItemRequestSchema), color: z.string().optional() }) }), z.object({ object: z.literal('block'), type: z.literal('heading_2'), heading_2: z.object({ rich_text: z.array(RichTextItemRequestSchema), color: z.string().optional() }) }), z.object({ object: z.literal('block'), type: z.literal('heading_3'), heading_3: z.object({ rich_text: z.array(RichTextItemRequestSchema), color: z.string().optional() }) }), z.object({ object: z.literal('block'), type: z.literal('bulleted_list_item'), bulleted_list_item: z.object({ rich_text: z.array(RichTextItemRequestSchema), color: z.string().optional() }) }), z.object({ object: z.literal('block'), type: z.literal('numbered_list_item'), numbered_list_item: z.object({ rich_text: z.array(RichTextItemRequestSchema), color: z.string().optional() }) }), z.object({ object: z.literal('block'), type: z.literal('to_do'), to_do: z.object({ rich_text: z.array(RichTextItemRequestSchema), checked: z.boolean(), color: z.string().optional() }) }), z.object({ object: z.literal('block'), type: z.literal('toggle'), toggle: z.object({ rich_text: z.array(RichTextItemRequestSchema), color: z.string().optional() }) }), z.object({ object: z.literal('block'), type: z.literal('code'), code: z.object({ rich_text: z.array(RichTextItemRequestSchema), language: z.string(), caption: z.array(RichTextItemRequestSchema).optional() }) }), z.object({ object: z.literal('block'), type: z.literal('child_page'), child_page: z.object({ title: z.string() }) }), z.object({ object: z.literal('block'), type: z.literal('child_database'), child_database: z.object({ title: z.string() }) }), z.object({ object: z.literal('block'), type: z.literal('embed'), embed: z.object({ url: z.string(), caption: z.array(RichTextItemRequestSchema).optional() }) }), z.object({ object: z.literal('block'), type: z.literal('image'), image: z.object({ external: z.object({ url: z.string() }), caption: z.array(RichTextItemRequestSchema).optional() }) }), z.object({ object: z.literal('block'), type: z.literal('video'), video: z.object({ external: z.object({ url: z.string() }), caption: z.array(RichTextItemRequestSchema).optional() }) }), z.object({ object: z.literal('block'), type: z.literal('file'), file: z.object({ external: z.object({ url: z.string() }), caption: z.array(RichTextItemRequestSchema).optional() }) }), z.object({ object: z.literal('block'), type: z.literal('pdf'), pdf: z.object({ external: z.object({ url: z.string() }), caption: z.array(RichTextItemRequestSchema).optional() }) }), z.object({ object: z.literal('block'), type: z.literal('bookmark'), bookmark: z.object({ url: z.string(), caption: z.array(RichTextItemRequestSchema).optional() }) }), z.object({ object: z.literal('block'), type: z.literal('equation'), equation: z.object({ expression: z.string() }) }), z.object({ object: z.literal('block'), type: z.literal('divider'), divider: z.record(z.any()) }), z.object({ object: z.literal('block'), type: z.literal('table_of_contents'), table_of_contents: z.object({ color: z.string().optional() }) }), z.object({ object: z.literal('block'), type: z.literal('column_list'), column_list: z.record(z.any()) }), z.object({ object: z.literal('block'), type: z.literal('column'), column: z.record(z.any()) }), z.object({ object: z.literal('block'), type: z.literal('link_to_page'), link_to_page: z.union([ z.object({ type: z.literal('page_id'), page_id: z.string() }), z.object({ type: z.literal('database_id'), database_id: z.string() }) ]) }), z.object({ object: z.literal('block'), type: z.literal('table'), table: z.object({ table_width: z.number().int(), has_column_header: z.boolean().optional(), has_row_header: z.boolean().optional(), children: z.array( // TODO: Support recursive types for `BlockObjectRequestSchema`. z.any() ) }) }), z.object({ object: z.literal('block'), type: z.literal('table_row'), table_row: z.object({ cells: z.array(z.array(RichTextItemRequestSchema)) }) }), z.object({ object: z.literal('block'), type: z.literal('synced_block'), synced_block: z.object({ synced_from: z .union([ z.object({ type: z.literal('block_id'), block_id: z.string() }), z.null() ]) .optional(), children: z .array( // TODO: Support recursive types for `BlockObjectRequestSchema`. z.any() ) .optional() }) }) ]) export type BlockObjectRequest = z.infer export const MentionRichTextItemResponseSchema = z.object({ type: z.literal('mention'), mention: z.union([ z.object({ type: z.literal('user'), user: z.union([ PartialUserObjectResponseSchema, UserObjectResponseSchema ]) }), z.object({ type: z.literal('date'), date: DateResponseSchema }), z.object({ type: z.literal('link_preview'), link_preview: z.object({ url: z.string() }) }), z.object({ type: z.literal('page'), page: z.object({ id: z.string() }) }), z.object({ type: z.literal('database'), database: z.object({ id: z.string() }) }) ]), annotations: AnnotationResponseSchema, plain_text: z.string(), href: z.union([z.string(), z.null()]) }) export type MentionRichTextItemResponse = z.infer< typeof MentionRichTextItemResponseSchema > export const CreateCommentParametersSchema = z.union([ z.object({ parent: z.object({ page_id: z.string(), type: z.literal('page_id').optional() }), rich_text: z.array(RichTextItemRequestSchema) }), z.object({ discussion_id: z.string(), rich_text: z.array(RichTextItemRequestSchema) }) ]) export type CreateCommentParameters = z.infer< typeof CreateCommentParametersSchema > export const AppendBlockChildrenParametersSchema = z.object({ children: z.array(BlockObjectRequestSchema) }) export type AppendBlockChildrenParameters = z.infer< typeof AppendBlockChildrenParametersSchema > export const UpdateDatabaseParametersSchema = z.object({ title: z.array(RichTextItemRequestSchema).optional(), description: z.array(RichTextItemRequestSchema).optional(), icon: z .union([ z.object({ emoji: z.string(), type: z.literal('emoji') }), z.object({ external: z.object({ url: z.string() }), type: z.literal('external') }), z.null() ]) .optional(), cover: z .union([ z.object({ external: z.object({ url: z.string() }), type: z.literal('external') }), z.null() ]) .optional(), properties: z.record(PropertyUpdateSchemaSchema).optional(), is_inline: z.boolean().optional(), archived: z.boolean().optional() }) export type UpdateDatabaseParameters = z.infer< typeof UpdateDatabaseParametersSchema > export const CreateDatabaseParametersSchema = z.object({ parent: z.union([ z.object({ type: z.literal('page_id'), page_id: z.string() }), z.object({ type: z.literal('database_id'), database_id: z.string() }) ]), properties: z.record(PropertySchemaSchema), icon: z .union([ z.object({ type: z.literal('emoji'), emoji: z.string() }), z.object({ type: z.literal('external'), external: z.object({ url: z.string() }) }), z.null() ]) .optional(), cover: z .union([ z.object({ type: z.literal('external'), external: z.object({ url: z.string() }) }), z.null() ]) .optional(), title: z.array(RichTextItemRequestSchema), description: z.array(RichTextItemRequestSchema).optional(), is_inline: z.boolean().optional() }) export type CreateDatabaseParameters = z.infer< typeof CreateDatabaseParametersSchema > export const RichTextItemResponseSchema = z.union([ TextRichTextItemResponseSchema, MentionRichTextItemResponseSchema, EquationRichTextItemResponseSchema ]) export type RichTextItemResponse = z.infer export const CommentObjectResponseSchema = z.object({ object: z.literal('comment'), id: z.string(), parent: z.union([ z.object({ type: z.literal('page_id'), page_id: z.string() }), z.object({ type: z.literal('block_id'), block_id: z.string() }) ]), discussion_id: z.string(), rich_text: z.array(RichTextItemResponseSchema), created_by: PartialUserObjectResponseSchema, created_time: z.string(), last_edited_time: z.string() }) export type CommentObjectResponse = z.infer< typeof CommentObjectResponseSchema > export const PropertyFilterSchema = z.union([ z.object({ property: z.string(), title: TextPropertyFilterSchema }), z.object({ property: z.string(), rich_text: TextPropertyFilterSchema }), z.object({ property: z.string(), number: NumberPropertyFilterSchema }), z.object({ property: z.string(), checkbox: CheckboxPropertyFilterSchema }), z.object({ property: z.string(), select: SelectPropertyFilterSchema }), z.object({ property: z.string(), multi_select: MultiSelectPropertyFilterSchema }), z.object({ property: z.string(), date: DatePropertyFilterSchema }), z.object({ property: z.string(), people: PeoplePropertyFilterSchema }), z.object({ property: z.string(), files: FilesPropertyFilterSchema }), z.object({ property: z.string(), url: TextPropertyFilterSchema }), z.object({ property: z.string(), email: TextPropertyFilterSchema }), z.object({ property: z.string(), phone_number: TextPropertyFilterSchema }), z.object({ property: z.string(), relation: RelationPropertyFilterSchema }), z.object({ property: z.string(), created_by: PeoplePropertyFilterSchema }), z.object({ property: z.string(), created_time: DatePropertyFilterSchema }), z.object({ property: z.string(), last_edited_by: PeoplePropertyFilterSchema }), z.object({ property: z.string(), last_edited_time: DatePropertyFilterSchema }), z.object({ timestamp: z.enum(['created_time', 'last_edited_time']), created_time: DatePropertyFilterSchema }), z.object({ timestamp: z.enum(['created_time', 'last_edited_time']), last_edited_time: DatePropertyFilterSchema }) ]) export type PropertyFilter = z.infer export const ListCommentsResponseSchema = z.object({ object: z.literal('list'), results: z.array(CommentObjectResponseSchema), next_cursor: z.union([z.string(), z.null()]), has_more: z.boolean() }) export type ListCommentsResponse = z.infer export const CompoundFilterSchema = z.object({ and: z.array(PropertyFilterSchema).optional(), or: z.array(PropertyFilterSchema).optional() }) export type CompoundFilter = z.infer export const QueryDatabaseParametersSchema = z.object({ sorts: z .array( z.union([ z.object({ property: z.string(), direction: z.enum(['ascending', 'descending']) }), z.object({ timestamp: z.enum(['created_time', 'last_edited_time']), direction: z.enum(['ascending', 'descending']) }) ]) ) .optional(), filter: z.union([PropertyFilterSchema, CompoundFilterSchema]).optional(), start_cursor: z.string().optional(), page_size: z.number().int().optional(), archived: z.boolean().optional() }) export type QueryDatabaseParameters = z.infer< typeof QueryDatabaseParametersSchema > export const DatabasePropertyConfigResponseSchema = z.union([ TitlePropertyResponseSchema, RichTextPropertyResponseSchema, NumberPropertyResponseSchema, SelectPropertyResponseSchema, MultiSelectPropertyResponseSchema, DatePropertyResponseSchema, PeoplePropertyResponseSchema, FilePropertyResponseSchema, CheckboxPropertyResponseSchema, UrlPropertyResponseSchema, EmailPropertyResponseSchema, PhoneNumberPropertyResponseSchema, FormulaPropertyResponseSchema, RelationPropertyResponseSchema, RollupPropertyResponseSchema, CreatedTimePropertyResponseSchema, CreatedByPropertyResponseSchema, LastEditedTimePropertyResponseSchema, LastEditedByPropertyResponseSchema ]) export type DatabasePropertyConfigResponse = z.infer< typeof DatabasePropertyConfigResponseSchema > export const PartialDatabaseObjectResponseSchema = z.object({ object: z.literal('database'), id: z.string(), properties: z.record(DatabasePropertyConfigResponseSchema) }) export type PartialDatabaseObjectResponse = z.infer< typeof PartialDatabaseObjectResponseSchema > export const DatabaseObjectResponseSchema = z.object({ object: z.literal('database'), id: z.string(), cover: z .union([ z.object({ type: z.literal('external'), external: z.object({ url: z.string() }) }), z.null() ]) .optional(), icon: z .union([ z.object({ type: z.literal('emoji'), emoji: z.string() }), z.object({ type: z.literal('external'), external: z.object({ url: z.string() }) }), z.null() ]) .optional(), created_time: z.string(), created_by: PartialUserObjectResponseSchema, last_edited_time: z.string(), last_edited_by: PartialUserObjectResponseSchema, title: z.array(RichTextItemResponseSchema), description: z.array(RichTextItemResponseSchema), is_inline: z.boolean(), properties: z.record(DatabasePropertyConfigResponseSchema), parent: z.union([ z.object({ type: z.literal('page_id'), page_id: z.string() }), z.object({ type: z.literal('workspace'), workspace: z.literal(true) }) ]), url: z.string(), archived: z.boolean() }) export type DatabaseObjectResponse = z.infer< typeof DatabaseObjectResponseSchema > export const ListDatabasesResponseSchema = z.object({ object: z.literal('list'), results: z.array( z.union([ PartialDatabaseObjectResponseSchema, DatabaseObjectResponseSchema ]) ), next_cursor: z.union([z.string(), z.null()]), has_more: z.boolean() }) export type ListDatabasesResponse = z.infer< typeof ListDatabasesResponseSchema > export const SearchResponseSchema = z.object({ object: z.literal('list'), results: z.array( z.union([ PageObjectResponseSchema, PartialPageObjectResponseSchema, PartialDatabaseObjectResponseSchema, DatabaseObjectResponseSchema ]) ), next_cursor: z.union([z.string(), z.null()]), has_more: z.boolean() }) export type SearchResponse = z.infer // ----------------------------------------------------------------------------- // Operation schemas // ----------------------------------------------------------------------------- export const GetSelfParamsSchema = z.object({}) export type GetSelfParams = z.infer export const GetSelfResponseSchema = UserObjectResponseSchema export type GetSelfResponse = z.infer export const GetUserParamsSchema = z.object({ user_id: z.string() }) export type GetUserParams = z.infer export const GetUserResponseSchema = UserObjectResponseSchema export type GetUserResponse = z.infer export const ListUsersParamsSchema = z.object({ start_cursor: z.string().optional(), page_size: z.number().int().optional() }) export type ListUsersParams = z.infer export const CreatePageParamsSchema = CreatePageParametersSchema export type CreatePageParams = z.infer export const CreatePageResponseSchema = z.union([ PageObjectResponseSchema, PartialPageObjectResponseSchema ]) export type CreatePageResponse = z.infer export const GetPageParamsSchema = z.object({ page_id: z.string(), filter_properties: z.array(z.string()).optional() }) export type GetPageParams = z.infer export const GetPageResponseSchema = z.union([ PageObjectResponseSchema, PartialPageObjectResponseSchema ]) export type GetPageResponse = z.infer export const UpdatePageParamsSchema = z .object({ page_id: z.string() }) .merge(UpdatePageParametersSchema) export type UpdatePageParams = z.infer export const UpdatePageResponseSchema = z.union([ PageObjectResponseSchema, PartialPageObjectResponseSchema ]) export type UpdatePageResponse = z.infer export const GetPagePropertyParamsSchema = z.object({ page_id: z.string(), property_id: z.string(), start_cursor: z.string().optional(), page_size: z.number().int().optional() }) export type GetPagePropertyParams = z.infer< typeof GetPagePropertyParamsSchema > export const GetPagePropertyResponseSchema = z.union([ PropertyItemObjectResponseSchema, PropertyItemListResponseSchema ]) export type GetPagePropertyResponse = z.infer< typeof GetPagePropertyResponseSchema > export const GetBlockParamsSchema = z.object({ block_id: z.string() }) export type GetBlockParams = z.infer export const GetBlockResponseSchema = z.union([ PartialBlockObjectResponseSchema, BlockObjectResponseSchema ]) export type GetBlockResponse = z.infer export const DeleteBlockParamsSchema = z.object({ block_id: z.string() }) export type DeleteBlockParams = z.infer export const DeleteBlockResponseSchema = z.union([ PartialBlockObjectResponseSchema, BlockObjectResponseSchema ]) export type DeleteBlockResponse = z.infer export const UpdateBlockParamsSchema = z .object({ block_id: z.string() }) .merge(UpdateBlockParametersSchema) export type UpdateBlockParams = z.infer export const UpdateBlockResponseSchema = z.union([ PartialBlockObjectResponseSchema, BlockObjectResponseSchema ]) export type UpdateBlockResponse = z.infer export const ListBlockChildrenParamsSchema = z.object({ block_id: z.string(), start_cursor: z.string().optional(), page_size: z.number().int().optional() }) export type ListBlockChildrenParams = z.infer< typeof ListBlockChildrenParamsSchema > export const AppendBlockChildrenParamsSchema = z .object({ block_id: z.string() }) .merge(AppendBlockChildrenParametersSchema) export type AppendBlockChildrenParams = z.infer< typeof AppendBlockChildrenParamsSchema > export const GetDatabaseParamsSchema = z.object({ database_id: z.string() }) export type GetDatabaseParams = z.infer export const GetDatabaseResponseSchema = z.union([ PartialDatabaseObjectResponseSchema, DatabaseObjectResponseSchema ]) export type GetDatabaseResponse = z.infer export const UpdateDatabaseParamsSchema = z .object({ database_id: z.string() }) .merge(UpdateDatabaseParametersSchema) export type UpdateDatabaseParams = z.infer export const UpdateDatabaseResponseSchema = z.union([ PartialDatabaseObjectResponseSchema, DatabaseObjectResponseSchema ]) export type UpdateDatabaseResponse = z.infer< typeof UpdateDatabaseResponseSchema > export const QueryDatabaseParamsSchema = z .object({ database_id: z.string(), filter_properties: z.array(z.string()).optional() }) .merge(QueryDatabaseParametersSchema) export type QueryDatabaseParams = z.infer export const ListDatabasesParamsSchema = z.object({ start_cursor: z.string().optional(), page_size: z.number().int().optional() }) export type ListDatabasesParams = z.infer export const CreateDatabaseParamsSchema = CreateDatabaseParametersSchema export type CreateDatabaseParams = z.infer export const CreateDatabaseResponseSchema = z.union([ PartialDatabaseObjectResponseSchema, DatabaseObjectResponseSchema ]) export type CreateDatabaseResponse = z.infer< typeof CreateDatabaseResponseSchema > export const SearchParamsSchema = SearchParametersSchema export type SearchParams = z.infer export const ListCommentsParamsSchema = z.object({ block_id: z.string(), start_cursor: z.string().optional(), page_size: z.number().int().optional() }) export type ListCommentsParams = z.infer export const CreateCommentParamsSchema = CreateCommentParametersSchema export type CreateCommentParams = z.infer export const CreateCommentResponseSchema = z.union([ CommentObjectResponseSchema, PartialCommentObjectResponseSchema ]) export type CreateCommentResponse = z.infer< typeof CreateCommentResponseSchema > export const OauthTokenParamsSchema = OauthTokenParametersSchema export type OauthTokenParams = z.infer }