From fadb1e498e13a7b8c1eba56c1643a80069b7bded Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 20 Sep 2022 11:24:54 +0100 Subject: [PATCH] Add operationIds to public API --- packages/server/specs/openapi.json | 22 + packages/server/specs/openapi.yaml | 22 + .../src/api/routes/public/applications.ts | 5 + .../server/src/api/routes/public/queries.ts | 2 + packages/server/src/api/routes/public/rows.ts | 5 + .../server/src/api/routes/public/tables.ts | 5 + .../server/src/api/routes/public/users.ts | 5 + packages/server/src/definitions/openapi.ts | 930 +++++++++--------- 8 files changed, 549 insertions(+), 447 deletions(-) diff --git a/packages/server/specs/openapi.json b/packages/server/specs/openapi.json index f8539b9f7f..37c636590b 100644 --- a/packages/server/specs/openapi.json +++ b/packages/server/specs/openapi.json @@ -1792,6 +1792,7 @@ "paths": { "/applications": { "post": { + "operationId": "createApplication", "summary": "Create an application", "tags": [ "applications" @@ -1832,6 +1833,7 @@ }, "/applications/{appId}": { "put": { + "operationId": "updateApplication", "summary": "Update an application", "tags": [ "applications" @@ -1870,6 +1872,7 @@ } }, "delete": { + "operationId": "deleteApplication", "summary": "Delete an application", "tags": [ "applications" @@ -1898,6 +1901,7 @@ } }, "get": { + "operationId": "getApplicationById", "summary": "Retrieve an application", "tags": [ "applications" @@ -1928,6 +1932,7 @@ }, "/applications/search": { "post": { + "operationId": "searchApplications", "summary": "Search for applications", "description": "Based on application properties (currently only name) search for applications.", "tags": [ @@ -1964,6 +1969,7 @@ }, "/queries/{queryId}": { "post": { + "operationId": "executeQuery", "summary": "Execute a query", "description": "Queries which have been created within a Budibase app can be executed using this,", "tags": [ @@ -2011,6 +2017,7 @@ }, "/queries/search": { "post": { + "operationId": "searchQueries", "summary": "Search for queries", "description": "Based on query properties (currently only name) search for queries.", "tags": [ @@ -2052,6 +2059,7 @@ }, "/tables/{tableId}/rows": { "post": { + "operationId": "createRow", "summary": "Create a row", "description": "Creates a row within the specified table.", "tags": [ @@ -2101,6 +2109,7 @@ }, "/tables/{tableId}/rows/{rowId}": { "put": { + "operationId": "updateRow", "summary": "Update a row", "description": "Updates a row within the specified table.", "tags": [ @@ -2151,6 +2160,7 @@ } }, "delete": { + "operationId": "deleteRow", "summary": "Delete a row", "description": "Deletes a row within the specified table.", "tags": [ @@ -2186,6 +2196,7 @@ } }, "get": { + "operationId": "getRowById", "summary": "Retrieve a row", "description": "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.", "tags": [ @@ -2223,6 +2234,7 @@ }, "/tables/{tableId}/rows/search": { "post": { + "operationId": "searchRows", "summary": "Search for rows", "tags": [ "rows" @@ -2266,6 +2278,7 @@ }, "/tables": { "post": { + "operationId": "createTable", "summary": "Create a table", "description": "Create a table, this could be internal or external.", "tags": [ @@ -2311,6 +2324,7 @@ }, "/tables/{tableId}": { "put": { + "operationId": "updateTable", "summary": "Update a table", "description": "Update a table, this could be internal or external.", "tags": [ @@ -2357,6 +2371,7 @@ } }, "delete": { + "operationId": "deleteTable", "summary": "Delete a table", "description": "Delete a table, this could be internal or external.", "tags": [ @@ -2389,6 +2404,7 @@ } }, "get": { + "operationId": "getTableById", "summary": "Retrieve a table", "description": "Lookup a table, this could be internal or external.", "tags": [ @@ -2423,6 +2439,7 @@ }, "/tables/search": { "post": { + "operationId": "searchTables", "summary": "Search for tables", "description": "Based on table properties (currently only name) search for tables. This could be an internal or an external table.", "tags": [ @@ -2464,6 +2481,7 @@ }, "/users": { "post": { + "operationId": "createUser", "summary": "Create a user", "tags": [ "users" @@ -2499,6 +2517,7 @@ }, "/users/{userId}": { "put": { + "operationId": "updateUser", "summary": "Update a user", "tags": [ "users" @@ -2537,6 +2556,7 @@ } }, "delete": { + "operationId": "deleteUser", "summary": "Delete a user", "tags": [ "users" @@ -2565,6 +2585,7 @@ } }, "get": { + "operationId": "getUserById", "summary": "Retrieve a user", "tags": [ "users" @@ -2595,6 +2616,7 @@ }, "/users/search": { "post": { + "operationId": "searchUsers", "summary": "Search for users", "description": "Based on user properties (currently only name) search for users.", "tags": [ diff --git a/packages/server/specs/openapi.yaml b/packages/server/specs/openapi.yaml index 3cd29791af..46a6e387e3 100644 --- a/packages/server/specs/openapi.yaml +++ b/packages/server/specs/openapi.yaml @@ -1370,6 +1370,7 @@ security: paths: /applications: post: + operationId: createApplication summary: Create an application tags: - applications @@ -1393,6 +1394,7 @@ paths: $ref: "#/components/examples/application" "/applications/{appId}": put: + operationId: updateApplication summary: Update an application tags: - applications @@ -1415,6 +1417,7 @@ paths: application: $ref: "#/components/examples/application" delete: + operationId: deleteApplication summary: Delete an application tags: - applications @@ -1431,6 +1434,7 @@ paths: application: $ref: "#/components/examples/application" get: + operationId: getApplicationById summary: Retrieve an application tags: - applications @@ -1448,6 +1452,7 @@ paths: $ref: "#/components/examples/application" /applications/search: post: + operationId: searchApplications summary: Search for applications description: Based on application properties (currently only name) search for applications. @@ -1472,6 +1477,7 @@ paths: $ref: "#/components/examples/applications" "/queries/{queryId}": post: + operationId: executeQuery summary: Execute a query description: Queries which have been created within a Budibase app can be executed using this, @@ -1500,6 +1506,7 @@ paths: $ref: "#/components/examples/sqlResponse" /queries/search: post: + operationId: searchQueries summary: Search for queries description: Based on query properties (currently only name) search for queries. tags: @@ -1524,6 +1531,7 @@ paths: $ref: "#/components/examples/queries" "/tables/{tableId}/rows": post: + operationId: createRow summary: Create a row description: Creates a row within the specified table. tags: @@ -1554,6 +1562,7 @@ paths: $ref: "#/components/examples/row" "/tables/{tableId}/rows/{rowId}": put: + operationId: updateRow summary: Update a row description: Updates a row within the specified table. tags: @@ -1583,6 +1592,7 @@ paths: row: $ref: "#/components/examples/row" delete: + operationId: deleteRow summary: Delete a row description: Deletes a row within the specified table. tags: @@ -1603,6 +1613,7 @@ paths: row: $ref: "#/components/examples/row" get: + operationId: getRowById summary: Retrieve a row description: This gets a single row, it will be enriched with the full related rows, rather than the squashed "primaryDisplay" format returned by the @@ -1625,6 +1636,7 @@ paths: $ref: "#/components/examples/enrichedRow" "/tables/{tableId}/rows/search": post: + operationId: searchRows summary: Search for rows tags: - rows @@ -1650,6 +1662,7 @@ paths: $ref: "#/components/examples/rows" /tables: post: + operationId: createTable summary: Create a table description: Create a table, this could be internal or external. tags: @@ -1677,6 +1690,7 @@ paths: $ref: "#/components/examples/table" "/tables/{tableId}": put: + operationId: updateTable summary: Update a table description: Update a table, this could be internal or external. tags: @@ -1703,6 +1717,7 @@ paths: table: $ref: "#/components/examples/table" delete: + operationId: deleteTable summary: Delete a table description: Delete a table, this could be internal or external. tags: @@ -1721,6 +1736,7 @@ paths: table: $ref: "#/components/examples/table" get: + operationId: getTableById summary: Retrieve a table description: Lookup a table, this could be internal or external. tags: @@ -1740,6 +1756,7 @@ paths: $ref: "#/components/examples/table" /tables/search: post: + operationId: searchTables summary: Search for tables description: Based on table properties (currently only name) search for tables. This could be an internal or an external table. @@ -1765,6 +1782,7 @@ paths: $ref: "#/components/examples/tables" /users: post: + operationId: createUser summary: Create a user tags: - users @@ -1786,6 +1804,7 @@ paths: $ref: "#/components/examples/user" "/users/{userId}": put: + operationId: updateUser summary: Update a user tags: - users @@ -1808,6 +1827,7 @@ paths: user: $ref: "#/components/examples/user" delete: + operationId: deleteUser summary: Delete a user tags: - users @@ -1824,6 +1844,7 @@ paths: user: $ref: "#/components/examples/user" get: + operationId: getUserById summary: Retrieve a user tags: - users @@ -1841,6 +1862,7 @@ paths: $ref: "#/components/examples/user" /users/search: post: + operationId: searchUsers summary: Search for users description: Based on user properties (currently only name) search for users. tags: diff --git a/packages/server/src/api/routes/public/applications.ts b/packages/server/src/api/routes/public/applications.ts index 05f56da7b0..c407156caf 100644 --- a/packages/server/src/api/routes/public/applications.ts +++ b/packages/server/src/api/routes/public/applications.ts @@ -9,6 +9,7 @@ const read = [], * @openapi * /applications: * post: + * operationId: createApplication * summary: Create an application * tags: * - applications @@ -41,6 +42,7 @@ write.push( * @openapi * /applications/{appId}: * put: + * operationId: updateApplication * summary: Update an application * tags: * - applications @@ -73,6 +75,7 @@ write.push( * @openapi * /applications/{appId}: * delete: + * operationId: deleteApplication * summary: Delete an application * tags: * - applications @@ -95,6 +98,7 @@ write.push(new Endpoint("delete", "/applications/:appId", controller.destroy)) * @openapi * /applications/{appId}: * get: + * operationId: getApplicationById * summary: Retrieve an application * tags: * - applications @@ -117,6 +121,7 @@ read.push(new Endpoint("get", "/applications/:appId", controller.read)) * @openapi * /applications/search: * post: + * operationId: searchApplications * summary: Search for applications * description: Based on application properties (currently only name) search for applications. * tags: diff --git a/packages/server/src/api/routes/public/queries.ts b/packages/server/src/api/routes/public/queries.ts index 9e5d73714e..b325c40a52 100644 --- a/packages/server/src/api/routes/public/queries.ts +++ b/packages/server/src/api/routes/public/queries.ts @@ -9,6 +9,7 @@ const read = [], * @openapi * /queries/{queryId}: * post: + * operationId: executeQuery * summary: Execute a query * description: Queries which have been created within a Budibase app can be executed using this, * tags: @@ -42,6 +43,7 @@ write.push(new Endpoint("post", "/queries/:queryId", controller.execute)) * @openapi * /queries/search: * post: + * operationId: searchQueries * summary: Search for queries * description: Based on query properties (currently only name) search for queries. * tags: diff --git a/packages/server/src/api/routes/public/rows.ts b/packages/server/src/api/routes/public/rows.ts index 80da073e3e..78dfbba6fd 100644 --- a/packages/server/src/api/routes/public/rows.ts +++ b/packages/server/src/api/routes/public/rows.ts @@ -9,6 +9,7 @@ const read = [], * @openapi * /tables/{tableId}/rows: * post: + * operationId: createRow * summary: Create a row * description: Creates a row within the specified table. * tags: @@ -43,6 +44,7 @@ write.push(new Endpoint("post", "/tables/:tableId/rows", controller.create)) * @openapi * /tables/{tableId}/rows/{rowId}: * put: + * operationId: updateRow * summary: Update a row * description: Updates a row within the specified table. * tags: @@ -79,6 +81,7 @@ write.push( * @openapi * /tables/{tableId}/rows/{rowId}: * delete: + * operationId: deleteRow * summary: Delete a row * description: Deletes a row within the specified table. * tags: @@ -106,6 +109,7 @@ write.push( * @openapi * /tables/{tableId}/rows/{rowId}: * get: + * operationId: getRowById * summary: Retrieve a row * description: 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. @@ -132,6 +136,7 @@ read.push(new Endpoint("get", "/tables/:tableId/rows/:rowId", controller.read)) * @openapi * /tables/{tableId}/rows/search: * post: + * operationId: searchRows * summary: Search for rows * tags: * - rows diff --git a/packages/server/src/api/routes/public/tables.ts b/packages/server/src/api/routes/public/tables.ts index 7e8ce29ae3..cc6408681e 100644 --- a/packages/server/src/api/routes/public/tables.ts +++ b/packages/server/src/api/routes/public/tables.ts @@ -9,6 +9,7 @@ const read = [], * @openapi * /tables: * post: + * operationId: createTable * summary: Create a table * description: Create a table, this could be internal or external. * tags: @@ -45,6 +46,7 @@ write.push( * @openapi * /tables/{tableId}: * put: + * operationId: updateTable * summary: Update a table * description: Update a table, this could be internal or external. * tags: @@ -81,6 +83,7 @@ write.push( * @openapi * /tables/{tableId}: * delete: + * operationId: deleteTable * summary: Delete a table * description: Delete a table, this could be internal or external. * tags: @@ -105,6 +108,7 @@ write.push(new Endpoint("delete", "/tables/:tableId", controller.destroy)) * @openapi * /tables/{tableId}: * get: + * operationId: getTableById * summary: Retrieve a table * description: Lookup a table, this could be internal or external. * tags: @@ -129,6 +133,7 @@ read.push(new Endpoint("get", "/tables/:tableId", controller.read)) * @openapi * /tables/search: * post: + * operationId: searchTables * summary: Search for tables * description: Based on table properties (currently only name) search for tables. This could be * an internal or an external table. diff --git a/packages/server/src/api/routes/public/users.ts b/packages/server/src/api/routes/public/users.ts index 06e17fba42..2be31b43d7 100644 --- a/packages/server/src/api/routes/public/users.ts +++ b/packages/server/src/api/routes/public/users.ts @@ -9,6 +9,7 @@ const read = [], * @openapi * /users: * post: + * operationId: createUser * summary: Create a user * tags: * - users @@ -35,6 +36,7 @@ write.push(new Endpoint("post", "/users", controller.create)) * @openapi * /users/{userId}: * put: + * operationId: updateUser * summary: Update a user * tags: * - users @@ -63,6 +65,7 @@ write.push(new Endpoint("put", "/users/:userId", controller.update)) * @openapi * /users/{userId}: * delete: + * operationId: deleteUser * summary: Delete a user * tags: * - users @@ -85,6 +88,7 @@ write.push(new Endpoint("delete", "/users/:userId", controller.destroy)) * @openapi * /users/{userId}: * get: + * operationId: getUserById * summary: Retrieve a user * tags: * - users @@ -107,6 +111,7 @@ read.push(new Endpoint("get", "/users/:userId", controller.read)) * @openapi * /users/search: * post: + * operationId: searchUsers * summary: Search for users * description: Based on user properties (currently only name) search for users. * tags: diff --git a/packages/server/src/definitions/openapi.ts b/packages/server/src/definitions/openapi.ts index a4bd0c1e3e..166ff9570e 100644 --- a/packages/server/src/definitions/openapi.ts +++ b/packages/server/src/definitions/openapi.ts @@ -5,491 +5,67 @@ 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"]; - }; - }; - }; + post: operations["createApplication"]; }; "/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"]; - }; - }; - }; - }; + get: operations["getApplicationById"]; + put: operations["updateApplication"]; + delete: operations["deleteApplication"]; }; "/applications/search": { /** Based on application properties (currently only name) search for applications. */ - post: { - 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"]; - }; - }; - }; + post: operations["searchApplications"]; }; "/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"]; - }; - }; - }; + post: operations["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"]; - }; - }; - }; + post: operations["searchQueries"]; }; "/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"]; - }; - }; - }; + post: operations["createRow"]; }; "/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"]; - }; - }; - }; - }; + get: operations["getRowById"]; /** 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"]; - }; - }; - }; + put: operations["updateRow"]; /** 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"]; - }; - }; - }; - }; + delete: operations["deleteRow"]; }; "/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": components["schemas"]["rowSearch"]; - }; - }; - }; + post: operations["searchRows"]; }; "/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"]; - }; - }; - }; + post: operations["createTable"]; }; "/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"]; - }; - }; - }; - }; + get: operations["getTableById"]; /** 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"]; - }; - }; - }; + put: operations["updateTable"]; /** 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"]; - }; - }; - }; - }; + delete: operations["deleteTable"]; }; "/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"]; - }; - }; - }; + post: operations["searchTables"]; }; "/users": { - post: { - responses: { - /** Returns the created user. */ - 200: { - content: { - "application/json": components["schemas"]["userOutput"]; - }; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["user"]; - }; - }; - }; + post: operations["createUser"]; }; "/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"]; - }; - }; - }; - }; + get: operations["getUserById"]; + put: operations["updateUser"]; + delete: operations["deleteUser"]; }; "/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"]; - }; - }; - }; + post: operations["searchUsers"]; }; } @@ -1127,6 +703,466 @@ export interface components { }; } -export interface operations {} +export interface operations { + createApplication: { + 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"]; + }; + }; + }; + getApplicationById: { + 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"]; + }; + }; + }; + }; + updateApplication: { + 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"]; + }; + }; + }; + deleteApplication: { + 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"]; + }; + }; + }; + }; + /** Based on application properties (currently only name) search for applications. */ + searchApplications: { + 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 which have been created within a Budibase app can be executed using this, */ + executeQuery: { + 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"]; + }; + }; + }; + /** Based on query properties (currently only name) search for queries. */ + searchQueries: { + 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"]; + }; + }; + }; + /** Creates a row within the specified table. */ + createRow: { + 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"]; + }; + }; + }; + /** 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. */ + getRowById: { + 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. */ + updateRow: { + 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. */ + deleteRow: { + 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"]; + }; + }; + }; + }; + searchRows: { + 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": components["schemas"]["rowSearch"]; + }; + }; + }; + /** Create a table, this could be internal or external. */ + createTable: { + 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"]; + }; + }; + }; + /** Lookup a table, this could be internal or external. */ + getTableById: { + 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. */ + updateTable: { + 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. */ + deleteTable: { + 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"]; + }; + }; + }; + }; + /** Based on table properties (currently only name) search for tables. This could be an internal or an external table. */ + searchTables: { + 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"]; + }; + }; + }; + createUser: { + responses: { + /** Returns the created user. */ + 200: { + content: { + "application/json": components["schemas"]["userOutput"]; + }; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["user"]; + }; + }; + }; + getUserById: { + 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"]; + }; + }; + }; + }; + updateUser: { + 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"]; + }; + }; + }; + deleteUser: { + 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"]; + }; + }; + }; + }; + /** Based on user properties (currently only name) search for users. */ + searchUsers: { + 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 external {}