components: examples: {} headers: {} parameters: {} requestBodies: {} responses: {} schemas: EmbeddingResponse: properties: url: type: string required: - url type: object additionalProperties: false TraceId: type: string description: A unique identifier for this API request. The Hex Support team may request this value when debugging an issue. TsoaErrorResponsePayload: properties: details: type: string traceId: $ref: '#/components/schemas/TraceId' reason: type: string required: - reason type: object EmbeddingRequest: properties: hexUserAttributes: properties: {} additionalProperties: type: string type: object description: A map of attributes meant to populate hex_user_attributes in the app for the running user. This must be a string to string map. For more complexity, you can do json serialization example: orgId: my-org-id groupId: my-group-id scope: items: type: string type: array description: 'Optionally include additional permissions for a user to do in an embedded app. Valid scopes include: EXPORT_PDF: allow users to download the app as a pdf EXPORT_CSV: allow users to download CSVs from tables' inputParameters: properties: {} additionalProperties: {} type: object description: Optionall sets default values for input states. The keys are the names of the inputs and the values are the default values for those inputs. expiresIn: type: number format: double description: 'Optionally specify the expiration time of the embedding url in milliseconds. This represents the maximum allowed time between receiving the API response with the single-use signed URL, and requesting the signed URL for the iframe. Default is 15 seconds. Maximum value is 300 seconds (5 minutes).' default: '15000' displayOptions: properties: theme: type: string enum: - light - dark showEmbeddedRunButton: type: boolean description: The showEmbeddedRunButton parameter will ensure the run button always shows up in the embedded app navbar noEmbedHeaderPadding: type: boolean description: The noEmbedHeaderPadding parameter removes the top padding added to apps with no tabs. noEmbedBasePadding: type: boolean description: The noEmbedBasePadding parameter removes the padding around the embedded app container noEmbedOutline: type: boolean description: The noEmbedOutline parameter removes the border around the embedded app noEmbedFooter: type: boolean description: The noEmbedFooter parameter removes the Hex-branded footer at the bottom of the embedded app additionalProperties: {} type: object description: Optionally customize the display of the embedded app testMode: type: boolean description: Run the embed API call in test mode. Does not run the app and will not count towards rate limits or embedding usage counts. type: object additionalProperties: {} ProjectId: type: string format: uuid description: Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after `hex` in the URL. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ EnumValues_typeofProjectTypeApiEnum_: type: string enum: - PROJECT - COMPONENT ProjectTypeApiEnum: $ref: '#/components/schemas/EnumValues_typeofProjectTypeApiEnum_' description: The type of the ProjectApiResource being returned. Timestamp: type: string format: timestamp description: An ISO 8601 timestamp with timezone like 1970-01-01T00:00:00Z. EnumValues_typeofScheduleCadenceApiEnum_: type: string enum: - HOURLY - DAILY - WEEKLY - MONTHLY - CUSTOM ScheduleCadenceApiEnum: $ref: '#/components/schemas/EnumValues_typeofScheduleCadenceApiEnum_' description: Types of cadence of a schedule for a Hex project. TimezoneDesignator: type: string description: An ISO 8601 timezone designator like +08:00. EnumValues_typeofDayOfWeekApiEnum_: type: string enum: - SUNDAY - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY DayOfWeekApiEnum: $ref: '#/components/schemas/EnumValues_typeofDayOfWeekApiEnum_' ScheduleApiResource: properties: cadence: $ref: '#/components/schemas/ScheduleCadenceApiEnum' enabled: type: boolean hourly: properties: timezone: $ref: '#/components/schemas/TimezoneDesignator' minute: type: integer format: int32 minimum: 0 maximum: 59 required: - timezone - minute type: object nullable: true daily: properties: timezone: $ref: '#/components/schemas/TimezoneDesignator' minute: type: integer format: int32 minimum: 0 maximum: 59 hour: type: integer format: int32 minimum: 0 maximum: 23 required: - timezone - minute - hour type: object nullable: true weekly: properties: timezone: $ref: '#/components/schemas/TimezoneDesignator' minute: type: integer format: int32 minimum: 0 maximum: 59 hour: type: integer format: int32 minimum: 0 maximum: 23 dayOfWeek: $ref: '#/components/schemas/DayOfWeekApiEnum' required: - timezone - minute - hour - dayOfWeek type: object nullable: true monthly: properties: timezone: $ref: '#/components/schemas/TimezoneDesignator' minute: type: integer format: int32 minimum: 0 maximum: 59 hour: type: integer format: int32 minimum: 0 maximum: 23 day: type: integer format: int32 minimum: 1 maximum: 28 required: - timezone - minute - hour - day type: object nullable: true custom: properties: timezone: $ref: '#/components/schemas/TimezoneDesignator' cron: type: string required: - timezone - cron type: object nullable: true required: - cadence - enabled - hourly - daily - weekly - monthly - custom type: object additionalProperties: false EnumValues_typeofAccessLevelEnum_: type: string enum: - NONE - APP_ONLY - CAN_VIEW - CAN_EDIT - FULL_ACCESS AccessLevelEnum: $ref: '#/components/schemas/EnumValues_typeofAccessLevelEnum_' description: 'Access level granted by sharing endpoints. For projects, `CAN_VIEW` is the API value that corresponds to the UI permission labeled "Can explore". `APP_ONLY` is the API value that corresponds to the UI permission labeled "Can view app".' SharingResource: properties: users: items: properties: access: $ref: '#/components/schemas/AccessLevelEnum' user: properties: email: type: string required: - email type: object required: - access - user type: object type: array collections: items: properties: access: $ref: '#/components/schemas/AccessLevelEnum' collection: properties: name: type: string required: - name type: object required: - access - collection type: object type: array groups: items: properties: access: $ref: '#/components/schemas/AccessLevelEnum' group: properties: name: type: string required: - name type: object required: - access - group type: object type: array workspace: properties: access: $ref: '#/components/schemas/AccessLevelEnum' required: - access type: object publicWeb: properties: access: $ref: '#/components/schemas/AccessLevelEnum' required: - access type: object support: properties: access: $ref: '#/components/schemas/AccessLevelEnum' required: - access type: object required: - users - collections - groups - workspace - publicWeb - support type: object additionalProperties: false ProjectApiResource: properties: id: $ref: '#/components/schemas/ProjectId' title: type: string description: type: string nullable: true type: $ref: '#/components/schemas/ProjectTypeApiEnum' creator: properties: email: type: string required: - email type: object owner: properties: email: type: string required: - email type: object status: properties: name: type: string required: - name type: object nullable: true categories: items: properties: description: type: string nullable: true name: type: string required: - description - name type: object type: array reviews: properties: required: type: boolean required: - required type: object analytics: properties: publishedResultsUpdatedAt: allOf: - $ref: '#/components/schemas/Timestamp' nullable: true lastViewedAt: allOf: - $ref: '#/components/schemas/Timestamp' nullable: true appViews: properties: lastThirtyDays: type: integer format: int32 lastFourteenDays: type: integer format: int32 lastSevenDays: type: integer format: int32 allTime: type: integer format: int32 required: - lastThirtyDays - lastFourteenDays - lastSevenDays - allTime type: object required: - publishedResultsUpdatedAt - lastViewedAt - appViews type: object lastEditedAt: $ref: '#/components/schemas/Timestamp' lastPublishedAt: allOf: - $ref: '#/components/schemas/Timestamp' nullable: true createdAt: $ref: '#/components/schemas/Timestamp' archivedAt: allOf: - $ref: '#/components/schemas/Timestamp' nullable: true trashedAt: allOf: - $ref: '#/components/schemas/Timestamp' nullable: true schedules: items: $ref: '#/components/schemas/ScheduleApiResource' type: array sharing: $ref: '#/components/schemas/SharingResource' required: - id - title - description - type - creator - owner - status - categories - reviews - analytics - lastEditedAt - lastPublishedAt - createdAt - archivedAt - trashedAt - schedules type: object additionalProperties: false ResponseRunId: type: string format: uuid description: Unique ID for a run of a Hex project pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ProjectRunStatus: description: Current status of a project run enum: - PENDING - RUNNING - ERRORED - COMPLETED - KILLED - UNABLE_TO_ALLOCATE_KERNEL type: string RunUrl: type: string description: URL to view the current progress of the project run in the Hex UI NotebookProjectRunResponsePayload: properties: projectId: $ref: '#/components/schemas/ProjectId' runId: $ref: '#/components/schemas/ResponseRunId' status: $ref: '#/components/schemas/ProjectRunStatus' url: $ref: '#/components/schemas/RunUrl' traceId: $ref: '#/components/schemas/TraceId' required: - projectId - runId - status - url - traceId type: object additionalProperties: false ExportProjectApiResource: properties: filename: type: string content: type: string required: - filename - content type: object additionalProperties: false ProjectVersionId: type: string format: uuid description: Unique ID for a Hex project version. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ CellId: type: string format: uuid description: Unique ID for a cell. This can be found by going into the menu of a cell in the notebook. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ImportProjectWarningsApiResource: properties: categories: items: type: string type: array nullable: true components: items: properties: version: type: string componentId: type: string required: - version - componentId type: object type: array nullable: true status: type: string nullable: true projectSecrets: items: type: string type: array nullable: true sharedSecrets: items: type: string type: array nullable: true projectDataConnectionIds: items: type: string type: array nullable: true sharedDataConnections: items: type: string type: array nullable: true sharedVcsPackages: items: type: string type: array nullable: true projectTitle: type: string nullable: true projectLanguage: type: string nullable: true cellIds: items: $ref: '#/components/schemas/CellId' type: array nullable: true appLayout: items: type: string type: array nullable: true timezones: items: type: string type: array nullable: true externalFileIntegrations: items: type: string type: array nullable: true exportedHexType: type: string nullable: true semanticProjects: items: type: string type: array nullable: true required: - categories - components - status - projectSecrets - sharedSecrets - projectDataConnectionIds - sharedDataConnections - sharedVcsPackages - projectTitle - projectLanguage - cellIds - appLayout - timezones - externalFileIntegrations - exportedHexType - semanticProjects type: object additionalProperties: false ImportProjectApiResource: properties: projectId: $ref: '#/components/schemas/ProjectId' hexVersionId: $ref: '#/components/schemas/ProjectVersionId' warnings: $ref: '#/components/schemas/ImportProjectWarningsApiResource' required: - projectId - hexVersionId - warnings type: object additionalProperties: false ApiPaginationCursor: type: string description: 'A cursor string used with `before` and `after` parameters to paginate through a list of items on the API.' PaginationApiResource: properties: after: allOf: - $ref: '#/components/schemas/ApiPaginationCursor' nullable: true before: allOf: - $ref: '#/components/schemas/ApiPaginationCursor' nullable: true required: - after - before type: object additionalProperties: false ProjectsListApiResource: properties: values: items: $ref: '#/components/schemas/ProjectApiResource' type: array pagination: $ref: '#/components/schemas/PaginationApiResource' required: - values - pagination type: object additionalProperties: false PageSize: type: integer format: int32 default: '25' description: Number of results to fetch per page for paginated requests minimum: 1 maximum: 100 EnumValues_typeofSortByEnum_: type: string enum: - CREATED_AT - LAST_EDITED_AT - LAST_PUBLISHED_AT SortByEnum: $ref: '#/components/schemas/EnumValues_typeofSortByEnum_' EnumValues_typeofSortDirectionEnum_: type: string enum: - DESC - ASC SortDirectionEnum: $ref: '#/components/schemas/EnumValues_typeofSortDirectionEnum_' DataConnectionId: type: string format: uuid description: Unique ID for a data connection. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ProjectQueriedTableResource: properties: dataConnectionId: $ref: '#/components/schemas/DataConnectionId' dataConnectionName: type: string tableName: type: string required: - dataConnectionId - dataConnectionName - tableName type: object additionalProperties: false ProjectQueriedTablesApiResource: properties: values: items: $ref: '#/components/schemas/ProjectQueriedTableResource' type: array pagination: $ref: '#/components/schemas/PaginationApiResource' traceId: type: string required: - values - pagination - traceId type: object additionalProperties: false CollectionId: type: string format: uuid description: Unique ID for a collection. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ShareProjectWithCollectionError: properties: collectionIds: items: $ref: '#/components/schemas/CollectionId' type: array reason: type: string required: - collectionIds - reason type: object additionalProperties: false EditProjectSharingCollectionsResponse: properties: project: $ref: '#/components/schemas/ProjectApiResource' errors: items: $ref: '#/components/schemas/ShareProjectWithCollectionError' type: array required: - project type: object additionalProperties: false ShareProjectWithWorkspaceError: properties: type: type: string enum: - workspace - publicWeb reason: type: string required: - type - reason type: object additionalProperties: false EditProjectSharingWorkspaceAndPublicResponse: properties: project: $ref: '#/components/schemas/ProjectApiResource' errors: items: $ref: '#/components/schemas/ShareProjectWithWorkspaceError' type: array required: - project type: object additionalProperties: false PublicWebAccessLevel: $ref: '#/components/schemas/EnumValues_typeofAccessLevelEnum_' GroupId: type: string format: uuid description: Unique ID for a group. This can be found from the groups page (in Settings). pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ShareProjectWithGroupError: properties: groupIds: items: $ref: '#/components/schemas/GroupId' type: array reason: type: string required: - groupIds - reason type: object additionalProperties: false EditProjectSharingGroupsResponse: properties: project: $ref: '#/components/schemas/ProjectApiResource' errors: items: $ref: '#/components/schemas/ShareProjectWithGroupError' type: array required: - project type: object additionalProperties: false UserId: type: string format: uuid description: Unique ID for a user. This can be found from the users page (in Settings). pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ShareProjectWithUserError: properties: userIds: items: $ref: '#/components/schemas/UserId' type: array reason: type: string required: - userIds - reason type: object additionalProperties: false EditProjectSharingUsersResponse: properties: project: $ref: '#/components/schemas/ProjectApiResource' errors: items: $ref: '#/components/schemas/ShareProjectWithUserError' type: array required: - project type: object additionalProperties: false ProblemSeverity: type: string enum: - fatal - error - warning ProblemMessage: type: string ProblemKeyPath: items: anyOf: - type: string - type: number format: double type: array HexSLTypes.PublicProblem: description: A problem encountered during the import of a public HexSL project. properties: severity: $ref: '#/components/schemas/ProblemSeverity' message: $ref: '#/components/schemas/ProblemMessage' cause_paths: items: $ref: '#/components/schemas/ProblemKeyPath' type: array impact_paths: items: $ref: '#/components/schemas/ProblemKeyPath' type: array validated_by_json_schema: type: boolean required: - severity - message - cause_paths - impact_paths type: object additionalProperties: false HexSLProblemWithDisplay: allOf: - $ref: '#/components/schemas/HexSLTypes.PublicProblem' - properties: display: type: string required: - display type: object Record_string.Record_string.HexSLTypes.DataType__: properties: {} type: object description: Construct a type with a set of properties K of type T MetricflowModelSchemas: $ref: '#/components/schemas/Record_string.Record_string.HexSLTypes.DataType__' SemanticProjectsSyncResponsePayload: properties: traceId: type: string contents: items: type: string type: array warnings: items: type: string type: array skipped: properties: {} additionalProperties: {} type: object problems: items: $ref: '#/components/schemas/HexSLProblemWithDisplay' type: array debug: properties: metricflowModelSchemas: $ref: '#/components/schemas/MetricflowModelSchemas' type: object required: - traceId - contents type: object additionalProperties: false SemanticProjectId: type: string format: uuid description: 'Unique ID for a Hex semantic project. This can be found from the semantic projects admin panel (in Settings).' pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ UpdateSemanticProjectResponse: description: Response body for successful status updates properties: updated: properties: views: items: properties: status: type: string nullable: true name: type: string required: - status - name type: object type: array datasets: items: properties: status: type: string nullable: true name: type: string required: - status - name type: object type: array required: - views - datasets type: object required: - updated type: object additionalProperties: false SemanticObjectUpdate: description: 'A single update for a semantic object (dataset or view) Currently, only status updates are supported.' properties: type: type: string enum: - DATASET - VIEW description: The type of object to update name: type: string description: The name of the dataset or view status: type: string nullable: true description: The status name to apply, or null to remove the current status required: - type - name - status type: object additionalProperties: false UpdateSemanticProjectRequest: description: 'Request body for updating semantic datasets and views Currently, only status updates are supported.' properties: updates: items: $ref: '#/components/schemas/SemanticObjectUpdate' type: array description: Array of updates to apply required: - updates type: object additionalProperties: false Pick_TsoaErrorResponsePayload.Exclude_keyofTsoaErrorResponsePayload.details__: properties: reason: type: string traceId: $ref: '#/components/schemas/TraceId' required: - reason type: object description: From T, pick a set of properties whose keys are in the union K Omit_TsoaErrorResponsePayload.details_: $ref: '#/components/schemas/Pick_TsoaErrorResponsePayload.Exclude_keyofTsoaErrorResponsePayload.details__' description: Construct a type with the properties of T except for those in type K. UpdateStatusErrorDetail: description: Details about a failed update properties: name: type: string description: The name of the dataset or view type: type: string enum: - DATASET - VIEW description: The type of object reason: type: string enum: - not_found - invalid_status description: The reason for the failure value: type: string description: The invalid value (for invalid_status errors) required: - name - type - reason type: object additionalProperties: false RunStatusUrl: type: string description: URL to query the status of the project run via the Hex API ProjectVersion: type: integer format: int32 description: The version of the Hex project that was run. Project versions are ordered, starting at 1 and incrementing on each saved version. Project versions can be found in the History & Versions side bar of the Logic View. RunNotificationType: description: The condition that determines whether or not the notification should be delivered based on these types. enum: - SUCCESS - FAILURE - ALL type: string NotificationRecipientType: description: The delivery type of a notification recipient. enum: - USER - GROUP - SLACK_CHANNEL type: string ScreenshotFormatType: type: string enum: - png - pdf description: The file format of the generated screenshot. NotificationRecipient: properties: id: type: string description: The Id of the recipient. For users and groups, these Ids are found in the settings panel in Hex, while the Id for Slack can be found within the Slack app or URL. example: C0123456 name: type: string description: The human readable name for the user, group, or Slack channel. example: data-team isPrivate: type: boolean description: Whether or not the Slack channel is a private channel in the Slack workspace. example: false required: - id - name type: object additionalProperties: false ProjectRunNotificationRecipient: description: 'The recipient of a project run notification, which will include the type of recipient and additional configuration details. This is used to determine who to send the notification to, and what triggers would qualify sending the notification.' properties: type: $ref: '#/components/schemas/RunNotificationType' subject: type: string body: type: string recipientType: $ref: '#/components/schemas/NotificationRecipientType' includeSuccessScreenshot: type: boolean description: If true, a screenshot of the project will be included in the notification when the project succeeds. screenshotFormat: items: $ref: '#/components/schemas/ScreenshotFormatType' type: array description: 'The format of the screenshot to be included in the notification. Defaults to png only if not specified and includeSuccessScreenshot is true.' recipient: $ref: '#/components/schemas/NotificationRecipient' required: - type - recipientType - includeSuccessScreenshot - recipient type: object additionalProperties: false ProjectRunResponsePayload: description: Response format returned by the runProject endpoint properties: projectId: $ref: '#/components/schemas/ProjectId' runId: $ref: '#/components/schemas/ResponseRunId' runUrl: $ref: '#/components/schemas/RunUrl' runStatusUrl: $ref: '#/components/schemas/RunStatusUrl' traceId: $ref: '#/components/schemas/TraceId' projectVersion: $ref: '#/components/schemas/ProjectVersion' notifications: items: $ref: '#/components/schemas/ProjectRunNotificationRecipient' type: array required: - projectId - runId - runUrl - runStatusUrl - traceId - projectVersion type: object additionalProperties: false NotFoundParam: type: string description: Name of an input parameter passed to the API call that was not found in the project. InvalidParam: properties: dataType: type: string description: The expected data type of the parameter (number, string, etc.), which the input value should have matched inputCellType: type: string description: The cell input type of the parameter (text, slider, etc.) paramValue: type: string description: The JSON-encoded, invalid value for the parameter paramName: type: string description: The name of the parameter for which an invalid value was provided required: - dataType - inputCellType - paramValue - paramName type: object description: Information about an input parameter pass to the API call that could not be parsed. InvalidParamPayload: properties: traceId: $ref: '#/components/schemas/TraceId' invalid: items: $ref: '#/components/schemas/InvalidParam' type: array description: Array of specified input parameters that were invalid or could not be parsed notFound: items: $ref: '#/components/schemas/NotFoundParam' type: array description: Array of specified input parameter names that were not found in the project required: - traceId - invalid - notFound type: object ProjectRunNotification: description: The configuration details for notifications, which are sent after a run has completed. properties: type: $ref: '#/components/schemas/RunNotificationType' includeSuccessScreenshot: type: boolean description: If true, a screenshot of the project will be included in the notification when the project succeeds. screenshotFormat: $ref: '#/components/schemas/ScreenshotFormatType' description: 'The format of the screenshot to be included in the notification. Defaults to png if not specified and includeSuccessScreenshot is true.' slackChannelIds: items: type: string type: array description: 'The Slack channels to send the notification to. The Hex Slackbot must be added to any private channels included. The Slack Channel Id can be found in the channel''s settings from within the Slack app.' userIds: items: type: string type: array description: The Hex user Ids to send the notification to. These Ids can be found and copied from the Setting's User panel in Hex. groupIds: items: type: string type: array description: The Hex group Ids to send the notification to. These Ids can be found and copied from the Setting's Group panel in Hex. subject: type: string description: An optional message to use as the subject of the notification. body: type: string description: An optional message to include in the body of the notification. required: - type - includeSuccessScreenshot type: object additionalProperties: false RunProjectRequestBody: description: Request body format for triggering a project run properties: inputParams: properties: {} additionalProperties: {} type: object description: 'Optionally specify input parameters for this project run. These should be structured as a dictionary of key/value pairs, where the key name matches the name of the variable in the Hex project. Only parameters that are added to the published app can be set via this request parameter. Any additional inputs will be ignored. It is invalid to pass in both a viewId and inputParams. If no input parameters are provided, the project will be run with the default input values. Note that if input parameters are provided, this run will not be able to update the cached values for the project, and the updateCache setting (below) will be ignored.' example: text_input_1: Hello World numeric_input_1: 123 dryRun: type: boolean description: When true, this endpoint will perform a dry run that does not run the project. This can be useful for validating the structure of an API call, and inspecting a dummy response, without running a project. default: 'false' updateCache: type: boolean deprecated: true notifications: items: $ref: '#/components/schemas/ProjectRunNotification' type: array description: 'Optionally specify a list of notification details that will be delivered once a project run completes. Notifications can be configured for delivery to Slack channels, Hex users, or Hex groups.' example: - type: ALL includeSuccessScreenshot: 'true' slackChannelIds: - C0000000 userIds: - uuid-user-1 - uuid-user-2 - type: FAILURE includeSuccessScreenshot: 'false' userIds: - uuid-user-1 groupIds: - uuid-group-1 updatePublishedResults: type: boolean description: 'When true, the cached state of the published app will be updated with the latest run results. You must have at least "Can Edit" permissions on the project to do so. Note: this cannot be set to true if custom input parameters are provided.' default: 'false' useCachedSqlResults: type: boolean description: 'When false, the project will run without using any cached SQL results, and will update those cached SQL results.' default: 'true' viewId: type: string description: 'Optionally specify a SavedView viewId to use for the project run. If specified, the saved view''s inputs will be used for the project run. It is invalid to pass in both a viewId and inputParams. If not specified, the default inputs will be used.' type: object additionalProperties: false ProjectStatusRunTrigger: type: string enum: - API - SCHEDULED - APP_REFRESH description: How a run of a project was triggered (`API`, `SCHEDULED`, or `APP_REFRESH`) StateEvent: description: Response format returned by the runProject endpoint properties: type: type: string value: type: string timestamp: type: string required: - type - value - timestamp type: object additionalProperties: false ProjectStatusResponsePayload: description: Response format returned by the getRunStatus endpoint properties: projectId: $ref: '#/components/schemas/ProjectId' projectVersion: $ref: '#/components/schemas/ProjectVersion' runId: $ref: '#/components/schemas/ResponseRunId' runUrl: $ref: '#/components/schemas/RunUrl' status: $ref: '#/components/schemas/ProjectRunStatus' runTrigger: $ref: '#/components/schemas/ProjectStatusRunTrigger' description: 'How the run was triggered: `API`, `SCHEDULED`, or `APP_REFRESH`' startTime: type: string format: date-time nullable: true description: UTC timestamp of when the project run started endTime: type: string format: date-time nullable: true description: UTC timestamp of when the project run finished elapsedTime: type: number format: double nullable: true description: Total elapsed time for the project run in milliseconds flagConfigOverride: type: string traceId: $ref: '#/components/schemas/TraceId' notifications: items: $ref: '#/components/schemas/ProjectRunNotificationRecipient' type: array stateEvents: items: $ref: '#/components/schemas/StateEvent' type: array required: - projectId - projectVersion - runId - runUrl - status - runTrigger - startTime - endTime - elapsedTime - traceId type: object additionalProperties: false InputRunId: type: string format: uuid description: Unique ID for a run of a Hex project. This ID is part of the response returned by the RunProject endpoint. The GetProjectRuns endpoint can also be used to find the specific runs for a project. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ NextPageUrl: type: string description: URL to fetch the next page of results for a paginated API request ProjectRunsResponsePayload: properties: runs: items: $ref: '#/components/schemas/ProjectStatusResponsePayload' type: array description: Array of run status payloads in the same format returned by the `GetRunStatus` endpoint nextPage: allOf: - $ref: '#/components/schemas/NextPageUrl' nullable: true previousPage: allOf: - $ref: '#/components/schemas/NextPageUrl' nullable: true traceId: $ref: '#/components/schemas/TraceId' required: - runs - nextPage - previousPage - traceId type: object additionalProperties: false Offset: type: integer format: int32 default: '0' description: Offset for paginated requests minimum: 0 EnumValues_typeofRunTypeFilter_: type: string enum: - API - SCHEDULED - APP_REFRESH - ALL RunTypeFilter: $ref: '#/components/schemas/EnumValues_typeofRunTypeFilter_' StaticCellId: type: string format: uuid description: Unique static ID for a cell. This can be found by going into the menu of a cell in the notebook. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ChartImageFromRunResponsePayload: properties: projectId: $ref: '#/components/schemas/ProjectId' runId: $ref: '#/components/schemas/InputRunId' staticId: $ref: '#/components/schemas/StaticCellId' imageBase64: type: string mimeType: type: string required: - projectId - runId - staticId - imageBase64 - mimeType type: object additionalProperties: false GroupApiResource: properties: id: $ref: '#/components/schemas/GroupId' name: type: string createdAt: $ref: '#/components/schemas/Timestamp' required: - id - name - createdAt type: object additionalProperties: false ListGroupsResponse: properties: values: items: $ref: '#/components/schemas/GroupApiResource' type: array pagination: $ref: '#/components/schemas/PaginationApiResource' required: - values - pagination type: object additionalProperties: false LargerPageSize: type: integer format: int32 default: '25' description: Number of results to fetch per page for paginated requests minimum: 1 maximum: 500 EnumValues_typeofListGroupsSortByEnum_: type: string enum: - CREATED_AT - NAME ListGroupsSortByEnum: $ref: '#/components/schemas/EnumValues_typeofListGroupsSortByEnum_' Name: type: string minLength: 1 GroupMembers: properties: users: items: properties: id: $ref: '#/components/schemas/UserId' required: - id type: object type: array maxItems: 100 type: object additionalProperties: false CreateGroupResponse: properties: id: $ref: '#/components/schemas/GroupId' name: $ref: '#/components/schemas/Name' members: $ref: '#/components/schemas/GroupMembers' required: - id - name - members type: object additionalProperties: false ReadableConnectionDetails: anyOf: - properties: athena: properties: accessKeyId: type: string workgroup: type: string nullable: true catalog: type: string nullable: true s3OutputPath: type: string port: type: number format: double hostname: type: string type: object required: - athena type: object - properties: bigquery: properties: enableStorageApi: type: boolean enableDriveAccess: type: boolean projectId: type: string type: object required: - bigquery type: object - properties: clickhouse: properties: username: type: string port: type: number format: double hostname: type: string type: object required: - clickhouse type: object - properties: databricks: properties: jdbcUrl: type: string type: object required: - databricks type: object - properties: postgres: properties: username: type: string database: type: string port: type: number format: double hostname: type: string type: object required: - postgres type: object - properties: redshift: properties: username: type: string database: type: string port: type: number format: double host: type: string type: object required: - redshift type: object - properties: snowflake: properties: role: type: string nullable: true username: type: string schema: type: string nullable: true database: type: string warehouse: type: string accountName: type: string type: object required: - snowflake type: object - properties: trino: properties: sessionProperties: items: properties: value: type: string key: type: string required: - value - key type: object type: array username: type: string schema: type: string catalog: type: string port: type: number format: double hostname: type: string type: object required: - trino type: object EnumValues_typeofSchemaFilterMatchType_: type: string enum: - EXACT - PREFIX - REGEX - SUFFIX SchemaFilterMatchType: $ref: '#/components/schemas/EnumValues_typeofSchemaFilterMatchType_' SchemaEntityFilter: properties: exclude: properties: values: items: type: string type: array matchType: $ref: '#/components/schemas/SchemaFilterMatchType' required: - values - matchType type: object include: properties: values: items: type: string type: array matchType: $ref: '#/components/schemas/SchemaFilterMatchType' required: - values - matchType type: object type: object TimezoneStringDesignator: type: string SchemaRefreshScheduleApiResource: properties: cadence: $ref: '#/components/schemas/ScheduleCadenceApiEnum' enabled: type: boolean daily: properties: timezoneString: $ref: '#/components/schemas/TimezoneStringDesignator' minute: type: integer format: int32 minimum: 0 maximum: 59 hour: type: integer format: int32 minimum: 0 maximum: 23 required: - timezoneString - minute - hour type: object nullable: true weekly: properties: timezoneString: $ref: '#/components/schemas/TimezoneDesignator' minute: type: integer format: int32 minimum: 0 maximum: 59 hour: type: integer format: int32 minimum: 0 maximum: 23 dayOfWeek: $ref: '#/components/schemas/DayOfWeekApiEnum' required: - timezoneString - minute - hour - dayOfWeek type: object nullable: true monthly: properties: timezoneString: $ref: '#/components/schemas/TimezoneDesignator' minute: type: integer format: int32 minimum: 0 maximum: 59 hour: type: integer format: int32 minimum: 0 maximum: 23 day: type: integer format: int32 minimum: 1 maximum: 28 required: - timezoneString - minute - hour - day type: object nullable: true custom: properties: timezoneString: $ref: '#/components/schemas/TimezoneDesignator' cron: type: string required: - timezoneString - cron type: object nullable: true required: - cadence - enabled type: object additionalProperties: false EnumValues_typeofDataConnectionSchemaRefreshAccess_: type: string enum: - ADMINS - USERS_WITH_QUERY_ACCESS DataConnectionSchemaRefreshAccess: $ref: '#/components/schemas/EnumValues_typeofDataConnectionSchemaRefreshAccess_' EnumValues_typeofDataConnectionSharingAccessLevelEnum_: type: string enum: - NONE - QUERY - VIEW_RESULTS DataConnectionSharingAccessLevelEnum: $ref: '#/components/schemas/EnumValues_typeofDataConnectionSharingAccessLevelEnum_' EnumValues_typeofDataConnectionApiType_: type: string enum: - athena - bigquery - clickhouse - databricks - postgres - redshift - snowflake - trino DataConnectionApiType: $ref: '#/components/schemas/EnumValues_typeofDataConnectionApiType_' DataConnectionWithSensitiveFieldsApiResource: properties: id: $ref: '#/components/schemas/DataConnectionId' name: $ref: '#/components/schemas/Name' type: $ref: '#/components/schemas/DataConnectionApiType' description: type: string connectionDetails: allOf: - $ref: '#/components/schemas/ReadableConnectionDetails' nullable: true connectViaSsh: type: boolean includeMagic: type: boolean allowWritebackCells: type: boolean schemaFilters: properties: tables: $ref: '#/components/schemas/SchemaEntityFilter' schemas: $ref: '#/components/schemas/SchemaEntityFilter' databases: $ref: '#/components/schemas/SchemaEntityFilter' type: object schemaRefreshSchedule: $ref: '#/components/schemas/SchemaRefreshScheduleApiResource' schemaRefreshAccess: $ref: '#/components/schemas/DataConnectionSchemaRefreshAccess' sharing: properties: workspace: properties: public: $ref: '#/components/schemas/DataConnectionSharingAccessLevelEnum' guests: $ref: '#/components/schemas/DataConnectionSharingAccessLevelEnum' members: $ref: '#/components/schemas/DataConnectionSharingAccessLevelEnum' type: object groups: items: properties: access: $ref: '#/components/schemas/DataConnectionSharingAccessLevelEnum' group: properties: name: type: string id: $ref: '#/components/schemas/GroupId' required: - name - id type: object required: - access - group type: object type: array type: object required: - id - name - type - connectionDetails - connectViaSsh - includeMagic - allowWritebackCells - schemaRefreshAccess - sharing type: object additionalProperties: false DataConnectionApiResource: properties: id: $ref: '#/components/schemas/DataConnectionId' name: $ref: '#/components/schemas/Name' type: $ref: '#/components/schemas/DataConnectionApiType' description: type: string required: - id - name - type type: object additionalProperties: false ListDataConnectionsResponse: properties: values: items: anyOf: - $ref: '#/components/schemas/DataConnectionApiResource' - $ref: '#/components/schemas/DataConnectionWithSensitiveFieldsApiResource' type: array pagination: $ref: '#/components/schemas/PaginationApiResource' required: - values - pagination type: object additionalProperties: false EnumValues_typeofListDataConnectionsSortByEnum_: type: string enum: - CREATED_AT - NAME ListDataConnectionsSortByEnum: $ref: '#/components/schemas/EnumValues_typeofListDataConnectionsSortByEnum_' CreateConnectionDetails: anyOf: - properties: athena: properties: secretAccessKey: type: string accessKeyId: type: string workgroup: type: string nullable: true catalog: type: string nullable: true s3OutputPath: type: string port: type: number format: double hostname: type: string required: - secretAccessKey - accessKeyId - s3OutputPath - port - hostname type: object required: - athena type: object - properties: bigquery: properties: serviceAccountJsonConfig: type: string enableStorageApi: type: boolean enableDriveAccess: type: boolean projectId: type: string required: - serviceAccountJsonConfig - projectId type: object required: - bigquery type: object - properties: databricks: properties: accessToken: type: string jdbcUrl: type: string required: - accessToken - jdbcUrl type: object required: - databricks type: object - properties: postgres: properties: password: type: string username: type: string database: type: string port: type: number format: double hostname: type: string required: - password - username - database - port - hostname type: object required: - postgres type: object - properties: redshift: properties: sslRootCert: type: string nullable: true password: type: string username: type: string database: type: string port: type: number format: double host: type: string required: - password - username - database - port - host type: object required: - redshift type: object - properties: snowflake: properties: role: type: string nullable: true passphrase: type: string privateKey: type: string username: type: string schema: type: string nullable: true database: type: string warehouse: type: string accountName: type: string required: - passphrase - privateKey - username - database - warehouse - accountName type: object required: - snowflake type: object - properties: trino: properties: sessionProperties: items: properties: value: type: string key: type: string required: - value - key type: object type: array nullable: true password: type: string username: type: string schema: type: string catalog: type: string port: type: number format: double hostname: type: string required: - username - port - hostname type: object required: - trino type: object EnumValues_typeofDataConnectionPublicSharingAccessLevelEnum_: type: string enum: - NONE - VIEW_RESULTS DataConnectionPublicSharingAccessLevelEnum: $ref: '#/components/schemas/EnumValues_typeofDataConnectionPublicSharingAccessLevelEnum_' EditConnectionDetails: anyOf: - properties: athena: properties: secretAccessKey: type: string accessKeyId: type: string workgroup: type: string nullable: true catalog: type: string nullable: true s3OutputPath: type: string port: type: number format: double hostname: type: string type: object required: - athena type: object - properties: bigquery: properties: serviceAccountJsonConfig: type: string enableStorageApi: type: boolean enableDriveAccess: type: boolean projectId: type: string type: object required: - bigquery type: object - properties: databricks: properties: accessToken: type: string jdbcUrl: type: string type: object required: - databricks type: object - properties: postgres: properties: password: type: string username: type: string database: type: string port: type: number format: double hostname: type: string type: object required: - postgres type: object - properties: redshift: properties: sslRootCert: type: string nullable: true password: type: string username: type: string database: type: string port: type: number format: double host: type: string type: object required: - redshift type: object - properties: snowflake: properties: role: type: string nullable: true passphrase: type: string privateKey: type: string username: type: string schema: type: string nullable: true database: type: string warehouse: type: string accountName: type: string type: object required: - snowflake type: object - properties: trino: properties: sessionProperties: items: properties: value: type: string key: type: string required: - value - key type: object type: array nullable: true password: type: string username: type: string schema: type: string catalog: type: string port: type: number format: double hostname: type: string type: object required: - trino type: object UpdateDataConnectionSchemaResponse: description: Response body for successful schema object status updates properties: updated: properties: tables: items: properties: status: type: string nullable: true name: type: string required: - status - name type: object type: array schemas: items: properties: status: type: string nullable: true name: type: string required: - status - name type: object type: array databases: items: properties: status: type: string nullable: true name: type: string required: - status - name type: object type: array required: - tables - schemas - databases type: object required: - updated type: object additionalProperties: false SchemaObjectUpdate: description: 'Schema object update request - specifies a status change for a database, schema, or table. Currently, only status updates are supported.' properties: type: type: string enum: - DATABASE - SCHEMA - TABLE description: The type of object to update name: type: string description: The name of the object - simple for DATABASE, qualified for SCHEMA/TABLE status: type: string nullable: true description: The status name to apply, or null to remove the current status required: - type - name - status type: object additionalProperties: false UpdateDataConnectionSchemaRequest: description: 'Request body for updating data connection schema object statuses Currently, only status updates are supported.' properties: updates: items: $ref: '#/components/schemas/SchemaObjectUpdate' type: array description: Array of updates to apply required: - updates type: object additionalProperties: false UpdateSchemaObjectErrorDetail: description: Details about a failed update properties: name: type: string description: The name of the object type: type: string enum: - DATABASE - SCHEMA - TABLE description: The type of object reason: type: string enum: - not_found - invalid_status - ambiguous_name - database_not_supported - invalid_name_format description: The reason for the failure value: type: string description: The invalid value (for invalid_status errors) or additional context required: - name - type - reason type: object additionalProperties: false OrgId: type: string description: Unique ID for a workspace. EnumValues_typeofOrgRole_: type: string enum: - ADMIN - MANAGER - EDITOR - EXPLORER - MEMBER - GUEST - EMBEDDED_USER - ANONYMOUS OrgRole: $ref: '#/components/schemas/EnumValues_typeofOrgRole_' Pick_UserApiResource.Exclude_keyofUserApiResource.lastLoginDate__: properties: id: $ref: '#/components/schemas/UserId' name: $ref: '#/components/schemas/Name' role: $ref: '#/components/schemas/OrgRole' email: type: string required: - id - role - email type: object description: From T, pick a set of properties whose keys are in the union K MeResponse: properties: id: $ref: '#/components/schemas/UserId' name: $ref: '#/components/schemas/Name' role: $ref: '#/components/schemas/OrgRole' email: type: string org: properties: id: $ref: '#/components/schemas/OrgId' required: - id type: object token: properties: exp: type: number format: double nullable: true required: - exp type: object required: - id - role - email - org type: object additionalProperties: false UserApiResource: properties: id: $ref: '#/components/schemas/UserId' name: $ref: '#/components/schemas/Name' role: $ref: '#/components/schemas/OrgRole' email: type: string lastLoginDate: type: string nullable: true required: - id - role - email - lastLoginDate type: object additionalProperties: false ListUsersResponse: properties: values: items: $ref: '#/components/schemas/UserApiResource' type: array pagination: $ref: '#/components/schemas/PaginationApiResource' required: - values - pagination type: object additionalProperties: false EnumValues_typeofListUsersSortByEnum_: type: string enum: - NAME - EMAIL ListUsersSortByEnum: $ref: '#/components/schemas/EnumValues_typeofListUsersSortByEnum_' EnumValues_typeofCollectionAccess_: type: string CollectionAccess: $ref: '#/components/schemas/EnumValues_typeofCollectionAccess_' CollectionApiResourceSharing: properties: users: items: properties: access: $ref: '#/components/schemas/CollectionAccess' id: $ref: '#/components/schemas/UserId' required: - access - id type: object type: array groups: items: properties: access: $ref: '#/components/schemas/CollectionAccess' id: $ref: '#/components/schemas/GroupId' required: - access - id type: object type: array workspace: properties: members: $ref: '#/components/schemas/CollectionAccess' type: object type: object additionalProperties: false CollectionApiResource: properties: id: $ref: '#/components/schemas/CollectionId' name: $ref: '#/components/schemas/Name' description: type: string creator: properties: email: type: string id: $ref: '#/components/schemas/UserId' required: - email - id type: object sharing: $ref: '#/components/schemas/CollectionApiResourceSharing' required: - id - name - sharing type: object additionalProperties: false ListCollectionsResponse: properties: values: items: $ref: '#/components/schemas/CollectionApiResource' type: array pagination: $ref: '#/components/schemas/PaginationApiResource' required: - values - pagination type: object additionalProperties: false EnumValues_typeofListCollectionsSortByEnum_: type: string enum: - NAME nullable: false ListCollectionsSortByEnum: $ref: '#/components/schemas/EnumValues_typeofListCollectionsSortByEnum_' OrgGuideFileId: type: string format: uuid description: Unique ID for a guide file. This can be found by going into the menu of a guide file in the guide files side bar. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ GuideFileApiResource: properties: id: $ref: '#/components/schemas/OrgGuideFileId' description: The unique ID of the guide file. filePath: type: string description: 'The file path of the guide file. example: "guide.md"' required: - id - filePath type: object additionalProperties: false ListDraftGuidesResponse: properties: values: items: $ref: '#/components/schemas/GuideFileApiResource' type: array pagination: $ref: '#/components/schemas/PaginationApiResource' traceId: $ref: '#/components/schemas/TraceId' required: - values - pagination - traceId type: object additionalProperties: false UpsertGuideDraftResponsePayload: properties: files: items: $ref: '#/components/schemas/GuideFileApiResource' type: array warnings: items: properties: message: type: string filePath: type: string required: - message - filePath type: object type: array traceId: $ref: '#/components/schemas/TraceId' required: - files - warnings - traceId type: object additionalProperties: false UnknownExternalSourceLocatorInput: properties: id: type: string description: An optional identifier that can be used to distinguish between different unspecified external sources. source: type: string enum: - unknown nullable: false required: - source type: object UnknownExternalSourceInput: $ref: '#/components/schemas/UnknownExternalSourceLocatorInput' GithubExternalSourceLocatorInput: properties: repo: type: string description: The name of the github repository. owner: type: string description: The owner of the github repository. base: type: string description: The base URL of the github instance. This is usually `https://github.com` (default) unless uploaded from a self-hosted github instance. source: type: string enum: - github nullable: false required: - repo - owner - source type: object GithubExternalSourceLocatorWithMetadataInput: allOf: - $ref: '#/components/schemas/GithubExternalSourceLocatorInput' - properties: branch: type: string description: 'The git branch for the uploaded version of the guide file e.g. `main`' commitHash: type: string description: The git commit hash for the uploaded version of the guide file required: - branch - commitHash type: object GithubExternalSourceInput: allOf: - $ref: '#/components/schemas/GithubExternalSourceLocatorWithMetadataInput' - properties: path: type: string description: 'The path to the guide file within the github repository e.g. `guides/guide.md`' required: - path type: object ExternalSourceInput: anyOf: - $ref: '#/components/schemas/UnknownExternalSourceInput' - $ref: '#/components/schemas/GithubExternalSourceInput' description: 'A unique identifier for a file that is sourced from an external source. This is used to track the where the guide file was authored from and where we expect updates to come from.' UpsertGuideDraftRequestBody: properties: forceWrite: type: boolean description: 'If true, will overwrite an existing guide that is synced from a different source if there is a guide of the same name e.g. guide1.md is authored in Hex, request.files includes guide1.md -> this will overwrite the guide that was authored in Hex default: false' files: items: properties: externalSource: $ref: '#/components/schemas/ExternalSourceInput' description: The external source identifier for the guide file. This is used to track the where the guide file was authored from and where we expect updates to come from. contents: type: string description: The contents of the guide file. Maximum length is 100000 characters. maxLength: 100000 filePath: type: string description: 'The file path of the guide file. example: "guide.md"' additionalProperties: {} required: - contents - filePath type: object type: array description: A mapping from filePath -> contents required: - files type: object additionalProperties: false PublishGuidesResponsePayload: properties: message: type: string publishedGuides: items: $ref: '#/components/schemas/GuideFileApiResource' type: array traceId: $ref: '#/components/schemas/TraceId' required: - message - publishedGuides - traceId type: object additionalProperties: false PublishGuidesRequestBody: properties: orgGuideFileIds: items: $ref: '#/components/schemas/OrgGuideFileId' type: array description: The IDs of the guides to publish if publishAllGuides is false. publishAllDraftGuides: type: boolean description: Publish all draft guides (ignores the orgGuideFileIds field if true) type: object additionalProperties: false CreateContextVersionResponse: properties: contextVersionId: type: string orgId: type: string traceId: type: string required: - contextVersionId - orgId - traceId type: object additionalProperties: false UnknownExternalSourceLocatorWithMetadataInput: $ref: '#/components/schemas/UnknownExternalSourceLocatorInput' ExternalSourceLocatorWithMetadataInput: anyOf: - $ref: '#/components/schemas/UnknownExternalSourceLocatorWithMetadataInput' - $ref: '#/components/schemas/GithubExternalSourceLocatorWithMetadataInput' CreateContextVersionRequestBody: properties: externalSource: $ref: '#/components/schemas/ExternalSourceLocatorWithMetadataInput' description: The external source that the context changeset is sourced from required: - externalSource type: object additionalProperties: false UpdateContextVersionOperationResult: anyOf: - properties: warnings: items: properties: message: type: string filePath: type: string required: - message - filePath type: object type: array noops: items: properties: filePath: type: string required: - filePath type: object type: array files: items: properties: result: type: string enum: - created - updated filePath: type: string id: type: string required: - result - filePath - id type: object type: array type: type: string enum: - upsert_guide nullable: false required: - warnings - noops - files - type type: object - properties: removedGuides: items: properties: externalSource: allOf: - $ref: '#/components/schemas/ExternalSourceInput' nullable: true hexFilePath: type: string required: - externalSource - hexFilePath type: object type: array type: type: string enum: - prune_guides nullable: false required: - removedGuides - type type: object UpdateContextVersionResponse: properties: contextVersionId: type: string result: $ref: '#/components/schemas/UpdateContextVersionOperationResult' traceId: type: string required: - contextVersionId - result - traceId type: object additionalProperties: false ExternalSourceLocatorInput: anyOf: - $ref: '#/components/schemas/UnknownExternalSourceLocatorInput' - $ref: '#/components/schemas/GithubExternalSourceLocatorInput' description: A locator that points to an external source that could include a bunch of context. For example, a github repository UpdateContextVersionOperation: anyOf: - properties: forceWrite: type: boolean description: If true, will overwrite an existing guide that is synced from a different source if there is a guide of the same name files: items: properties: externalSource: $ref: '#/components/schemas/ExternalSourceInput' description: The external source that the guide is sourced from contents: type: string description: The contents of the guide filePath: type: string description: The file path of the guide that will show up in Hex required: - contents - filePath type: object type: array type: type: string enum: - upsert_guide nullable: false description: Upsert one or more guides against the draft version required: - files - type type: object - properties: externalSource: $ref: '#/components/schemas/ExternalSourceLocatorInput' description: The external source that the guides are sourced from - this is used to figure out which guides Hex expects to be synced and which guides should be deleted guideFilePaths: items: type: string type: array description: The file paths of the guides that currently exist in the repo type: type: string enum: - prune_guides nullable: false description: Prune guides that are not present in the supplied guidesFilePaths required: - externalSource - guideFilePaths - type type: object UpdateContextVersionRequestBody: properties: operation: $ref: '#/components/schemas/UpdateContextVersionOperation' required: - operation type: object additionalProperties: false PublishContextVersionResponse: properties: contextVersionId: type: string required: - contextVersionId type: object additionalProperties: false PublishContextVersionRequestBody: properties: updateLatestVersion: type: boolean description: If true, will also update the latest version of the context with the changes from the draft version title: type: string description: A short, human-readable name for the version. description: type: string description: A long, human-readable representation for the version. required: - updateLatestVersion type: object additionalProperties: false AgentChatThreadApiId: type: string format: uuid description: Unique ID for a Hex agent chat thread. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ PostThreadsResponseBody: properties: threadId: $ref: '#/components/schemas/AgentChatThreadApiId' description: Id of the thread. url: type: string description: URL to view the thread in the Hex UI. createdAt: type: string description: ISO 8601 timestamp of when the thread was created. traceId: $ref: '#/components/schemas/TraceId' description: Trace ID for debugging this request. required: - threadId - url - createdAt - traceId type: object additionalProperties: false PromptAttachmentEntityId: type: string format: uuid description: Id of the entity to attach to this prompt. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ PromptAttachment: properties: type: type: string enum: - DataConnection - Project - SemanticDataset - SemanticView - Table id: $ref: '#/components/schemas/PromptAttachmentEntityId' required: - type - id type: object additionalProperties: false PostThreadsRequestBody: properties: prompt: type: string description: The prompt to send to the Hex agent. minLength: 1 attachments: items: $ref: '#/components/schemas/PromptAttachment' type: array description: 'Optional attachments referenced in the prompt. Please note that only 1 DataConnection may be attached at a time.' required: - prompt type: object additionalProperties: false Pick_PostThreadsResponseBody.Exclude_keyofPostThreadsResponseBody.createdAt__: properties: traceId: $ref: '#/components/schemas/TraceId' description: Trace ID for debugging this request. threadId: $ref: '#/components/schemas/AgentChatThreadApiId' description: Id of the thread. url: type: string description: URL to view the thread in the Hex UI. required: - traceId - threadId - url type: object description: From T, pick a set of properties whose keys are in the union K Omit_PostThreadsResponseBody.createdAt_: $ref: '#/components/schemas/Pick_PostThreadsResponseBody.Exclude_keyofPostThreadsResponseBody.createdAt__' description: Construct a type with the properties of T except for those in type K. PostThreadsFollowupResponseBody: $ref: '#/components/schemas/Omit_PostThreadsResponseBody.createdAt_' GetThreadResponseRunningBody: properties: status: type: string enum: - RUNNING nullable: false traceId: $ref: '#/components/schemas/TraceId' required: - status - traceId type: object additionalProperties: false AgentChatMessageApiId: type: string format: uuid description: Unique ID for a Hex agent chat message in a thread. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ThreadResponseError: properties: type: type: string message: type: string required: - type - message type: object additionalProperties: false GetThreadResponseErrorBody: properties: status: type: string enum: - ERROR nullable: false messageId: $ref: '#/components/schemas/AgentChatMessageApiId' error: $ref: '#/components/schemas/ThreadResponseError' traceId: $ref: '#/components/schemas/TraceId' required: - status - messageId - error - traceId type: object additionalProperties: false Pick_CellApiResource.id-or-staticId-or-label_: properties: id: $ref: '#/components/schemas/CellId' staticId: $ref: '#/components/schemas/StaticCellId' label: type: string nullable: true required: - id - staticId - label type: object description: From T, pick a set of properties whose keys are in the union K Pick_ProjectApiResource.id_: properties: id: $ref: '#/components/schemas/ProjectId' required: - id type: object description: From T, pick a set of properties whose keys are in the union K AgentChatApiMessageContent: anyOf: - properties: text: type: string description: Markdown response from the agent. type: type: string enum: - text nullable: false required: - text - type type: object - properties: cell: $ref: '#/components/schemas/Pick_CellApiResource.id-or-staticId-or-label_' description: A cell the agent referenced in the response. required: - cell type: object - properties: project: $ref: '#/components/schemas/Pick_ProjectApiResource.id_' description: A project the agent referenced in the response. required: - project type: object GetThreadResponseIdleBody: properties: status: type: string enum: - IDLE nullable: false messageId: $ref: '#/components/schemas/AgentChatMessageApiId' response: items: $ref: '#/components/schemas/AgentChatApiMessageContent' type: array traceId: $ref: '#/components/schemas/TraceId' required: - status - messageId - response - traceId type: object additionalProperties: false GetThreadResponseResponseBody: anyOf: - $ref: '#/components/schemas/GetThreadResponseRunningBody' - $ref: '#/components/schemas/GetThreadResponseErrorBody' - $ref: '#/components/schemas/GetThreadResponseIdleBody' ListThreadsThreadTypeLabel: type: string description: User-facing label for the type of agent thread. ListThreadsSourceFilter: type: string enum: - HEX - SLACK - MCP - PUBLIC_API description: 'Filter for the source the first message of the thread came from. Use `HEX` for threads created via the Hex web app.' ListThreadsThreadResource: properties: id: $ref: '#/components/schemas/AgentChatThreadApiId' description: Id of the thread. orgId: type: string description: Id of the workspace the thread belongs to. userId: type: string nullable: true description: Id of the user that created the thread. title: type: string nullable: true description: Title of the thread, when available. Null for private threads. type: $ref: '#/components/schemas/ListThreadsThreadTypeLabel' source: $ref: '#/components/schemas/ListThreadsSourceFilter' url: type: string description: URL to view the thread in the Hex UI. createdAt: type: string description: ISO 8601 timestamp of when the thread was created. sensitive: type: boolean description: 'Whether the thread has been marked as sensitive. When `true`, the thread''s contents (such as title) are hidden from callers other than the thread author.' required: - id - orgId - userId - title - type - source - url - createdAt - sensitive type: object additionalProperties: false ListThreadsResponseBody: properties: values: items: $ref: '#/components/schemas/ListThreadsThreadResource' type: array pagination: properties: before: allOf: - $ref: '#/components/schemas/ApiPaginationCursor' nullable: true description: 'Cursor to the previous page of results, or null if there are no previous results.' after: allOf: - $ref: '#/components/schemas/ApiPaginationCursor' nullable: true description: Cursor to the next page of results, or null if there are no more. required: - before - after type: object traceId: $ref: '#/components/schemas/TraceId' description: Trace ID for debugging this request. required: - values - pagination - traceId type: object additionalProperties: false ContextSuggestionIssueId: type: string format: uuid description: Unique ID for a context suggestion issue. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ContextSuggestionIssueStatus: type: string enum: - OPEN - COMPLETED - DISMISSED - IN_PROGRESS - RESOLVED Suggestion: properties: id: $ref: '#/components/schemas/ContextSuggestionIssueId' title: type: string description: The title of the suggestion summary: type: string description: The summary of the suggestion status: $ref: '#/components/schemas/ContextSuggestionIssueStatus' description: The status of the suggestion createdDate: type: string format: date-time description: The date the suggestion was created lastSourceAddedDate: type: string format: date-time nullable: true description: The date the last source was added to the suggestion required: - id - title - summary - status - createdDate - lastSourceAddedDate type: object additionalProperties: false GetSuggestionsResponse: properties: values: items: $ref: '#/components/schemas/Suggestion' type: array pagination: $ref: '#/components/schemas/PaginationApiResource' traceId: $ref: '#/components/schemas/TraceId' required: - values - pagination - traceId type: object additionalProperties: false EnumValues_typeofListContextSuggestionIssuesSortByEnum_: type: string enum: - CREATED_DATE - EVIDENCE_COUNT - LAST_SOURCE_ADDED_DATE ListContextSuggestionIssuesSortByEnum: $ref: '#/components/schemas/EnumValues_typeofListContextSuggestionIssuesSortByEnum_' SuggestionSource: properties: warning: properties: summary: type: string description: The summary of the warning warningType: type: string description: The type of warning, one of user_doubt, missing_context, data_limitation, or other required: - summary - warningType type: object nullable: true agentChatThread: properties: intent: type: string nullable: true description: Summary of the intent of the agent chat thread user: properties: name: type: string nullable: true id: type: string required: - name - id type: object nullable: true description: The user that the agent chat thread is associated with title: type: string nullable: true description: The title of the agent chat thread id: type: string required: - intent - user - title - id type: object nullable: true description: The agent chat thread that the warning is associated with required: - warning - agentChatThread type: object additionalProperties: false ContextSuggestionDataWarehouseUpdateId: type: string format: uuid description: Unique ID for a proposed data warehouse update within a context suggestion. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ ContextSuggestionFileUpdateId: type: string format: uuid description: Unique ID for a proposed file update within a context suggestion. pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ SuggestionUpdateType: type: string enum: - FILE_UPDATE - DATA_WAREHOUSE_UPDATE ContextSuggestionUpdateStatus: type: string enum: - COMPLETED - DISMISSED - NEEDS_REVIEW - STALE EnumValues_typeofContextSuggestionDataWarehouseUpdateType_: type: string enum: - UPDATE_DESCRIPTION - UPDATE_STATUS ContextSuggestionDataWarehouseUpdateType: $ref: '#/components/schemas/EnumValues_typeofContextSuggestionDataWarehouseUpdateType_' MetadataDescriptions: properties: hexDescription: type: string nullable: true description: The Hex-managed description warehouseComment: type: string nullable: true description: The warehouse comment dbtDescription: type: string nullable: true description: The dbt description required: - hexDescription - warehouseComment - dbtDescription type: object additionalProperties: false DataWarehouseUpdatePayload: properties: updateType: $ref: '#/components/schemas/ContextSuggestionDataWarehouseUpdateType' description: The type of data warehouse update, one of UPDATE_DESCRIPTION or UPDATE_STATUS dataConnectionName: type: string nullable: true description: The name of the data connection this resource belongs to databaseName: type: string nullable: true description: The database name. Null for warehouse types that don't use a database segment (e.g. some Postgres connections). schemaName: type: string nullable: true description: The schema name tableName: type: string nullable: true description: The table name columnName: type: string nullable: true description: The column name, if this is a column-level update descriptionUpdate: properties: newDescription: type: string nullable: true description: The proposed new description currentDescriptions: $ref: '#/components/schemas/MetadataDescriptions' description: The current descriptions from various sources required: - newDescription - currentDescriptions type: object nullable: true description: Present when updateType is UPDATE_DESCRIPTION. Contains the current and proposed descriptions. statusUpdate: properties: newStatusName: type: string nullable: true description: The proposed new status name currentStatusName: type: string nullable: true description: The current status name, if any required: - newStatusName - currentStatusName type: object nullable: true description: Present when updateType is UPDATE_STATUS. Contains the current and proposed status names. required: - updateType - dataConnectionName - databaseName - schemaName - tableName - columnName - descriptionUpdate - statusUpdate type: object additionalProperties: false FileUpdateType: type: string enum: - CREATE_ORG_GUIDE_FILE - EDIT_ORG_GUIDE_FILE - EDIT_WORKSPACE_RULES FileUpdatePayload: properties: updateType: $ref: '#/components/schemas/FileUpdateType' description: 'The type of guide update, e.g. CREATE_ORG_GUIDE_FILE, EDIT_ORG_GUIDE_FILE, EDIT_WORKSPACE_RULES. New values may be added to this enum in the future.' filePath: type: string description: The file path for the guide update diff: type: string description: The Aider text diff of the changes required: - updateType - filePath - diff type: object additionalProperties: false ProposedChange: properties: id: anyOf: - $ref: '#/components/schemas/ContextSuggestionDataWarehouseUpdateId' - $ref: '#/components/schemas/ContextSuggestionFileUpdateId' description: The unique identifier of the proposed change updateType: $ref: '#/components/schemas/SuggestionUpdateType' description: The type of change, either "FILE_UPDATE" or "DATA_WAREHOUSE_UPDATE" status: $ref: '#/components/schemas/ContextSuggestionUpdateStatus' description: The review status of the proposed change, one of NEEDS_REVIEW, ACCEPTED, REJECTED, STALE, or RESOLVED_EXTERNALLY payload: anyOf: - $ref: '#/components/schemas/DataWarehouseUpdatePayload' - $ref: '#/components/schemas/FileUpdatePayload' description: The contents of the proposed change required: - id - updateType - status - payload type: object additionalProperties: false GetSuggestionResponse: properties: id: $ref: '#/components/schemas/ContextSuggestionIssueId' title: type: string description: The title of the suggestion summary: type: string description: The summary of the suggestion status: $ref: '#/components/schemas/ContextSuggestionIssueStatus' description: The status of the suggestion createdDate: type: string format: date-time description: The date the suggestion was created lastSourceAddedDate: type: string format: date-time nullable: true description: The date the last source was added to the suggestion sources: items: $ref: '#/components/schemas/SuggestionSource' type: array proposedChanges: items: $ref: '#/components/schemas/ProposedChange' type: array required: - id - title - summary - status - createdDate - lastSourceAddedDate - sources - proposedChanges type: object additionalProperties: false UpdateSuggestionResponse: properties: suggestion: $ref: '#/components/schemas/Suggestion' traceId: $ref: '#/components/schemas/TraceId' required: - suggestion - traceId type: object additionalProperties: false UpdateSuggestionBody: properties: status: $ref: '#/components/schemas/ContextSuggestionIssueStatus' description: The status to update the suggestion to rejectionReason: type: string nullable: true description: The reason for the rejection if status is dismissed required: - status - rejectionReason type: object additionalProperties: false TriggerSuggestionReviewResponse: properties: suggestion: $ref: '#/components/schemas/Suggestion' traceId: $ref: '#/components/schemas/TraceId' required: - suggestion - traceId type: object additionalProperties: false UpdateSuggestionUpdateResponse: properties: suggestionUpdate: properties: rejectionReason: type: string nullable: true status: $ref: '#/components/schemas/ContextSuggestionUpdateStatus' id: type: string required: - rejectionReason - status - id type: object traceId: $ref: '#/components/schemas/TraceId' required: - suggestionUpdate - traceId type: object additionalProperties: false UpdateSuggestionUpdateBody: properties: updateTarget: $ref: '#/components/schemas/SuggestionUpdateType' description: The target of the update status: $ref: '#/components/schemas/ContextSuggestionUpdateStatus' description: The status to update the suggestion update to rejectionReason: type: string nullable: true description: The reason for the rejection if status is dismissed required: - updateTarget - status - rejectionReason type: object additionalProperties: false EnumValues_typeofCellType_: type: string enum: - CODE - MARKDOWN - DISPLAY_TABLE - INPUT - SQL - VEGA_CHART - CELL_GROUP - METRIC - TEXT - MAP - WRITEBACK - DBT_METRIC - PIVOT - FILTER - COMPONENT_IMPORT - CHART - BLOCK - EXPLORE - COLLAPSIBLE CellType: $ref: '#/components/schemas/EnumValues_typeofCellType_' CellApiResource: properties: id: $ref: '#/components/schemas/CellId' staticId: $ref: '#/components/schemas/StaticCellId' cellType: $ref: '#/components/schemas/CellType' label: type: string nullable: true dataConnectionId: allOf: - $ref: '#/components/schemas/DataConnectionId' nullable: true contents: properties: markdownCell: properties: source: type: string required: - source type: object nullable: true sqlCell: properties: outputDataframe: type: string source: type: string required: - outputDataframe - source type: object nullable: true codeCell: properties: source: type: string required: - source type: object nullable: true required: - markdownCell - sqlCell - codeCell type: object projectId: $ref: '#/components/schemas/ProjectId' required: - id - staticId - cellType - label - dataConnectionId - contents - projectId type: object additionalProperties: false CellsListApiResource: properties: values: items: $ref: '#/components/schemas/CellApiResource' type: array pagination: $ref: '#/components/schemas/PaginationApiResource' required: - values - pagination type: object additionalProperties: false CellRunResponsePayload: properties: cellId: $ref: '#/components/schemas/CellId' runId: allOf: - $ref: '#/components/schemas/ResponseRunId' nullable: true description: The run ID. Null when dryRun is true. status: type: string enum: - PENDING - RUNNING runUrl: allOf: - $ref: '#/components/schemas/RunUrl' nullable: true description: URL to view the run. Null when dryRun is true. runStatusUrl: allOf: - $ref: '#/components/schemas/RunStatusUrl' nullable: true description: URL to check run status. Null when dryRun is true. traceId: $ref: '#/components/schemas/TraceId' dryRun: type: boolean description: True if this was a dry run (validation only, no execution). required: - cellId - runId - status - runUrl - runStatusUrl - traceId type: object additionalProperties: false ChartImageResponsePayload: properties: cellId: $ref: '#/components/schemas/CellId' imageBase64: type: string mimeType: type: string required: - cellId - imageBase64 - mimeType type: object additionalProperties: false securitySchemes: bearerAuth: type: http scheme: bearer info: title: Hex API version: 1.0.0 description: API specification for the Hex External API license: name: UNLICENSED contact: {} openapi: 3.0.0 paths: /v1/embedding/createPresignedUrl/{projectId}: post: operationId: CreatePresignedUrl responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EmbeddingResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '422': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: Create an embedded url for a project parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmbeddingRequest' /v1/projects: post: operationId: CreateProject responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/ProjectApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Create a new project. Creates a new project in the workspace with the specified title. Optionally provide a description and project language.' parameters: [] requestBody: required: true content: application/json: schema: properties: description: type: string title: type: string required: - title type: object get: operationId: ListProjects responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ProjectsListApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: List all viewable projects, sorted by most recently created first. parameters: - in: query name: includeArchived required: false schema: default: false type: boolean - in: query name: includeComponents required: false schema: default: false type: boolean - in: query name: includeTrashed required: false schema: default: false type: boolean - in: query name: includeSharing required: false schema: default: false type: boolean - in: query name: statuses required: false schema: default: [] type: array items: type: string - in: query name: categories required: false schema: default: [] type: array items: type: string - in: query name: creatorEmail required: false schema: default: null type: string - in: query name: ownerEmail required: false schema: default: null type: string - in: query name: collectionId required: false schema: default: null type: string - in: query name: limit required: false schema: $ref: '#/components/schemas/PageSize' - in: query name: after required: false schema: default: null - in: query name: before required: false schema: default: null - in: query name: sortBy required: false schema: $ref: '#/components/schemas/SortByEnum' - in: query name: sortDirection required: false schema: $ref: '#/components/schemas/SortDirectionEnum' /v1/projects/{projectId}: get: operationId: GetProject responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ProjectApiResource' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: Get metadata about a single project. parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' - in: query name: includeSharing required: false schema: default: false type: boolean patch: operationId: UpdateProject responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ProjectApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: Use this endpoint to add or remove a status (including endorsements) from a project parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' requestBody: required: true content: application/json: schema: properties: status: type: string nullable: true type: object /v1/projects/{projectId}/queriedTables: get: operationId: GetQueriedTables responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ProjectQueriedTablesApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '422': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: Given a project ID, return the list of warehouse tables queried in the project. parameters: - in: query name: limit required: false schema: $ref: '#/components/schemas/PageSize' - in: query name: after required: false schema: default: null - in: query name: before required: false schema: default: null - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' /v1/projects/{projectId}/sharing/collections: patch: operationId: EditProjectSharingCollections responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EditProjectSharingCollectionsResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Add a project to collections or remove it from collections. For projects, use `CAN_VIEW` to grant the UI permission labeled "Can explore". Use `APP_ONLY` to grant the UI permission labeled "Can view app". Workspace tokens calling this endpoint need to have "Collections -> Write access" scope in addition to "Projects -> Write access" scope.' parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' requestBody: required: true content: application/json: schema: properties: sharing: properties: upsert: properties: collections: items: properties: access: $ref: '#/components/schemas/AccessLevelEnum' collection: properties: id: $ref: '#/components/schemas/CollectionId' required: - id type: object required: - access - collection type: object type: array maxItems: 25 required: - collections type: object required: - upsert type: object required: - sharing type: object /v1/projects/{projectId}/sharing/workspaceAndPublic: patch: operationId: EditProjectSharingOrgAndPublic responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EditProjectSharingWorkspaceAndPublicResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Update workspace or public-web sharing for a project. For projects, use `CAN_VIEW` to grant the UI permission labeled "Can explore". Use `APP_ONLY` to grant the UI permission labeled "Can view app".' parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' requestBody: required: true content: application/json: schema: properties: sharing: properties: publicWeb: $ref: '#/components/schemas/PublicWebAccessLevel' workspace: $ref: '#/components/schemas/AccessLevelEnum' type: object required: - sharing type: object /v1/projects/{projectId}/sharing/groups: patch: operationId: EditProjectSharingGroups responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EditProjectSharingGroupsResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Add groups to a project or update/remove their project sharing access. For projects, use `CAN_VIEW` to grant the UI permission labeled "Can explore". Use `APP_ONLY` to grant the UI permission labeled "Can view app".' parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' requestBody: required: true content: application/json: schema: properties: sharing: properties: upsert: properties: groups: items: properties: access: $ref: '#/components/schemas/AccessLevelEnum' group: properties: id: $ref: '#/components/schemas/GroupId' required: - id type: object required: - access - group type: object type: array maxItems: 25 required: - groups type: object required: - upsert type: object required: - sharing type: object /v1/projects/{projectId}/sharing/users: patch: operationId: EditProjectSharingUsers responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/EditProjectSharingUsersResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Add users to a project or update/remove their project sharing access. For projects, use `CAN_VIEW` to grant the UI permission labeled "Can explore". Use `APP_ONLY` to grant the UI permission labeled "Can view app".' parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' requestBody: required: true content: application/json: schema: properties: sharing: properties: upsert: properties: users: items: properties: access: $ref: '#/components/schemas/AccessLevelEnum' user: properties: id: $ref: '#/components/schemas/UserId' required: - id type: object required: - access - user type: object type: array maxItems: 25 required: - users type: object required: - upsert type: object required: - sharing type: object /v1/semantic-(projects|models)/{semanticProjectId}/ingest: post: operationId: IngestSemanticProject responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/SemanticProjectsSyncResponsePayload' '400': description: '' content: application/json: schema: allOf: - $ref: '#/components/schemas/TsoaErrorResponsePayload' - properties: problems: items: $ref: '#/components/schemas/HexSLProblemWithDisplay' type: array type: object '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '415': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '502': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Ingest a semantic project from a zip file. This API endpoint is subject to a maximum of 3 requests per minute.' parameters: - in: path name: semanticProjectId required: true schema: $ref: '#/components/schemas/SemanticProjectId' requestBody: required: true content: application/json: schema: properties: verbose: type: boolean description: Whether to respond with detail on which components of the semantic layer were successfully synced default: true debug: type: boolean description: Whether to include additional debug information default: false dryRun: type: boolean description: If enabled, the sync will not actually write to the database type: object /v1/semantic-(projects|models)/{semanticProjectId}: patch: operationId: UpdateSemanticProject responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateSemanticProjectResponse' '400': description: '' content: application/json: schema: allOf: - $ref: '#/components/schemas/Omit_TsoaErrorResponsePayload.details_' - properties: details: items: $ref: '#/components/schemas/UpdateStatusErrorDetail' type: array type: object '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: allOf: - $ref: '#/components/schemas/Omit_TsoaErrorResponsePayload.details_' - properties: details: items: $ref: '#/components/schemas/UpdateStatusErrorDetail' type: array type: object description: 'Use this endpoint to add or remove a status (including endorsements) from datasets and views within a semantic project This endpoint uses atomic semantics - if any update in the batch fails validation, the entire request fails and no changes are applied.' parameters: - in: path name: semanticProjectId required: true schema: $ref: '#/components/schemas/SemanticProjectId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateSemanticProjectRequest' /v1/projects/{projectId}/runs: post: operationId: RunProject responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/ProjectRunResponsePayload' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '422': description: '' content: application/json: schema: anyOf: - $ref: '#/components/schemas/TsoaErrorResponsePayload' - $ref: '#/components/schemas/InvalidParamPayload' '503': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Trigger a run of the latest published version of a project. This API endpoint is subject to a maximum of 20 requests per minute and 60 requests per hour.' parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' - in: header name: flag-config-override required: false schema: type: string requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/RunProjectRequestBody' get: operationId: GetProjectRuns responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ProjectRunsResponsePayload' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '422': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Get the status of runs of a project. By default, all run types are returned (API-triggered, scheduled, and publish/refresh runs). Use the `runTriggerFilter` parameter to filter to a specific type.' parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' - in: query name: limit required: false schema: $ref: '#/components/schemas/PageSize' - in: query name: offset required: false schema: $ref: '#/components/schemas/Offset' - in: query name: statusFilter required: false schema: $ref: '#/components/schemas/ProjectRunStatus' - description: 'Filter by how the run was triggered Valid values: `API`, `SCHEDULED`, `APP_REFRESH`' in: query name: runTriggerFilter required: false schema: $ref: '#/components/schemas/RunTypeFilter' /v1/projects/{projectId}/runs/{runId}: get: operationId: GetRunStatus responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ProjectStatusResponsePayload' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '422': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: Get the status of a project run. parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' - in: path name: runId required: true schema: $ref: '#/components/schemas/InputRunId' - in: header name: enable-expanded-stats required: false schema: type: string delete: operationId: CancelRun responses: '204': description: '' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '422': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: Cancel a project run. parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' - in: path name: runId required: true schema: $ref: '#/components/schemas/InputRunId' /v1/projects/{projectId}/runs/{runId}/cells/{staticId}/image: get: operationId: GetChartImageFromRun responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ChartImageFromRunResponsePayload' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '422': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Get the rendered PNG image of a chart cell from a completed run by staticCellId. The "staticId" path parameter should be the cell''s staticId (which remains stable across project versions), as opposed to its cellId (which is scoped to a specific version). Returns a JSON object containing the base64-encoded PNG image of the chart cell as rendered at the time of the specified run, along with project/run/cell IDs and MIME type. The cell must have been executed and must not be in an error state. Only chart-type cells are supported. Rate limit: 20 requests per minute.' parameters: - in: path name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' - in: path name: runId required: true schema: $ref: '#/components/schemas/InputRunId' - in: path name: staticId required: true schema: $ref: '#/components/schemas/StaticCellId' /v1/groups/{groupId}: get: operationId: GetGroup responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GroupApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: path name: groupId required: true schema: $ref: '#/components/schemas/GroupId' delete: operationId: DeleteGroup responses: '204': description: '' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: path name: groupId required: true schema: $ref: '#/components/schemas/GroupId' patch: operationId: EditGroup responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GroupApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: path name: groupId required: true schema: $ref: '#/components/schemas/GroupId' requestBody: required: true content: application/json: schema: properties: members: properties: remove: $ref: '#/components/schemas/GroupMembers' add: $ref: '#/components/schemas/GroupMembers' type: object name: $ref: '#/components/schemas/Name' type: object /v1/groups: get: operationId: ListGroups responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListGroupsResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: query name: after required: false schema: default: null - in: query name: before required: false schema: default: null - in: query name: limit required: false schema: $ref: '#/components/schemas/LargerPageSize' - in: query name: sortBy required: false schema: $ref: '#/components/schemas/ListGroupsSortByEnum' - in: query name: sortDirection required: false schema: $ref: '#/components/schemas/SortDirectionEnum' post: operationId: CreateGroup responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/CreateGroupResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: [] requestBody: required: true content: application/json: schema: properties: members: $ref: '#/components/schemas/GroupMembers' name: $ref: '#/components/schemas/Name' required: - name type: object /v1/data-connections/{dataConnectionId}: get: operationId: GetDataConnection responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/DataConnectionWithSensitiveFieldsApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: path name: dataConnectionId required: true schema: $ref: '#/components/schemas/DataConnectionId' patch: operationId: EditDataConnection responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/DataConnectionWithSensitiveFieldsApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '422': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: path name: dataConnectionId required: true schema: $ref: '#/components/schemas/DataConnectionId' requestBody: required: true content: application/json: schema: properties: sharing: properties: workspace: properties: public: $ref: '#/components/schemas/DataConnectionPublicSharingAccessLevelEnum' guests: $ref: '#/components/schemas/DataConnectionSharingAccessLevelEnum' members: $ref: '#/components/schemas/DataConnectionSharingAccessLevelEnum' type: object groups: properties: upsert: items: properties: access: $ref: '#/components/schemas/DataConnectionSharingAccessLevelEnum' group: properties: id: $ref: '#/components/schemas/GroupId' required: - id type: object required: - access - group type: object type: array type: object type: object schemaRefreshAccess: $ref: '#/components/schemas/DataConnectionSchemaRefreshAccess' schemaRefreshSchedule: allOf: - $ref: '#/components/schemas/SchemaRefreshScheduleApiResource' nullable: true schemaFilters: properties: tables: $ref: '#/components/schemas/SchemaEntityFilter' schemas: $ref: '#/components/schemas/SchemaEntityFilter' databases: $ref: '#/components/schemas/SchemaEntityFilter' type: object allowWritebackCells: type: boolean includeMagic: type: boolean connectViaSsh: type: boolean description: type: string connectionDetails: $ref: '#/components/schemas/EditConnectionDetails' name: type: string type: object /v1/data-connections: get: operationId: ListDataConnections responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListDataConnectionsResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: query name: after required: false schema: default: null - in: query name: before required: false schema: default: null - in: query name: limit required: false schema: $ref: '#/components/schemas/PageSize' - in: query name: sortBy required: false schema: $ref: '#/components/schemas/ListDataConnectionsSortByEnum' - in: query name: sortDirection required: false schema: $ref: '#/components/schemas/SortDirectionEnum' post: operationId: CreateDataConnection responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/DataConnectionWithSensitiveFieldsApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '422': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: [] requestBody: required: true content: application/json: schema: properties: sharing: properties: workspace: properties: public: $ref: '#/components/schemas/DataConnectionPublicSharingAccessLevelEnum' guests: $ref: '#/components/schemas/DataConnectionSharingAccessLevelEnum' members: $ref: '#/components/schemas/DataConnectionSharingAccessLevelEnum' type: object groups: items: properties: access: $ref: '#/components/schemas/DataConnectionSharingAccessLevelEnum' group: properties: id: $ref: '#/components/schemas/GroupId' required: - id type: object required: - access - group type: object type: array type: object schemaRefreshAccess: $ref: '#/components/schemas/DataConnectionSchemaRefreshAccess' schemaRefreshSchedule: $ref: '#/components/schemas/SchemaRefreshScheduleApiResource' schemaFilters: properties: tables: $ref: '#/components/schemas/SchemaEntityFilter' schemas: $ref: '#/components/schemas/SchemaEntityFilter' databases: $ref: '#/components/schemas/SchemaEntityFilter' type: object allowWritebackCells: type: boolean includeMagic: type: boolean connectViaSsh: type: boolean description: type: string connectionDetails: $ref: '#/components/schemas/CreateConnectionDetails' type: $ref: '#/components/schemas/DataConnectionApiType' name: $ref: '#/components/schemas/Name' required: - connectionDetails - type - name type: object /v1/data-connections/{dataConnectionId}/schema: patch: operationId: UpdateDataConnectionSchema responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateDataConnectionSchemaResponse' '400': description: '' content: application/json: schema: allOf: - $ref: '#/components/schemas/Omit_TsoaErrorResponsePayload.details_' - properties: details: items: $ref: '#/components/schemas/UpdateSchemaObjectErrorDetail' type: array type: object '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: allOf: - $ref: '#/components/schemas/Omit_TsoaErrorResponsePayload.details_' - properties: details: items: $ref: '#/components/schemas/UpdateSchemaObjectErrorDetail' type: array type: object description: 'Use this endpoint to add or remove a status (including endorsements) from databases, schemas, and tables within a data connection This endpoint uses atomic semantics - if any update in the batch fails validation, the entire request fails and no changes are applied' parameters: - in: path name: dataConnectionId required: true schema: $ref: '#/components/schemas/DataConnectionId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateDataConnectionSchemaRequest' /v1/users/me: get: operationId: Me responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/MeResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: [] /v1/users: get: operationId: ListUsers responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListUsersResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: query name: after required: false schema: default: null - in: query name: before required: false schema: default: null - in: query name: limit required: false schema: $ref: '#/components/schemas/LargerPageSize' - in: query name: sortBy required: false schema: $ref: '#/components/schemas/ListUsersSortByEnum' - in: query name: sortDirection required: false schema: $ref: '#/components/schemas/SortDirectionEnum' - in: query name: groupId required: false schema: default: null /v1/users/{userId}/deactivate: post: operationId: DeactivateUser responses: '200': description: '' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: path name: userId required: true schema: $ref: '#/components/schemas/UserId' /v1/collections/{collectionId}: get: operationId: GetCollection responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CollectionApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: path name: collectionId required: true schema: $ref: '#/components/schemas/CollectionId' patch: operationId: EditCollection responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CollectionApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: path name: collectionId required: true schema: $ref: '#/components/schemas/CollectionId' requestBody: required: true content: application/json: schema: properties: sharing: properties: upsert: $ref: '#/components/schemas/CollectionApiResourceSharing' type: object description: type: string name: $ref: '#/components/schemas/Name' type: object /v1/collections: get: operationId: ListCollections responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListCollectionsResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: query name: after required: false schema: default: null - in: query name: before required: false schema: default: null - in: query name: limit required: false schema: $ref: '#/components/schemas/PageSize' - in: query name: sortBy required: false schema: $ref: '#/components/schemas/ListCollectionsSortByEnum' post: operationId: CreateCollection responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/CollectionApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: [] requestBody: required: true content: application/json: schema: properties: sharing: $ref: '#/components/schemas/CollectionApiResourceSharing' description: type: string name: type: string required: - name type: object /v1/guides/draft/list: get: operationId: ListDraftGuides responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ListDraftGuidesResponse' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: query name: limit required: false schema: $ref: '#/components/schemas/PageSize' - in: query name: after required: false schema: default: null - in: query name: before required: false schema: default: null - description: 'A JSON stringified, URI encoded external source locator example: encodeURIComponent(JSON.stringify({"source":"github","owner":"my-org","repo":"my-repo","baseUrl":"https://github.com"}))' in: query name: externalSource required: false schema: default: null type: string /v1/guides/draft: put: operationId: UpsertGuideDraft responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/UpsertGuideDraftResponsePayload' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Update or create guide drafts by filePath. Accepts a dictionary mapping file paths to their contents. For each file: - If the guide doesn''t exist, it will be created. - If the guide exists but has no draft, a new draft will be created. - If the guide exists with a draft, the draft contents will be updated.' parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpsertGuideDraftRequestBody' /v1/guides/publish: post: operationId: PublishGuideDrafts responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PublishGuidesResponsePayload' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: Publish all currently drafted guides. parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PublishGuidesRequestBody' /v1/guides/draft/{orgGuideFileId}: delete: operationId: DeleteGuideDraft responses: '204': description: '' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' parameters: - in: path name: orgGuideFileId required: true schema: $ref: '#/components/schemas/OrgGuideFileId' /v1/cells: get: operationId: ListCells responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CellsListApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'List all cells Returns cells from the draft version of the project only, not the published app. Requires a project id for filtering. For SQL and CODE cells, includes the source code content.' parameters: - in: query name: projectId required: true schema: $ref: '#/components/schemas/ProjectId' - in: query name: limit required: false schema: $ref: '#/components/schemas/PageSize' - in: query name: after required: false schema: default: null - in: query name: before required: false schema: default: null post: operationId: CreateCell responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/CellApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Create a new cell Creates a new cell in the draft version of a project. Currently only CODE and SQL cell types are supported. Requires EDIT_PROJECT_CONTENTS permission on the project.' parameters: [] requestBody: required: true content: application/json: schema: properties: location: properties: childPosition: type: string enum: - FIRST - LAST description: Where to place the cell within the parent section. Defaults to LAST. parentCellId: $ref: '#/components/schemas/CellId' description: Insert the new cell as a child of a section (parent) cell. Use with childPosition to control placement within the section. insertAfterCellId: $ref: '#/components/schemas/CellId' description: Insert the new cell after this cell ID. The cell must belong to the target project. type: object description: Controls where the new cell is placed. If omitted, the cell is appended to the end of the project. contents: properties: markdownCell: properties: source: type: string required: - source type: object sqlCell: properties: outputDataframe: type: string isDataframeSql: type: boolean description: 'Set to true to create a dataframe SQL cell that queries the outputs of other SQL cells in the project instead of a data connection. Mutually exclusive with dataConnectionId.' dataConnectionId: $ref: '#/components/schemas/DataConnectionId' source: type: string required: - source type: object codeCell: properties: source: type: string required: - source type: object type: object label: type: string cellType: type: string enum: - CODE - SQL - MARKDOWN projectId: $ref: '#/components/schemas/ProjectId' required: - contents - cellType - projectId type: object /v1/cells/{cellId}: get: operationId: GetCell responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CellApiResource' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Get a single cell by ID Returns cells from the draft version of the project only, not the published app. Returns the cell details including id, staticId, cellType, label, dataConnectionId, source contents (for CODE and SQL cells), and projectId.' parameters: - in: path name: cellId required: true schema: $ref: '#/components/schemas/CellId' patch: operationId: UpdateCell responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/CellApiResource' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Update a cell''s source and/or data connection Updates the source code and/or data connection ID for a cell. For SQL cells, can update SQL source and data connection ID. For code cells, can update code source. Requires EDIT_PROJECT_CONTENTS permission on the project containing the cell.' parameters: - in: path name: cellId required: true schema: $ref: '#/components/schemas/CellId' requestBody: required: true content: application/json: schema: properties: contents: properties: markdownCell: properties: source: type: string required: - source type: object sqlCell: properties: outputDataframe: type: string source: type: string required: - source type: object codeCell: properties: source: type: string required: - source type: object type: object dataConnectionId: allOf: - $ref: '#/components/schemas/DataConnectionId' nullable: true type: object delete: operationId: DeleteCell responses: '204': description: '' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Delete a cell Permanently deletes a cell from the draft version of a project. Requires EDIT_PROJECT_CONTENTS permission on the project containing the cell.' parameters: - in: path name: cellId required: true schema: $ref: '#/components/schemas/CellId' /v1/cells/{cellId}/image: get: operationId: GetChartImageFromLogic responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ChartImageResponsePayload' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '403': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '404': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '422': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' '500': description: '' content: application/json: schema: $ref: '#/components/schemas/TsoaErrorResponsePayload' description: 'Get the rendered PNG image of a chart cell from the current notebook session by cellId. The "cellId" path parameter should be the cell''s ID (scoped to a specific version), as opposed to its staticId (which remains stable across versions). Returns a JSON object containing the base64-encoded PNG image of the chart cell as it currently appears in the Logic view, along with the cell ID and MIME type. The cell must have been executed and must not be in an error state. Only chart-type cells are supported. Rate limit: 20 requests per minute.' parameters: - in: path name: cellId required: true schema: $ref: '#/components/schemas/CellId' servers: - url: https://app.hex.tech/api security: - bearerAuth: []