# \HubPublishApi
All URIs are relative to */api*
[**discard_hub_project_update**](HubPublishApi.md#discard_hub_project_update) | **POST** /w/{workspace}/hub/projects/{slug}/discard_update | discard the pending update to a published hub project
[**get_hub_project_by_source**](HubPublishApi.md#get_hub_project_by_source) | **GET** /w/{workspace}/hub/project | get the hub project linked to a workspace folder
[**get_hub_project_export**](HubPublishApi.md#get_hub_project_export) | **GET** /w/{workspace}/hub/projects/{slug}/export | export a hub project
[**list_hub_projects**](HubPublishApi.md#list_hub_projects) | **GET** /w/{workspace}/hub/projects | list the hub's published projects
[**publish_hub_app**](HubPublishApi.md#publish_hub_app) | **POST** /w/{workspace}/hub/apps | publish an app to a hub project
[**publish_hub_draft**](HubPublishApi.md#publish_hub_draft) | **POST** /w/{workspace}/hub/publish_draft | create or update a hub project draft
[**publish_hub_flow**](HubPublishApi.md#publish_hub_flow) | **POST** /w/{workspace}/hub/flows | publish a flow to a hub project
[**publish_hub_flow_recording**](HubPublishApi.md#publish_hub_flow_recording) | **POST** /w/{workspace}/hub/flows/{flow_id}/recording | attach a recording to a hub flow
[**publish_hub_migrations**](HubPublishApi.md#publish_hub_migrations) | **POST** /w/{workspace}/hub/migrations | publish data table migrations to a hub project
[**publish_hub_pipeline_recording**](HubPublishApi.md#publish_hub_pipeline_recording) | **POST** /w/{workspace}/hub/projects/{slug}/pipeline_recording | attach a data-pipeline recording to a hub project
[**publish_hub_project_logo**](HubPublishApi.md#publish_hub_project_logo) | **POST** /w/{workspace}/hub/projects/{slug}/logo | set or clear a hub project's custom logo
[**publish_hub_raw_app**](HubPublishApi.md#publish_hub_raw_app) | **POST** /w/{workspace}/hub/raw_apps | publish a raw app to a hub project
[**publish_hub_raw_app_recording**](HubPublishApi.md#publish_hub_raw_app_recording) | **POST** /w/{workspace}/hub/raw_apps/{id}/recording | attach a recorded session to a hub raw app
[**publish_hub_resource_type**](HubPublishApi.md#publish_hub_resource_type) | **POST** /w/{workspace}/hub/resource_types | publish a resource type to a hub project
[**publish_hub_resources**](HubPublishApi.md#publish_hub_resources) | **POST** /w/{workspace}/hub/resources | publish resource placeholders to a hub project
[**publish_hub_script**](HubPublishApi.md#publish_hub_script) | **POST** /w/{workspace}/hub/scripts | publish a script to a hub project
[**publish_hub_script_recording**](HubPublishApi.md#publish_hub_script_recording) | **POST** /w/{workspace}/hub/scripts/{ask_id}/recording | attach a recording to a hub script
[**publish_hub_triggers**](HubPublishApi.md#publish_hub_triggers) | **POST** /w/{workspace}/hub/triggers | publish triggers to a hub project
[**submit_hub_project**](HubPublishApi.md#submit_hub_project) | **POST** /w/{workspace}/hub/projects/{slug}/submit | submit a hub project draft for review
[**withdraw_hub_project**](HubPublishApi.md#withdraw_hub_project) | **POST** /w/{workspace}/hub/projects/{slug}/withdraw | take a hub project submission back out of review
## discard_hub_project_update
> String discard_hub_project_update(workspace, slug, folder)
discard the pending update to a published hub project
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body. The published project is left untouched.
### Parameters
**workspace** | **String** | | [required] |
**slug** | **String** | hub project slug (3-50 chars, lowercase alphanumeric and hyphens, no leading/trailing hyphen) | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## get_hub_project_by_source
> String get_hub_project_by_source(workspace, folder)
get the hub project linked to a workspace folder
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## get_hub_project_export
> String get_hub_project_export(workspace, slug, folder)
export a hub project
Requires the caller to be a workspace admin. Forwards the request to the configured Hub and returns the Hub's status code and raw response body. The folder scope is only needed to re-export the caller's own draft; approved projects are public, so it is optional here.
### Parameters
**workspace** | **String** | | [required] |
**slug** | **String** | hub project slug (3-50 chars, lowercase alphanumeric and hyphens, no leading/trailing hyphen) | [required] |
**folder** | Option<**String**> | folder scoping the Hub project source (`{workspace}:{folder}`) | |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## list_hub_projects
> String list_hub_projects(workspace)
list the hub's published projects
Forwards to the configured Hub's public project catalogue and returns its status code and raw response body. Readable by any workspace member: the listing is not workspace-scoped, and it is proxied only because the Hub's listing endpoint sends no CORS header. Refused with 400 when the instance has the Hub disabled, in which case no outbound request is made.
### Parameters
**workspace** | **String** | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_app
> String publish_hub_app(workspace, folder, publish_app_body)
publish an app to a hub project
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**publish_app_body** | [**PublishAppBody**](PublishAppBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_draft
> String publish_hub_draft(workspace, folder, publish_draft_body)
create or update a hub project draft
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**publish_draft_body** | [**PublishDraftBody**](PublishDraftBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_flow
> String publish_hub_flow(workspace, folder, publish_flow_body)
publish a flow to a hub project
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**publish_flow_body** | [**PublishFlowBody**](PublishFlowBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_flow_recording
> String publish_hub_flow_recording(workspace, flow_id, folder, recording_body)
attach a recording to a hub flow
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**flow_id** | **i64** | hub id of the flow | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**recording_body** | [**RecordingBody**](RecordingBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_migrations
> String publish_hub_migrations(workspace, folder, publish_migrations_body)
publish data table migrations to a hub project
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**publish_migrations_body** | [**PublishMigrationsBody**](PublishMigrationsBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_pipeline_recording
> String publish_hub_pipeline_recording(workspace, slug, folder, pipeline_recording_body)
attach a data-pipeline recording to a hub project
Requires the caller to be a workspace admin. A data-pipeline recording is scoped to the whole project (a folder cascade), not a single item. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**slug** | **String** | hub project slug | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**pipeline_recording_body** | [**PipelineRecordingBody**](PipelineRecordingBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_project_logo
> String publish_hub_project_logo(workspace, slug, folder, project_logo_body)
set or clear a hub project's custom logo
Requires the caller to be a workspace admin. Sets the project's custom logo (base64 png/svg, decoded size max 512KB) or clears it when `logo` is null; the `logo` field itself is required so an empty body cannot clear the logo by accident. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**slug** | **String** | hub project slug | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**project_logo_body** | [**ProjectLogoBody**](ProjectLogoBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_raw_app
> String publish_hub_raw_app(workspace, folder, publish_raw_app_body)
publish a raw app to a hub project
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**publish_raw_app_body** | [**PublishRawAppBody**](PublishRawAppBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_raw_app_recording
> String publish_hub_raw_app_recording(workspace, id, folder, recording_body)
attach a recorded session to a hub raw app
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**id** | **i64** | hub id of the raw app | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**recording_body** | [**RecordingBody**](RecordingBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_resource_type
> String publish_hub_resource_type(workspace, folder, publish_resource_type_body)
publish a resource type to a hub project
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**publish_resource_type_body** | [**PublishResourceTypeBody**](PublishResourceTypeBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_resources
> String publish_hub_resources(workspace, folder, publish_resources_body)
publish resource placeholders to a hub project
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**publish_resources_body** | [**PublishResourcesBody**](PublishResourcesBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_script
> String publish_hub_script(workspace, folder, publish_script_body)
publish a script to a hub project
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**publish_script_body** | [**PublishScriptBody**](PublishScriptBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_script_recording
> String publish_hub_script_recording(workspace, ask_id, folder, recording_body)
attach a recording to a hub script
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**ask_id** | **i64** | hub ask id of the script | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**recording_body** | [**RecordingBody**](RecordingBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## publish_hub_triggers
> String publish_hub_triggers(workspace, folder, publish_triggers_body)
publish triggers to a hub project
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
**publish_triggers_body** | [**PublishTriggersBody**](PublishTriggersBody.md) | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## submit_hub_project
> String submit_hub_project(workspace, slug, folder)
submit a hub project draft for review
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body.
### Parameters
**workspace** | **String** | | [required] |
**slug** | **String** | hub project slug (3-50 chars, lowercase alphanumeric and hyphens, no leading/trailing hyphen) | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## withdraw_hub_project
> String withdraw_hub_project(workspace, slug, folder)
take a hub project submission back out of review
Requires the caller to be a workspace admin. Forwards the request to the configured Hub scoped to the `{workspace}:{folder}` source and returns the Hub's status code and raw response body. Everything pushed for the submission is kept, so it can be fixed and submitted again.
### Parameters
**workspace** | **String** | | [required] |
**slug** | **String** | hub project slug (3-50 chars, lowercase alphanumeric and hyphens, no leading/trailing hyphen) | [required] |
**folder** | **String** | workspace folder scoping the Hub publication: a workspace can publish one Hub project per folder and the Hub-side source key is `{workspace}:{folder}` | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)