openapi: 3.2.0 info: title: Huma Platform Builder API version: 1.0.0 description: Huma Platform servers: - url: https://workspace-gcp-uk.api.huma.com/api/integration/v1 description: Base URL declared by the provider in apis.yml (roadmap#122). tags: - name: Builder paths: /api/sdk/v1/deployment/{deployment_id}/builder/tabs: post: operationId: api_sdk_v1_deployment_builder_tabs_create_[add_tab] description: 'Add Tab Adds a new tab to the builder for the specified deployment.' summary: Add Tab parameters: - in: path name: deployment_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Builder requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateTabRequestObjectDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateTabRequestObjectDRF' multipart/form-data: schema: $ref: '#/components/schemas/CreateTabRequestObjectDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ResultIdResponseObjectDRF' description: '' /api/sdk/v1/deployment/{deployment_id}/builder/tabs/{tab_id}: put: operationId: api_sdk_v1_deployment_builder_tabs_update_[update_tab] description: 'Update Tab Updates an existing tab in the builder for the specified deployment.' summary: Update Tab parameters: - in: path name: deployment_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: tab_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Builder requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateTabRequestDataDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UpdateTabRequestDataDRF' multipart/form-data: schema: $ref: '#/components/schemas/UpdateTabRequestDataDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ResultIdResponseObjectDRF' description: '' delete: operationId: api_sdk_v1_deployment_builder_tabs_destroy_[remove_tab] description: 'Remove Tab Removes a specific tab from the builder for the specified deployment.' summary: Remove Tab parameters: - in: path name: deployment_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: tab_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Builder security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '204': description: No response body /api/sdk/v1/deployment/{deployment_id}/builder/tabs/{tab_id}/widgets: post: operationId: api_sdk_v1_deployment_builder_tabs_widgets_create_[add_widget] description: 'Add Widget Adds a new widget to the specified tab in the builder.' summary: Add Widget parameters: - in: path name: deployment_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: tab_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Builder requestBody: content: application/json: schema: $ref: '#/components/schemas/BaseWidgetRequestObjectDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BaseWidgetRequestObjectDRF' multipart/form-data: schema: $ref: '#/components/schemas/BaseWidgetRequestObjectDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ResultIdResponseObjectDRF' description: '' /api/sdk/v1/deployment/{deployment_id}/builder/tabs/{tab_id}/widgets/{widget_id}: put: operationId: api_sdk_v1_deployment_builder_tabs_widgets_update_[update_widget] description: 'Update Widget Updates an existing widget in the specified tab.' summary: Update Widget parameters: - in: path name: deployment_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: tab_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: widget_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Builder requestBody: content: application/json: schema: $ref: '#/components/schemas/BaseWidgetRequestObjectDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BaseWidgetRequestObjectDRF' multipart/form-data: schema: $ref: '#/components/schemas/BaseWidgetRequestObjectDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ResultIdResponseObjectDRF' description: '' delete: operationId: api_sdk_v1_deployment_builder_tabs_widgets_destroy_[remove_widget] description: 'Remove Widget Removes a specific widget from the specified tab.' summary: Remove Widget parameters: - in: path name: deployment_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: tab_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: widget_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Builder security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '204': description: No response body /api/sdk/v1/deployment/{deployment_id}/builder/tabs/{tab_id}/widgets/reorder: put: operationId: api_sdk_v1_deployment_builder_tabs_widgets_reorder_update_[reorder_widgets] description: 'Reorder Widgets Changes the order of multiple widgets within a tab in the builder interface at once.' summary: Reorder Widgets parameters: - in: path name: deployment_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: tab_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Builder requestBody: content: application/json: schema: $ref: '#/components/schemas/ReorderWidgetsRequestObjectDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ReorderWidgetsRequestObjectDRF' multipart/form-data: schema: $ref: '#/components/schemas/ReorderWidgetsRequestObjectDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OkResponseDRF' description: '' /api/sdk/v1/deployment/{deployment_id}/builder/tabs/reorder: put: operationId: api_sdk_v1_deployment_builder_tabs_reorder_update_[reorder_tabs] description: 'Reorder Tabs Changes the order of multiple tabs in the builder interface at once.' summary: Reorder Tabs parameters: - in: path name: deployment_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Builder requestBody: content: application/json: schema: $ref: '#/components/schemas/ReorderTabsRequestObjectDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ReorderTabsRequestObjectDRF' multipart/form-data: schema: $ref: '#/components/schemas/ReorderTabsRequestObjectDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OkResponseDRF' description: '' /api/sdk/v1/deployment/{deployment_id}/builder/widgets/move: post: operationId: api_sdk_v1_deployment_builder_widgets_move_create_[move_widget] description: 'Move Widget Moves a widget from one tab to another within the same deployment.' summary: Move Widget parameters: - in: path name: deployment_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Builder requestBody: content: application/json: schema: $ref: '#/components/schemas/MoveWidgetRequestObjectDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/MoveWidgetRequestObjectDRF' multipart/form-data: schema: $ref: '#/components/schemas/MoveWidgetRequestObjectDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ResultIdResponseObjectDRF' description: '' /api/sdk/v1/deployment/{deployment_id}/builder/widgets/validate: put: operationId: api_sdk_v1_deployment_builder_widgets_validate_update_[validate_widget] description: 'Validate Widget Validates a widget configuration for the specified deployment.' summary: Validate Widget parameters: - in: path name: deployment_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Builder requestBody: content: application/json: schema: $ref: '#/components/schemas/ValidateWidgetRequestDataDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ValidateWidgetRequestDataDRF' multipart/form-data: schema: $ref: '#/components/schemas/ValidateWidgetRequestDataDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/OkResponseDRF' description: '' components: schemas: ReorderTabsRequestObjectDRF: type: object properties: tabOrders: type: array items: $ref: '#/components/schemas/TabOrderItemDRF' required: - tabOrders ResultIdResponseObjectDRF: type: object properties: id: type: string MoveWidgetRequestObjectDRF: type: object properties: widgetId: type: string sourceTabId: type: string targetTabId: type: string required: - sourceTabId - targetTabId - widgetId OkResponseDRF: type: object properties: ok: type: boolean ValidateWidgetRequestDataDRF: type: object properties: order: type: integer enabled: type: boolean config: type: object additionalProperties: {} type: type: string id: type: string required: - config - type TabOrderItemDRF: type: object properties: id: type: string order: type: integer required: - id - order ReorderWidgetsRequestObjectDRF: type: object properties: tabId: type: string widgetOrders: type: array items: $ref: '#/components/schemas/TabOrderItemDRF' required: - tabId - widgetOrders UpdateTabRequestDataDRF: type: object properties: order: type: integer screenId: type: string name: type: string type: type: string description: type: string icon: type: string status: type: string background: $ref: '#/components/schemas/BackgroundDRF' extras: type: object additionalProperties: {} updateDateTime: type: string format: date-time createDateTime: type: string format: date-time required: - background - icon - name - order - status BackgroundDRF: type: object properties: value: type: string type: type: string required: - type - value CreateTabRequestObjectDRF: type: object properties: order: type: integer screenId: type: string name: type: string type: type: string description: type: string icon: type: string status: type: string background: $ref: '#/components/schemas/BackgroundDRF' extras: type: object additionalProperties: {} updateDateTime: type: string format: date-time createDateTime: type: string format: date-time required: - background - icon - name - order - status BaseWidgetRequestObjectDRF: type: object properties: order: type: integer enabled: type: boolean config: type: object additionalProperties: {} type: type: string moduleUpdate: type: object additionalProperties: {} required: - config - order - type securitySchemes: Hawk_Auth: type: apiKey in: header name: Authorization description: 'Hawk MAC authentication. Paste a full Authorization header value. Example: Authorization: Hawk id="userId:clientId", ts="", nonce="", mac=""[, hash=""][, ext=""] Note: Swagger UI cannot generate Hawk headers. Use your client to compute the MAC (e.g., with mohawk), then paste the full value here.' JWT_Auth: type: http scheme: bearer in: header bearerFormat: JWT description: 'Use HTTP Bearer auth with a JWT. Send the token in the Authorization header: Authorization: Bearer The token should contain standard claims plus projectId and clientId in user claims.' jwtAuth: type: http scheme: bearer bearerFormat: JWT