UNPKG

appwrite-utils

Version:
631 lines (630 loc) 26.8 kB
/** * @fileoverview Strict Zod schema mirroring the official Appwrite CLI's * `appwrite.config.json` format (CLI v20+). * * The schemas here are intentionally a faithful, STRICT mirror of the source * of truth at `lib/commands/config.ts` in `appwrite-cli`. Unknown keys are * rejected on every object (`.strict()`), so that AppwriteUtils-specific * extensions cannot leak into a file that the official CLI is expected to * consume. * * Where AppwriteUtils already defines a richer schema for the same resource * (e.g. `BucketSchema`, `AppwriteFunctionSchema`), we intentionally define a * fresh, minimal schema here rather than `.omit()`-ing the extras. The two * shapes diverge in non-trivial ways (e.g. `permissions` vs `$permissions`, * `dirPath` vs `path`), and reusing them via omit would require many small * adjustments that obscure the parity with the official source. Keeping * these definitions inline makes the official contract easy to audit. * * If you need to extend a resource shape with AppwriteUtils-specific fields, * do that in `./utilsExtensionConfig.ts` instead. */ import { z } from "zod"; export declare const SettingsSchema: z.ZodObject<{ services: z.ZodOptional<z.ZodObject<{ account: z.ZodOptional<z.ZodBoolean>; avatars: z.ZodOptional<z.ZodBoolean>; databases: z.ZodOptional<z.ZodBoolean>; locale: z.ZodOptional<z.ZodBoolean>; health: z.ZodOptional<z.ZodBoolean>; storage: z.ZodOptional<z.ZodBoolean>; teams: z.ZodOptional<z.ZodBoolean>; users: z.ZodOptional<z.ZodBoolean>; sites: z.ZodOptional<z.ZodBoolean>; functions: z.ZodOptional<z.ZodBoolean>; graphql: z.ZodOptional<z.ZodBoolean>; messaging: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; protocols: z.ZodOptional<z.ZodObject<{ rest: z.ZodOptional<z.ZodBoolean>; graphql: z.ZodOptional<z.ZodBoolean>; websocket: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; auth: z.ZodOptional<z.ZodObject<{ methods: z.ZodOptional<z.ZodObject<{ jwt: z.ZodOptional<z.ZodBoolean>; phone: z.ZodOptional<z.ZodBoolean>; invites: z.ZodOptional<z.ZodBoolean>; anonymous: z.ZodOptional<z.ZodBoolean>; "email-otp": z.ZodOptional<z.ZodBoolean>; "magic-url": z.ZodOptional<z.ZodBoolean>; "email-password": z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; security: z.ZodOptional<z.ZodObject<{ duration: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; limit: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; sessionsLimit: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; passwordHistory: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; passwordDictionary: z.ZodOptional<z.ZodBoolean>; personalDataCheck: z.ZodOptional<z.ZodBoolean>; sessionAlerts: z.ZodOptional<z.ZodBoolean>; mockNumbers: z.ZodOptional<z.ZodArray<z.ZodObject<{ phone: z.ZodString; otp: z.ZodString; }, z.core.$strict>>>; }, z.core.$strict>>; }, z.core.$strict>>; }, z.core.$strict>; export declare const SiteSchema: z.ZodObject<{ path: z.ZodOptional<z.ZodString>; $id: z.ZodString; name: z.ZodString; logging: z.ZodOptional<z.ZodBoolean>; timeout: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; framework: z.ZodOptional<z.ZodString>; buildRuntime: z.ZodOptional<z.ZodString>; adapter: z.ZodOptional<z.ZodString>; installCommand: z.ZodOptional<z.ZodString>; buildCommand: z.ZodOptional<z.ZodString>; outputDirectory: z.ZodOptional<z.ZodString>; fallbackFile: z.ZodOptional<z.ZodString>; buildSpecification: z.ZodOptional<z.ZodString>; runtimeSpecification: z.ZodOptional<z.ZodString>; deploymentRetention: z.ZodOptional<z.ZodNumber>; startCommand: z.ZodOptional<z.ZodString>; vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, z.core.$strict>; export declare const FunctionSchema: z.ZodObject<{ path: z.ZodOptional<z.ZodString>; $id: z.ZodString; execute: z.ZodOptional<z.ZodArray<z.ZodString>>; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; logging: z.ZodOptional<z.ZodBoolean>; runtime: z.ZodString; buildSpecification: z.ZodOptional<z.ZodString>; runtimeSpecification: z.ZodOptional<z.ZodString>; deploymentRetention: z.ZodOptional<z.ZodNumber>; scopes: z.ZodOptional<z.ZodArray<z.ZodString>>; events: z.ZodOptional<z.ZodArray<z.ZodString>>; schedule: z.ZodOptional<z.ZodString>; timeout: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; entrypoint: z.ZodOptional<z.ZodString>; commands: z.ZodOptional<z.ZodString>; vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; ignore: z.ZodOptional<z.ZodString>; }, z.core.$strict>; export declare const DatabaseSchema: z.ZodObject<{ $id: z.ZodString; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>; export declare const AttributeSchema: z.ZodObject<{ key: z.ZodString; type: z.ZodEnum<{ string: "string"; bigint: "bigint"; boolean: "boolean"; datetime: "datetime"; integer: "integer"; double: "double"; relationship: "relationship"; varchar: "varchar"; text: "text"; mediumtext: "mediumtext"; longtext: "longtext"; point: "point"; polygon: "polygon"; linestring: "linestring"; }>; required: z.ZodOptional<z.ZodBoolean>; array: z.ZodOptional<z.ZodBoolean>; size: z.ZodOptional<z.ZodNumber>; default: z.ZodOptional<z.ZodAny>; min: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; max: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; format: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{ enum: "enum"; email: "email"; ip: "ip"; url: "url"; datetime: "datetime"; }>, z.ZodLiteral<"">]>>; elements: z.ZodOptional<z.ZodArray<z.ZodString>>; relatedCollection: z.ZodOptional<z.ZodString>; relatedTable: z.ZodOptional<z.ZodString>; relationType: z.ZodOptional<z.ZodString>; twoWay: z.ZodOptional<z.ZodBoolean>; twoWayKey: z.ZodOptional<z.ZodString>; onDelete: z.ZodOptional<z.ZodString>; side: z.ZodOptional<z.ZodString>; attributes: z.ZodOptional<z.ZodArray<z.ZodString>>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; encrypt: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>; export declare const IndexSchema: z.ZodObject<{ key: z.ZodString; type: z.ZodString; status: z.ZodOptional<z.ZodString>; attributes: z.ZodArray<z.ZodString>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>; export declare const CollectionSchema: z.ZodObject<{ $id: z.ZodString; $permissions: z.ZodOptional<z.ZodArray<z.ZodString>>; databaseId: z.ZodString; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; documentSecurity: z.ZodDefault<z.ZodBoolean>; attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{ key: z.ZodString; type: z.ZodEnum<{ string: "string"; bigint: "bigint"; boolean: "boolean"; datetime: "datetime"; integer: "integer"; double: "double"; relationship: "relationship"; varchar: "varchar"; text: "text"; mediumtext: "mediumtext"; longtext: "longtext"; point: "point"; polygon: "polygon"; linestring: "linestring"; }>; required: z.ZodOptional<z.ZodBoolean>; array: z.ZodOptional<z.ZodBoolean>; size: z.ZodOptional<z.ZodNumber>; default: z.ZodOptional<z.ZodAny>; min: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; max: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; format: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{ enum: "enum"; email: "email"; ip: "ip"; url: "url"; datetime: "datetime"; }>, z.ZodLiteral<"">]>>; elements: z.ZodOptional<z.ZodArray<z.ZodString>>; relatedCollection: z.ZodOptional<z.ZodString>; relatedTable: z.ZodOptional<z.ZodString>; relationType: z.ZodOptional<z.ZodString>; twoWay: z.ZodOptional<z.ZodBoolean>; twoWayKey: z.ZodOptional<z.ZodString>; onDelete: z.ZodOptional<z.ZodString>; side: z.ZodOptional<z.ZodString>; attributes: z.ZodOptional<z.ZodArray<z.ZodString>>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; encrypt: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>>; indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{ key: z.ZodString; type: z.ZodString; status: z.ZodOptional<z.ZodString>; attributes: z.ZodArray<z.ZodString>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>; }, z.core.$strict>; export declare const ColumnSchema: z.ZodObject<{ key: z.ZodString; type: z.ZodEnum<{ string: "string"; bigint: "bigint"; boolean: "boolean"; datetime: "datetime"; integer: "integer"; double: "double"; relationship: "relationship"; varchar: "varchar"; text: "text"; mediumtext: "mediumtext"; longtext: "longtext"; point: "point"; polygon: "polygon"; linestring: "linestring"; }>; required: z.ZodOptional<z.ZodBoolean>; array: z.ZodOptional<z.ZodBoolean>; size: z.ZodOptional<z.ZodNumber>; default: z.ZodOptional<z.ZodAny>; min: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; max: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; format: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{ enum: "enum"; email: "email"; ip: "ip"; url: "url"; datetime: "datetime"; }>, z.ZodLiteral<"">]>>; elements: z.ZodOptional<z.ZodArray<z.ZodString>>; relatedTable: z.ZodOptional<z.ZodString>; relationType: z.ZodOptional<z.ZodString>; twoWay: z.ZodOptional<z.ZodBoolean>; twoWayKey: z.ZodOptional<z.ZodString>; onDelete: z.ZodOptional<z.ZodString>; side: z.ZodOptional<z.ZodString>; columns: z.ZodOptional<z.ZodArray<z.ZodString>>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; encrypt: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>; export declare const IndexTableSchema: z.ZodObject<{ key: z.ZodString; type: z.ZodString; status: z.ZodOptional<z.ZodString>; columns: z.ZodArray<z.ZodString>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>; export declare const TableSchema: z.ZodObject<{ $id: z.ZodString; $permissions: z.ZodOptional<z.ZodArray<z.ZodString>>; databaseId: z.ZodString; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; rowSecurity: z.ZodDefault<z.ZodBoolean>; columns: z.ZodOptional<z.ZodArray<z.ZodObject<{ key: z.ZodString; type: z.ZodEnum<{ string: "string"; bigint: "bigint"; boolean: "boolean"; datetime: "datetime"; integer: "integer"; double: "double"; relationship: "relationship"; varchar: "varchar"; text: "text"; mediumtext: "mediumtext"; longtext: "longtext"; point: "point"; polygon: "polygon"; linestring: "linestring"; }>; required: z.ZodOptional<z.ZodBoolean>; array: z.ZodOptional<z.ZodBoolean>; size: z.ZodOptional<z.ZodNumber>; default: z.ZodOptional<z.ZodAny>; min: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; max: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; format: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{ enum: "enum"; email: "email"; ip: "ip"; url: "url"; datetime: "datetime"; }>, z.ZodLiteral<"">]>>; elements: z.ZodOptional<z.ZodArray<z.ZodString>>; relatedTable: z.ZodOptional<z.ZodString>; relationType: z.ZodOptional<z.ZodString>; twoWay: z.ZodOptional<z.ZodBoolean>; twoWayKey: z.ZodOptional<z.ZodString>; onDelete: z.ZodOptional<z.ZodString>; side: z.ZodOptional<z.ZodString>; columns: z.ZodOptional<z.ZodArray<z.ZodString>>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; encrypt: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>>; indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{ key: z.ZodString; type: z.ZodString; status: z.ZodOptional<z.ZodString>; columns: z.ZodArray<z.ZodString>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>; }, z.core.$strict>; export declare const BucketSchema: z.ZodObject<{ $id: z.ZodString; $permissions: z.ZodOptional<z.ZodArray<z.ZodString>>; fileSecurity: z.ZodOptional<z.ZodBoolean>; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; maximumFileSize: z.ZodOptional<z.ZodNumber>; allowedFileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>; compression: z.ZodOptional<z.ZodString>; encryption: z.ZodOptional<z.ZodBoolean>; antivirus: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>; export declare const TeamSchema: z.ZodObject<{ $id: z.ZodString; name: z.ZodString; }, z.core.$strict>; export declare const WebhookSchema: z.ZodObject<{ $id: z.ZodString; name: z.ZodString; url: z.ZodString; events: z.ZodArray<z.ZodString>; enabled: z.ZodOptional<z.ZodBoolean>; tls: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>; export declare const TopicSchema: z.ZodObject<{ $id: z.ZodString; name: z.ZodString; subscribe: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>; export declare const MessageSchema: z.ZodObject<{ $id: z.ZodString; name: z.ZodString; emailTotal: z.ZodOptional<z.ZodNumber>; smsTotal: z.ZodOptional<z.ZodNumber>; pushTotal: z.ZodOptional<z.ZodNumber>; subscribe: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>; export declare const AppwriteOfficialConfigSchema: z.ZodObject<{ projectId: z.ZodString; projectName: z.ZodOptional<z.ZodString>; endpoint: z.ZodOptional<z.ZodString>; settings: z.ZodOptional<z.ZodObject<{ services: z.ZodOptional<z.ZodObject<{ account: z.ZodOptional<z.ZodBoolean>; avatars: z.ZodOptional<z.ZodBoolean>; databases: z.ZodOptional<z.ZodBoolean>; locale: z.ZodOptional<z.ZodBoolean>; health: z.ZodOptional<z.ZodBoolean>; storage: z.ZodOptional<z.ZodBoolean>; teams: z.ZodOptional<z.ZodBoolean>; users: z.ZodOptional<z.ZodBoolean>; sites: z.ZodOptional<z.ZodBoolean>; functions: z.ZodOptional<z.ZodBoolean>; graphql: z.ZodOptional<z.ZodBoolean>; messaging: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; protocols: z.ZodOptional<z.ZodObject<{ rest: z.ZodOptional<z.ZodBoolean>; graphql: z.ZodOptional<z.ZodBoolean>; websocket: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; auth: z.ZodOptional<z.ZodObject<{ methods: z.ZodOptional<z.ZodObject<{ jwt: z.ZodOptional<z.ZodBoolean>; phone: z.ZodOptional<z.ZodBoolean>; invites: z.ZodOptional<z.ZodBoolean>; anonymous: z.ZodOptional<z.ZodBoolean>; "email-otp": z.ZodOptional<z.ZodBoolean>; "magic-url": z.ZodOptional<z.ZodBoolean>; "email-password": z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>; security: z.ZodOptional<z.ZodObject<{ duration: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; limit: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; sessionsLimit: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; passwordHistory: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; passwordDictionary: z.ZodOptional<z.ZodBoolean>; personalDataCheck: z.ZodOptional<z.ZodBoolean>; sessionAlerts: z.ZodOptional<z.ZodBoolean>; mockNumbers: z.ZodOptional<z.ZodArray<z.ZodObject<{ phone: z.ZodString; otp: z.ZodString; }, z.core.$strict>>>; }, z.core.$strict>>; }, z.core.$strict>>; }, z.core.$strict>>; includes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; functions: z.ZodOptional<z.ZodArray<z.ZodObject<{ path: z.ZodOptional<z.ZodString>; $id: z.ZodString; execute: z.ZodOptional<z.ZodArray<z.ZodString>>; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; logging: z.ZodOptional<z.ZodBoolean>; runtime: z.ZodString; buildSpecification: z.ZodOptional<z.ZodString>; runtimeSpecification: z.ZodOptional<z.ZodString>; deploymentRetention: z.ZodOptional<z.ZodNumber>; scopes: z.ZodOptional<z.ZodArray<z.ZodString>>; events: z.ZodOptional<z.ZodArray<z.ZodString>>; schedule: z.ZodOptional<z.ZodString>; timeout: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; entrypoint: z.ZodOptional<z.ZodString>; commands: z.ZodOptional<z.ZodString>; vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; ignore: z.ZodOptional<z.ZodString>; }, z.core.$strict>>>; sites: z.ZodOptional<z.ZodArray<z.ZodObject<{ path: z.ZodOptional<z.ZodString>; $id: z.ZodString; name: z.ZodString; logging: z.ZodOptional<z.ZodBoolean>; timeout: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt]>>; framework: z.ZodOptional<z.ZodString>; buildRuntime: z.ZodOptional<z.ZodString>; adapter: z.ZodOptional<z.ZodString>; installCommand: z.ZodOptional<z.ZodString>; buildCommand: z.ZodOptional<z.ZodString>; outputDirectory: z.ZodOptional<z.ZodString>; fallbackFile: z.ZodOptional<z.ZodString>; buildSpecification: z.ZodOptional<z.ZodString>; runtimeSpecification: z.ZodOptional<z.ZodString>; deploymentRetention: z.ZodOptional<z.ZodNumber>; startCommand: z.ZodOptional<z.ZodString>; vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, z.core.$strict>>>; databases: z.ZodOptional<z.ZodArray<z.ZodObject<{ $id: z.ZodString; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>>; collections: z.ZodOptional<z.ZodArray<z.ZodObject<{ $id: z.ZodString; $permissions: z.ZodOptional<z.ZodArray<z.ZodString>>; databaseId: z.ZodString; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; documentSecurity: z.ZodDefault<z.ZodBoolean>; attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{ key: z.ZodString; type: z.ZodEnum<{ string: "string"; bigint: "bigint"; boolean: "boolean"; datetime: "datetime"; integer: "integer"; double: "double"; relationship: "relationship"; varchar: "varchar"; text: "text"; mediumtext: "mediumtext"; longtext: "longtext"; point: "point"; polygon: "polygon"; linestring: "linestring"; }>; required: z.ZodOptional<z.ZodBoolean>; array: z.ZodOptional<z.ZodBoolean>; size: z.ZodOptional<z.ZodNumber>; default: z.ZodOptional<z.ZodAny>; min: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; max: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; format: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{ enum: "enum"; email: "email"; ip: "ip"; url: "url"; datetime: "datetime"; }>, z.ZodLiteral<"">]>>; elements: z.ZodOptional<z.ZodArray<z.ZodString>>; relatedCollection: z.ZodOptional<z.ZodString>; relatedTable: z.ZodOptional<z.ZodString>; relationType: z.ZodOptional<z.ZodString>; twoWay: z.ZodOptional<z.ZodBoolean>; twoWayKey: z.ZodOptional<z.ZodString>; onDelete: z.ZodOptional<z.ZodString>; side: z.ZodOptional<z.ZodString>; attributes: z.ZodOptional<z.ZodArray<z.ZodString>>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; encrypt: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>>; indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{ key: z.ZodString; type: z.ZodString; status: z.ZodOptional<z.ZodString>; attributes: z.ZodArray<z.ZodString>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>; }, z.core.$strict>>>; tablesDB: z.ZodOptional<z.ZodArray<z.ZodObject<{ $id: z.ZodString; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>>; tables: z.ZodOptional<z.ZodArray<z.ZodObject<{ $id: z.ZodString; $permissions: z.ZodOptional<z.ZodArray<z.ZodString>>; databaseId: z.ZodString; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; rowSecurity: z.ZodDefault<z.ZodBoolean>; columns: z.ZodOptional<z.ZodArray<z.ZodObject<{ key: z.ZodString; type: z.ZodEnum<{ string: "string"; bigint: "bigint"; boolean: "boolean"; datetime: "datetime"; integer: "integer"; double: "double"; relationship: "relationship"; varchar: "varchar"; text: "text"; mediumtext: "mediumtext"; longtext: "longtext"; point: "point"; polygon: "polygon"; linestring: "linestring"; }>; required: z.ZodOptional<z.ZodBoolean>; array: z.ZodOptional<z.ZodBoolean>; size: z.ZodOptional<z.ZodNumber>; default: z.ZodOptional<z.ZodAny>; min: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; max: z.ZodPreprocess<z.ZodOptional<z.ZodNullable<z.ZodBigInt>>>; format: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{ enum: "enum"; email: "email"; ip: "ip"; url: "url"; datetime: "datetime"; }>, z.ZodLiteral<"">]>>; elements: z.ZodOptional<z.ZodArray<z.ZodString>>; relatedTable: z.ZodOptional<z.ZodString>; relationType: z.ZodOptional<z.ZodString>; twoWay: z.ZodOptional<z.ZodBoolean>; twoWayKey: z.ZodOptional<z.ZodString>; onDelete: z.ZodOptional<z.ZodString>; side: z.ZodOptional<z.ZodString>; columns: z.ZodOptional<z.ZodArray<z.ZodString>>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; encrypt: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>>; indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{ key: z.ZodString; type: z.ZodString; status: z.ZodOptional<z.ZodString>; columns: z.ZodArray<z.ZodString>; orders: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>; }, z.core.$strict>>>; buckets: z.ZodOptional<z.ZodArray<z.ZodObject<{ $id: z.ZodString; $permissions: z.ZodOptional<z.ZodArray<z.ZodString>>; fileSecurity: z.ZodOptional<z.ZodBoolean>; name: z.ZodString; enabled: z.ZodOptional<z.ZodBoolean>; maximumFileSize: z.ZodOptional<z.ZodNumber>; allowedFileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>; compression: z.ZodOptional<z.ZodString>; encryption: z.ZodOptional<z.ZodBoolean>; antivirus: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>>; teams: z.ZodOptional<z.ZodArray<z.ZodObject<{ $id: z.ZodString; name: z.ZodString; }, z.core.$strict>>>; webhooks: z.ZodOptional<z.ZodArray<z.ZodObject<{ $id: z.ZodString; name: z.ZodString; url: z.ZodString; events: z.ZodArray<z.ZodString>; enabled: z.ZodOptional<z.ZodBoolean>; tls: z.ZodOptional<z.ZodBoolean>; }, z.core.$strict>>>; topics: z.ZodOptional<z.ZodArray<z.ZodObject<{ $id: z.ZodString; name: z.ZodString; subscribe: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>; messages: z.ZodOptional<z.ZodArray<z.ZodObject<{ $id: z.ZodString; name: z.ZodString; emailTotal: z.ZodOptional<z.ZodNumber>; smsTotal: z.ZodOptional<z.ZodNumber>; pushTotal: z.ZodOptional<z.ZodNumber>; subscribe: z.ZodOptional<z.ZodArray<z.ZodString>>; }, z.core.$strict>>>; }, z.core.$strict>; export type AppwriteOfficialConfig = z.infer<typeof AppwriteOfficialConfigSchema>; export type OfficialSettings = z.infer<typeof SettingsSchema>; export type OfficialSite = z.infer<typeof SiteSchema>; export type OfficialFunction = z.infer<typeof FunctionSchema>; export type OfficialDatabase = z.infer<typeof DatabaseSchema>; export type OfficialCollection = z.infer<typeof CollectionSchema>; export type OfficialAttribute = z.infer<typeof AttributeSchema>; export type OfficialIndex = z.infer<typeof IndexSchema>; export type OfficialTable = z.infer<typeof TableSchema>; export type OfficialColumn = z.infer<typeof ColumnSchema>; export type OfficialTableIndex = z.infer<typeof IndexTableSchema>; export type OfficialBucket = z.infer<typeof BucketSchema>; export type OfficialTeam = z.infer<typeof TeamSchema>; export type OfficialWebhook = z.infer<typeof WebhookSchema>; export type OfficialTopic = z.infer<typeof TopicSchema>; export type OfficialMessage = z.infer<typeof MessageSchema>;