/**
 * 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": components["schemas"]["applicationSearch"]
          }
        }
      }
      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": components["schemas"]["querySearch"]
          }
        }
      }
      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 datasources. */
        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": components["schemas"]["tableSearch"]
          }
        }
      }
      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": components["schemas"]["userSearch"]
          }
        }
      }
      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 }
      }
    }
    applicationSearch: {
      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]: unknown }
    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]: unknown }
    }
    /** @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
      }
    }
    tableSearch: {
      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]: unknown }
    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 datasource 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
    }
    querySearch: {
      data: {
        /** @description The ID of the query. */
        _id: string
        /** @description The ID of the datasource 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
      }
    }
    userSearch: {
      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 {}