/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ export interface paths { "/applications": { post: { parameters: { header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the created application. */ 200: { content: { "application/json": components["schemas"]["applicationOutput"] } } } requestBody: { content: { "application/json": components["schemas"]["application"] } } } } "/applications/{appId}": { get: { parameters: { path: { /** The ID of the app which this request is targeting. */ appId: components["parameters"]["appIdUrl"] } } responses: { /** Returns the retrieved application. */ 200: { content: { "application/json": components["schemas"]["applicationOutput"] } } } } put: { parameters: { path: { /** The ID of the app which this request is targeting. */ appId: components["parameters"]["appIdUrl"] } } responses: { /** Returns the updated application. */ 200: { content: { "application/json": components["schemas"]["applicationOutput"] } } } requestBody: { content: { "application/json": components["schemas"]["application"] } } } delete: { parameters: { path: { /** The ID of the app which this request is targeting. */ appId: components["parameters"]["appIdUrl"] } } responses: { /** Returns the deleted application. */ 200: { content: { "application/json": components["schemas"]["applicationOutput"] } } } } } "/applications/search": { /** Based on application properties (currently only name) search for applications. */ post: { parameters: { header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the applications that were found based on the search parameters. */ 200: { content: { "application/json": { data: components["schemas"]["application"][] } } } } requestBody: { content: { "application/json": components["schemas"]["nameSearch"] } } } } "/queries/{queryId}": { /** Queries which have been created within a Budibase app can be executed using this, */ post: { parameters: { path: { /** The ID of the query which this request is targeting. */ queryId: components["parameters"]["queryId"] } header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the result of the query execution. */ 200: { content: { "application/json": components["schemas"]["executeQueryOutput"] } } } requestBody: { content: { "application/json": components["schemas"]["executeQuery"] } } } } "/queries/search": { /** Based on query properties (currently only name) search for queries. */ post: { parameters: { header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the queries found based on the search parameters. */ 200: { content: { "application/json": { data: components["schemas"]["query"][] } } } } requestBody: { content: { "application/json": components["schemas"]["nameSearch"] } } } } "/tables/{tableId}/rows": { /** Creates a row within the specified table. */ post: { parameters: { path: { /** The ID of the table which this request is targeting. */ tableId: components["parameters"]["tableId"] } header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the created row, including the ID which has been generated for it. This can be found in the Budibase portal, viewed under the developer information. */ 200: { content: { "application/json": components["schemas"]["rowOutput"] } } } requestBody: { content: { "application/json": components["schemas"]["row"] } } } } "/tables/{tableId}/rows/{rowId}": { /** This gets a single row, it will be enriched with the full related rows, rather than the squashed "primaryDisplay" format returned by the search endpoint. */ get: { parameters: { path: { /** The ID of the table which this request is targeting. */ tableId: components["parameters"]["tableId"] /** The ID of the row which this request is targeting. */ rowId: components["parameters"]["rowId"] } header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the retrieved row. */ 200: { content: { "application/json": components["schemas"]["rowOutput"] } } } } /** Updates a row within the specified table. */ put: { parameters: { path: { /** The ID of the table which this request is targeting. */ tableId: components["parameters"]["tableId"] /** The ID of the row which this request is targeting. */ rowId: components["parameters"]["rowId"] } header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the created row, including the ID which has been generated for it. */ 200: { content: { "application/json": components["schemas"]["rowOutput"] } } } requestBody: { content: { "application/json": components["schemas"]["row"] } } } /** Deletes a row within the specified table. */ delete: { parameters: { path: { /** The ID of the table which this request is targeting. */ tableId: components["parameters"]["tableId"] /** The ID of the row which this request is targeting. */ rowId: components["parameters"]["rowId"] } header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the deleted row, including the ID which has been generated for it. */ 200: { content: { "application/json": components["schemas"]["rowOutput"] } } } } } "/tables/{tableId}/rows/search": { post: { parameters: { path: { /** The ID of the table which this request is targeting. */ tableId: components["parameters"]["tableId"] } header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** The response will contain an array of rows that match the search parameters. */ 200: { content: { "application/json": components["schemas"]["searchOutput"] } } } requestBody: { content: { "application/json": { query: { /** * @description A map of field name to the string to search for, this will look for rows that have a value starting with the string value. * @example [object Object] */ string?: { [key: string]: string } /** @description A fuzzy search, only supported by internal tables. */ fuzzy?: { [key: string]: unknown } /** * @description Searches within a range, the format of this must be columnName -> [low, high]. * @example [object Object] */ range?: { [key: string]: unknown } /** @description Searches for rows that have a column value that is exactly the value set. */ equal?: { [key: string]: unknown } /** @description Searches for any row which does not contain the specified column value. */ notEqual?: { [key: string]: unknown } /** * @description Searches for rows which do not contain the specified column. The object should simply contain keys of the column names, these can map to any value. * @example [object Object] */ empty?: { [key: string]: unknown } /** @description Searches for rows which have the specified column. */ notEmpty?: { [key: string]: unknown } /** @description Searches for rows which have a column value that is any of the specified values. The format of this must be columnName -> [value1, value2]. */ oneOf?: { [key: string]: unknown } } /** @description Enables pagination, by default this is disabled. */ paginate?: boolean /** @description If retrieving another page, the bookmark from the previous request must be supplied. */ bookmark?: string | number /** @description The maximum number of rows to return, useful when paginating, for internal tables this will be limited to 1000, for SQL tables it will be 5000. */ limit?: number /** @description A set of parameters describing the sort behaviour of the search. */ sort?: { /** * @description The order of the sort, by default this is ascending. * @enum {string} */ order?: "ascending" | "descending" /** @description The name of the column by which the rows will be sorted. */ column?: string /** * @description Defines whether the column should be treated as a string or as numbers when sorting. * @enum {string} */ type?: "string" | "number" } } } } } } "/tables": { /** Create a table, this could be internal or external. */ post: { parameters: { header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the created table, including the ID which has been generated for it. This can be internal or external data sources. */ 200: { content: { "application/json": components["schemas"]["tableOutput"] } } } requestBody: { content: { "application/json": components["schemas"]["table"] } } } } "/tables/{tableId}": { /** Lookup a table, this could be internal or external. */ get: { parameters: { path: { /** The ID of the table which this request is targeting. */ tableId: components["parameters"]["tableId"] } header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the retrieved table. */ 200: { content: { "application/json": components["schemas"]["tableOutput"] } } } } /** Update a table, this could be internal or external. */ put: { parameters: { path: { /** The ID of the table which this request is targeting. */ tableId: components["parameters"]["tableId"] } header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the updated table. */ 200: { content: { "application/json": components["schemas"]["tableOutput"] } } } requestBody: { content: { "application/json": components["schemas"]["table"] } } } /** Delete a table, this could be internal or external. */ delete: { parameters: { path: { /** The ID of the table which this request is targeting. */ tableId: components["parameters"]["tableId"] } header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the deleted table. */ 200: { content: { "application/json": components["schemas"]["tableOutput"] } } } } } "/tables/search": { /** Based on table properties (currently only name) search for tables. This could be an internal or an external table. */ post: { parameters: { header: { /** The ID of the app which this request is targeting. */ "x-budibase-app-id": components["parameters"]["appId"] } } responses: { /** Returns the found tables, based on the search parameters. */ 200: { content: { "application/json": { data: components["schemas"]["table"][] } } } } requestBody: { content: { "application/json": components["schemas"]["nameSearch"] } } } } "/users": { post: { responses: { /** Returns the created user. */ 200: { content: { "application/json": components["schemas"]["userOutput"] } } } requestBody: { content: { "application/json": components["schemas"]["user"] } } } } "/users/{userId}": { get: { parameters: { path: { /** The ID of the user which this request is targeting. */ userId: components["parameters"]["userId"] } } responses: { /** Returns the retrieved user. */ 200: { content: { "application/json": components["schemas"]["userOutput"] } } } } put: { parameters: { path: { /** The ID of the user which this request is targeting. */ userId: components["parameters"]["userId"] } } responses: { /** Returns the updated user. */ 200: { content: { "application/json": components["schemas"]["userOutput"] } } } requestBody: { content: { "application/json": components["schemas"]["user"] } } } delete: { parameters: { path: { /** The ID of the user which this request is targeting. */ userId: components["parameters"]["userId"] } } responses: { /** Returns the deleted user. */ 200: { content: { "application/json": components["schemas"]["userOutput"] } } } } } "/users/search": { /** Based on user properties (currently only name) search for users. */ post: { responses: { /** Returns the found users based on search parameters. */ 200: { content: { "application/json": { data: components["schemas"]["user"][] } } } } requestBody: { content: { "application/json": components["schemas"]["nameSearch"] } } } } } export interface components { schemas: { application: { /** @description The name of the app. */ name: string /** @description The URL by which the app is accessed, this must be URL encoded. */ url: string } applicationOutput: { data: { /** @description The name of the app. */ name: string /** @description The URL by which the app is accessed, this must be URL encoded. */ url: string /** @description The ID of the app. */ _id: string /** * @description The status of the app, stating it if is the development or published version. * @enum {string} */ status: "development" | "published" /** @description States when the app was created, will be constant. Stored in ISO format. */ createdAt: string /** @description States the last time the app was updated - stored in ISO format. */ updatedAt: string /** @description States the version of the Budibase client this app is currently based on. */ version: string /** @description In a multi-tenant environment this will state the tenant this app is within. */ tenantId?: string /** @description The user this app is currently being built by. */ lockedBy?: { [key: string]: unknown } } } /** @description The row to be created/updated, based on the table schema. */ row: { [key: string]: | string | { [key: string]: unknown } | number | unknown[] | boolean } searchOutput: { /** @description An array of rows, these will each contain an _id field which can be used to update or delete them. */ data: { [key: string]: unknown }[] /** @description If pagination in use, this should be provided. */ bookmark?: string | number /** @description If pagination in use, this will determine if there is another page to fetch. */ hasNextPage?: boolean } rowOutput: { /** @description The row to be created/updated, based on the table schema. */ data: { /** @description The ID of the row. */ _id: string /** @description The ID of the table this row comes from. */ tableId: string } & { [key: string]: | string | { [key: string]: unknown } | number | unknown[] | boolean } } /** @description The table to be created/updated. */ table: { /** @description The name of the table. */ name: string /** @description The name of the column which should be used in relationship tags when relating to this table. */ primaryDisplay?: string schema: { [key: string]: | { /** * @description A relationship column. * @enum {string} */ type?: "link" /** @description A constraint can be applied to the column which will be validated against when a row is saved. */ constraints?: { /** @enum {string} */ type?: "string" | "number" | "object" | "boolean" /** @description Defines whether the column is required or not. */ presence?: boolean } /** @description The name of the column. */ name?: string /** @description Defines whether the column is automatically generated. */ autocolumn?: boolean /** @description The name of the column which a relationship column is related to in another table. */ fieldName?: string /** @description The ID of the table which a relationship column is related to. */ tableId?: string /** * @description Defines the type of relationship that this column will be used for. * @enum {string} */ relationshipType?: "one-to-many" | "many-to-one" | "many-to-many" /** @description When using a SQL table that contains many to many relationships this defines the table the relationships are linked through. */ through?: string /** @description When using a SQL table that contains a one to many relationship this defines the foreign key. */ foreignKey?: string /** @description When using a SQL table that utilises a through table, this defines the primary key in the through table for this table. */ throughFrom?: string /** @description When using a SQL table that utilises a through table, this defines the primary key in the through table for the related table. */ throughTo?: string } | { /** * @description A formula column. * @enum {string} */ type?: "formula" /** @description A constraint can be applied to the column which will be validated against when a row is saved. */ constraints?: { /** @enum {string} */ type?: "string" | "number" | "object" | "boolean" /** @description Defines whether the column is required or not. */ presence?: boolean } /** @description The name of the column. */ name?: string /** @description Defines whether the column is automatically generated. */ autocolumn?: boolean /** @description Defines a Handlebars or JavaScript formula to use, note that Javascript formulas are expected to be provided in the base64 format. */ formula?: string /** * @description Defines whether this is a static or dynamic formula. * @enum {string} */ formulaType?: "static" | "dynamic" } | { /** * @description Defines the type of the column, most explain themselves, a link column is a relationship. * @enum {string} */ type?: | "string" | "longform" | "options" | "number" | "boolean" | "array" | "datetime" | "attachment" | "link" | "formula" | "auto" | "json" | "internal" /** @description A constraint can be applied to the column which will be validated against when a row is saved. */ constraints?: { /** @enum {string} */ type?: "string" | "number" | "object" | "boolean" /** @description Defines whether the column is required or not. */ presence?: boolean } /** @description The name of the column. */ name?: string /** @description Defines whether the column is automatically generated. */ autocolumn?: boolean } } } tableOutput: { /** @description The table to be created/updated. */ data: { /** @description The name of the table. */ name: string /** @description The name of the column which should be used in relationship tags when relating to this table. */ primaryDisplay?: string schema: { [key: string]: | { /** * @description A relationship column. * @enum {string} */ type?: "link" /** @description A constraint can be applied to the column which will be validated against when a row is saved. */ constraints?: { /** @enum {string} */ type?: "string" | "number" | "object" | "boolean" /** @description Defines whether the column is required or not. */ presence?: boolean } /** @description The name of the column. */ name?: string /** @description Defines whether the column is automatically generated. */ autocolumn?: boolean /** @description The name of the column which a relationship column is related to in another table. */ fieldName?: string /** @description The ID of the table which a relationship column is related to. */ tableId?: string /** * @description Defines the type of relationship that this column will be used for. * @enum {string} */ relationshipType?: | "one-to-many" | "many-to-one" | "many-to-many" /** @description When using a SQL table that contains many to many relationships this defines the table the relationships are linked through. */ through?: string /** @description When using a SQL table that contains a one to many relationship this defines the foreign key. */ foreignKey?: string /** @description When using a SQL table that utilises a through table, this defines the primary key in the through table for this table. */ throughFrom?: string /** @description When using a SQL table that utilises a through table, this defines the primary key in the through table for the related table. */ throughTo?: string } | { /** * @description A formula column. * @enum {string} */ type?: "formula" /** @description A constraint can be applied to the column which will be validated against when a row is saved. */ constraints?: { /** @enum {string} */ type?: "string" | "number" | "object" | "boolean" /** @description Defines whether the column is required or not. */ presence?: boolean } /** @description The name of the column. */ name?: string /** @description Defines whether the column is automatically generated. */ autocolumn?: boolean /** @description Defines a Handlebars or JavaScript formula to use, note that Javascript formulas are expected to be provided in the base64 format. */ formula?: string /** * @description Defines whether this is a static or dynamic formula. * @enum {string} */ formulaType?: "static" | "dynamic" } | { /** * @description Defines the type of the column, most explain themselves, a link column is a relationship. * @enum {string} */ type?: | "string" | "longform" | "options" | "number" | "boolean" | "array" | "datetime" | "attachment" | "link" | "formula" | "auto" | "json" | "internal" /** @description A constraint can be applied to the column which will be validated against when a row is saved. */ constraints?: { /** @enum {string} */ type?: "string" | "number" | "object" | "boolean" /** @description Defines whether the column is required or not. */ presence?: boolean } /** @description The name of the column. */ name?: string /** @description Defines whether the column is automatically generated. */ autocolumn?: boolean } } /** @description The ID of the table. */ _id: string } } /** @description The query body must contain the required parameters for the query, this depends on query type, setup and bindings. */ executeQuery: { [key: string]: | string | { [key: string]: unknown } | number | unknown[] | boolean } executeQueryOutput: { /** @description The data response from the query. */ data: { [key: string]: unknown }[] /** @description Extra information that is not part of the main data, e.g. headers. */ extra?: { /** @description If carrying out a REST request, this will contain the response headers. */ headers?: { [key: string]: unknown } /** @description The raw query response, as a string. */ raw?: string } /** @description If pagination is supported, this will contain the bookmark/anchor information for it. */ pagination?: { [key: string]: unknown } } query: { /** @description The ID of the query. */ _id: string /** @description The ID of the data source the query belongs to. */ datasourceId?: string /** @description The bindings which are required to perform this query. */ parameters?: string[] /** @description The fields that are used to perform this query, e.g. the sql statement */ fields?: { [key: string]: unknown } /** * @description The verb that describes this query. * @enum {undefined} */ queryVerb?: "create" | "read" | "update" | "delete" /** @description The name of the query. */ name: string /** @description The schema of the data returned when the query is executed. */ schema: { [key: string]: unknown } /** @description The JavaScript transformer function, applied after the query responds with data. */ transformer?: string /** @description Whether the query has readable data. */ readable?: boolean } user: { /** @description The email address of the user, this must be unique. */ email: string /** @description The password of the user if using password based login - this will never be returned. This can be left out of subsequent requests (updates) and will be enriched back into the user structure. */ password?: string /** * @description The status of the user, if they are active. * @enum {string} */ status?: "active" /** @description The first name of the user */ firstName?: string /** @description The last name of the user */ lastName?: string /** @description If set to true forces the user to reset their password on first login. */ forceResetPassword?: boolean /** @description Describes if the user is a builder user or not. */ builder?: { /** @description If set to true the user will be able to build any app in the system. */ global?: boolean } /** @description Describes if the user is an admin user or not. */ admin?: { /** @description If set to true the user will be able to administrate the system. */ global?: boolean } /** @description Contains the roles of the user per app (assuming they are not a builder user). */ roles: { [key: string]: string } } userOutput: { data: { /** @description The email address of the user, this must be unique. */ email: string /** @description The password of the user if using password based login - this will never be returned. This can be left out of subsequent requests (updates) and will be enriched back into the user structure. */ password?: string /** * @description The status of the user, if they are active. * @enum {string} */ status?: "active" /** @description The first name of the user */ firstName?: string /** @description The last name of the user */ lastName?: string /** @description If set to true forces the user to reset their password on first login. */ forceResetPassword?: boolean /** @description Describes if the user is a builder user or not. */ builder?: { /** @description If set to true the user will be able to build any app in the system. */ global?: boolean } /** @description Describes if the user is an admin user or not. */ admin?: { /** @description If set to true the user will be able to administrate the system. */ global?: boolean } /** @description Contains the roles of the user per app (assuming they are not a builder user). */ roles: { [key: string]: string } /** @description The ID of the user. */ _id: string } } nameSearch: { /** @description The name to be used when searching - this will be used in a case insensitive starts with match. */ name: string } } parameters: { /** @description The ID of the table which this request is targeting. */ tableId: string /** @description The ID of the row which this request is targeting. */ rowId: string /** @description The ID of the app which this request is targeting. */ appId: string /** @description The ID of the app which this request is targeting. */ appIdUrl: string /** @description The ID of the query which this request is targeting. */ queryId: string /** @description The ID of the user which this request is targeting. */ userId: string } } export interface operations {} export interface external {}