openapi: 3.0.0 info: title: Lightdash AiAgents Schedulers API version: 0.3156.1 description: 'Open API documentation for all public Lightdash API endpoints. # Authentication Before you get started, you might need to create a Personal Access Token to authenticate via the API. You can create a token by following this guide: https://docs.lightdash.com/references/personal_tokens ' license: name: MIT contact: name: Lightdash Support email: support@lightdash.com url: https://docs.lightdash.com/help-and-contact/contact/contact_info/ servers: - url: / tags: - name: Schedulers paths: /api/v1/schedulers/{projectUuid}/logs: get: operationId: getSchedulerLogs responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSchedulerLogsResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Get scheduled logs summary: Get scheduler logs tags: - Schedulers deprecated: true security: [] parameters: - description: The uuid of the project in: path name: projectUuid required: true schema: type: string - description: number of items per page in: query name: pageSize required: false schema: format: double type: number - description: page number in: query name: page required: false schema: format: double type: number - description: search query to filter logs by scheduler name in: query name: searchQuery required: false schema: type: string - description: filter by log statuses (comma-separated) in: query name: statuses required: false schema: type: string - description: filter by creator user UUIDs (comma-separated) in: query name: createdByUserUuids required: false schema: type: string - description: 'filter by destination types (comma-separated: email, slack, msteams, googlechat)' in: query name: destinations required: false schema: type: string /api/v1/schedulers/{projectUuid}/runs: get: operationId: getSchedulerRuns responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSchedulerRunsResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Get paginated scheduler runs with aggregated child job counts summary: List scheduler runs tags: - Schedulers security: [] parameters: - description: The uuid of the project in: path name: projectUuid required: true schema: type: string - description: number of items per page in: query name: pageSize required: false schema: format: double type: number - description: page number in: query name: page required: false schema: format: double type: number - description: search query to filter runs by scheduler name in: query name: searchQuery required: false schema: type: string - description: column to sort by (scheduledTime, createdAt) in: query name: sortBy required: false schema: type: string enum: - scheduledTime - createdAt - description: sort direction (asc or desc) in: query name: sortDirection required: false schema: type: string enum: - asc - desc - description: filter by specific scheduler UUIDs (comma-separated) in: query name: schedulerUuids required: false schema: type: string - description: 'filter by run statuses (comma-separated: completed, partial_failure, failed, running, scheduled)' in: query name: statuses required: false schema: type: string - description: filter by creator user UUIDs (comma-separated) in: query name: createdByUserUuids required: false schema: type: string - description: 'filter by destination types (comma-separated: email, slack, msteams, googlechat)' in: query name: destinations required: false schema: type: string - description: filter by resource type (chart or dashboard) in: query name: resourceType required: false schema: type: string enum: - chart - dashboard - description: filter by resource UUIDs (comma-separated) in: query name: resourceUuids required: false schema: type: string /api/v1/schedulers/runs/{runId}/logs: get: operationId: getRunLogs responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSchedulerRunLogsResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Get detailed logs for a specific scheduler run summary: Get run logs tags: - Schedulers security: [] parameters: - description: The ID of the run (parent job ID) in: path name: runId required: true schema: type: string /api/v1/schedulers/user-schedulers: get: operationId: listUserSchedulers responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSchedulersResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: List all schedulers for the current user across all projects with pagination, search, sorting, and filtering summary: List user schedulers tags: - Schedulers security: [] parameters: - description: number of items per page in: query name: pageSize required: false schema: format: double type: number - description: page number in: query name: page required: false schema: format: double type: number - description: search query to filter schedulers by name in: query name: searchQuery required: false schema: type: string - description: column to sort by in: query name: sortBy required: false schema: type: string enum: - name - createdAt - description: sort direction (asc or desc) in: query name: sortDirection required: false schema: type: string enum: - asc - desc - description: filter by scheduler formats (comma-separated) in: query name: formats required: false schema: type: string - description: filter by resource type (chart or dashboard) in: query name: resourceType required: false schema: type: string enum: - chart - dashboard - description: filter by resource UUIDs (comma-separated) in: query name: resourceUuids required: false schema: type: string - description: 'filter by destination types (comma-separated: email, slack, msteams, googlechat)' in: query name: destinations required: false schema: type: string - description: include latest run information for each scheduler in: query name: includeLatestRun required: false schema: type: boolean /api/v1/schedulers/{projectUuid}/list: get: operationId: ListSchedulers responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSchedulersResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: List all schedulers with pagination, search, sorting, and filtering summary: List schedulers tags: - Schedulers security: [] parameters: - in: path name: projectUuid required: true schema: type: string - description: number of items per page in: query name: pageSize required: false schema: format: double type: number - description: page number in: query name: page required: false schema: format: double type: number - description: search query to filter schedulers by name in: query name: searchQuery required: false schema: type: string - description: column to sort by in: query name: sortBy required: false schema: type: string enum: - name - createdAt - description: sort direction (asc or desc) in: query name: sortDirection required: false schema: type: string enum: - asc - desc - description: filter by creator user UUIDs (comma-separated) in: query name: createdByUserUuids required: false schema: type: string - description: filter by scheduler formats (comma-separated) in: query name: formats required: false schema: type: string - description: filter by resource type (chart or dashboard) in: query name: resourceType required: false schema: type: string enum: - chart - dashboard - description: filter by resource UUIDs (comma-separated) in: query name: resourceUuids required: false schema: type: string - description: 'filter by destination types (comma-separated: email, slack, msteams, googlechat)' in: query name: destinations required: false schema: type: string - in: query name: includeLatestRun required: false schema: type: boolean /api/v1/schedulers/{schedulerUuid}: get: operationId: getScheduler responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSchedulerAndTargetsResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Get a scheduler summary: Get scheduler tags: - Schedulers security: [] parameters: - description: The uuid of the scheduler to update in: path name: schedulerUuid required: true schema: type: string patch: operationId: updateScheduler responses: '201': description: Updated content: application/json: schema: $ref: '#/components/schemas/ApiSchedulerAndTargetsResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Update a scheduler summary: Update scheduler tags: - Schedulers security: [] parameters: - description: The uuid of the scheduler to update in: path name: schedulerUuid required: true schema: type: string requestBody: description: the new scheduler data required: true content: application/json: schema: $ref: '#/components/schemas/AnyType' description: the new scheduler data delete: operationId: deleteScheduler responses: '201': description: Deleted content: application/json: schema: properties: results: {} status: type: string enum: - ok nullable: false required: - status type: object default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Delete a scheduler summary: Delete scheduler tags: - Schedulers security: [] parameters: - description: The uuid of the scheduler to delete in: path name: schedulerUuid required: true schema: type: string /api/v1/schedulers/{schedulerUuid}/enabled: patch: operationId: updateSchedulerEnabled responses: '201': description: Updated content: application/json: schema: $ref: '#/components/schemas/ApiSchedulerAndTargetsResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Set scheduler enabled summary: Update scheduler enabled status tags: - Schedulers security: [] parameters: - description: The uuid of the scheduler to update in: path name: schedulerUuid required: true schema: type: string requestBody: description: the enabled flag required: true content: application/json: schema: properties: enabled: type: boolean required: - enabled type: object description: the enabled flag /api/v1/schedulers/{projectUuid}/reassign-owner: patch: operationId: reassignSchedulerOwner responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiReassignSchedulerOwnerResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Reassign ownership of multiple schedulers summary: Reassign scheduler owner tags: - Schedulers security: [] parameters: - description: The uuid of the project in: path name: projectUuid required: true schema: type: string requestBody: description: the scheduler UUIDs and new owner UUID required: true content: application/json: schema: $ref: '#/components/schemas/ReassignSchedulerOwnerRequest' description: the scheduler UUIDs and new owner UUID /api/v1/schedulers/{schedulerUuid}/jobs: get: operationId: getScheduledJobs responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiScheduledJobsResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Get scheduled jobs summary: Get scheduled jobs tags: - Schedulers deprecated: true security: [] parameters: - description: The uuid of the scheduler to update in: path name: schedulerUuid required: true schema: type: string /api/v1/schedulers/job/{jobId}/status: get: operationId: getSchedulerJobStatus responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiJobStatusResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: 'Get a generic job status This method can be used when polling from the frontend' summary: Get scheduler job status tags: - Schedulers security: [] parameters: - description: the jobId for the status to check in: path name: jobId required: true schema: type: string /api/v1/schedulers/send: post: operationId: sendScheduler responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiTestSchedulerResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Send a scheduler now before saving it summary: Send scheduler tags: - Schedulers security: [] parameters: [] requestBody: description: the create scheduler data required: true content: application/json: schema: $ref: '#/components/schemas/AnyType' description: the create scheduler data /api/v1/schedulers/{schedulerUuid}/send: post: operationId: sendSchedulerByUuid responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiTestSchedulerResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Send an existing scheduler now by its uuid summary: Send scheduler by uuid tags: - Schedulers security: [] parameters: - description: The uuid of the scheduler to send now in: path name: schedulerUuid required: true schema: type: string components: schemas: SchedulerResourceType: enum: - chart - dashboard - sqlChart - app type: string DashboardFilterRule: allOf: - $ref: '#/components/schemas/FilterRule_FilterOperator.DashboardFieldTarget.AnyType.AnyType_' - properties: lockedTabUuids: items: type: string type: array description: 'Tab UUIDs where this filter is locked. When the active tab is in this list, viewers see the filter but cannot change it, and URL / embed filter overrides targeting the same field are ignored on that tab. Empty or omitted means the filter is not locked anywhere.' singleValue: type: boolean label: type: string tileTargets: $ref: '#/components/schemas/Record_string.DashboardTileTarget_' type: object SchedulerPdfOptions: $ref: '#/components/schemas/Record_string.never_' SchedulerImageOptions: properties: withPdf: type: boolean type: object KnexPaginatedData_SchedulerAndTargets-Array_: properties: pagination: allOf: - $ref: '#/components/schemas/KnexPaginateArgs' - properties: totalResults: type: number format: double totalPageCount: type: number format: double required: - totalResults - totalPageCount type: object data: items: $ref: '#/components/schemas/SchedulerAndTargets' type: array required: - data type: object SchedulerWithLogs: properties: logs: items: $ref: '#/components/schemas/SchedulerLog' type: array dashboards: items: properties: dashboardUuid: type: string name: type: string required: - dashboardUuid - name type: object type: array charts: items: properties: savedChartUuid: type: string name: type: string required: - savedChartUuid - name type: object type: array users: items: properties: userUuid: type: string lastName: type: string firstName: type: string required: - userUuid - lastName - firstName type: object type: array schedulers: items: $ref: '#/components/schemas/SchedulerAndTargets' type: array required: - logs - dashboards - charts - users - schedulers type: object DashboardTileTarget: anyOf: - $ref: '#/components/schemas/DashboardFieldTarget' - type: boolean enum: - false Record_string.ParameterValue_: properties: {} additionalProperties: $ref: '#/components/schemas/ParameterValue' type: object description: Construct a type with a set of properties K of type T ApiSuccess_KnexPaginatedData_SchedulerAndTargets-Array__: properties: results: $ref: '#/components/schemas/KnexPaginatedData_SchedulerAndTargets-Array_' status: type: string enum: - ok nullable: false required: - results - status type: object SchedulerRunStatus: enum: - completed - partial_failure - failed - running - scheduled type: string ApiTestSchedulerResponse: properties: results: properties: jobId: type: string required: - jobId type: object status: type: string enum: - ok nullable: false required: - results - status type: object SchedulerRunLogsResponse: properties: createdByUserName: type: string createdByUserUuid: type: string resourceName: type: string resourceUuid: type: string resourceType: $ref: '#/components/schemas/SchedulerResourceType' logs: items: $ref: '#/components/schemas/SchedulerRunLog' type: array scheduledTime: type: string format: date-time schedulerName: type: string schedulerUuid: type: string runId: type: string required: - createdByUserName - createdByUserUuid - resourceName - resourceUuid - resourceType - logs - scheduledTime - schedulerName - schedulerUuid - runId type: object KnexPaginatedData_SchedulerWithLogs_: properties: pagination: allOf: - $ref: '#/components/schemas/KnexPaginateArgs' - properties: totalResults: type: number format: double totalPageCount: type: number format: double required: - totalResults - totalPageCount type: object data: $ref: '#/components/schemas/SchedulerWithLogs' required: - data type: object SchedulerFormat: enum: - csv - xlsx - image - gsheets - pdf type: string SchedulerRun: properties: format: $ref: '#/components/schemas/SchedulerFormat' createdByUserName: type: string createdByUserUuid: type: string resourceName: type: string resourceUuid: type: string resourceType: $ref: '#/components/schemas/SchedulerResourceType' logCounts: $ref: '#/components/schemas/LogCounts' details: allOf: - $ref: '#/components/schemas/Record_string.AnyType_' nullable: true createdAt: type: string format: date-time runStatus: $ref: '#/components/schemas/SchedulerRunStatus' status: $ref: '#/components/schemas/SchedulerJobStatus' scheduledTime: type: string format: date-time schedulerName: type: string schedulerUuid: type: string runId: type: string required: - format - createdByUserName - createdByUserUuid - resourceName - resourceUuid - resourceType - logCounts - details - createdAt - runStatus - status - scheduledTime - schedulerName - schedulerUuid - runId type: object DashboardFieldTarget: properties: fallbackType: $ref: '#/components/schemas/DimensionType' isSqlColumn: type: boolean tableName: type: string fieldId: type: string required: - tableName - fieldId type: object ApiSuccess_KnexPaginatedData_SchedulerRun-Array__: properties: results: $ref: '#/components/schemas/KnexPaginatedData_SchedulerRun-Array_' status: type: string enum: - ok nullable: false required: - results - status type: object SchedulerGsheetsOptions: properties: tabName: type: string url: type: string gdriveOrganizationName: type: string gdriveName: type: string gdriveId: type: string required: - url - gdriveOrganizationName - gdriveName - gdriveId type: object SchedulerMsTeamsTarget: properties: webhook: type: string schedulerUuid: type: string updatedAt: type: string format: date-time createdAt: type: string format: date-time schedulerMsTeamsTargetUuid: type: string required: - webhook - schedulerUuid - updatedAt - createdAt - schedulerMsTeamsTargetUuid type: object SchedulerJobStatus: enum: - scheduled - started - completed - error type: string KnexPaginatedData_SchedulerRun-Array_: properties: pagination: allOf: - $ref: '#/components/schemas/KnexPaginateArgs' - properties: totalResults: type: number format: double totalPageCount: type: number format: double required: - totalResults - totalPageCount type: object data: items: $ref: '#/components/schemas/SchedulerRun' type: array required: - data type: object AnyType: description: 'This AnyType is an alias for any The goal is to make it easier to identify any type in the codebase without having to eslint-disable all the time These are only used on legacy `any` types, don''t use it for new types. This is added on a separate file to avoid circular dependencies.' PartialFailure: anyOf: - $ref: '#/components/schemas/DashboardChartPartialFailure' - $ref: '#/components/schemas/DashboardSqlChartPartialFailure' - $ref: '#/components/schemas/MissingTargetsPartialFailure' ApiErrorPayload: properties: error: properties: data: $ref: '#/components/schemas/AnyType' description: Optional data containing details of the error message: type: string description: A friendly message summarising the error name: type: string description: Unique name for the type of error statusCode: type: number format: integer description: HTTP status code required: - name - statusCode type: object status: type: string enum: - error nullable: false required: - error - status type: object description: 'The Error object is returned from the api any time there is an error. The message contains' SchedulerAndTargets: allOf: - $ref: '#/components/schemas/Scheduler' - properties: latestRun: allOf: - $ref: '#/components/schemas/SchedulerRun' nullable: true targets: items: anyOf: - $ref: '#/components/schemas/SchedulerSlackTarget' - $ref: '#/components/schemas/SchedulerEmailTarget' - $ref: '#/components/schemas/SchedulerMsTeamsTarget' - $ref: '#/components/schemas/SchedulerGoogleChatTarget' type: array required: - targets type: object BaseSchedulerLog: properties: createdAt: type: string format: date-time scheduledTime: type: string format: date-time status: $ref: '#/components/schemas/SchedulerJobStatus' task: $ref: '#/components/schemas/SchedulerTaskName' jobId: type: string required: - createdAt - scheduledTime - status - task - jobId type: object Record_string.never_: properties: {} type: object description: Construct a type with a set of properties K of type T FilterRule_FilterOperator.DashboardFieldTarget.AnyType.AnyType_: properties: values: items: $ref: '#/components/schemas/AnyType' type: array description: Values to filter by operator: $ref: '#/components/schemas/FilterOperator' description: Filter operator id: type: string description: Unique identifier for the filter target: $ref: '#/components/schemas/DashboardFieldTarget' description: Target field for the filter settings: $ref: '#/components/schemas/AnyType' description: Additional settings for date/time filters disabled: type: boolean description: Whether this filter is disabled required: type: boolean description: Whether this filter is required caseSensitive: type: boolean description: 'Overrides the field/explore case-sensitivity for this rule only. Used by internal features like autocomplete search that must always match case-insensitively regardless of the field''s configured setting.' required: - operator - id - target type: object additionalProperties: true FilterOperator: enum: - isNull - notNull - equals - notEquals - startsWith - endsWith - include - doesNotInclude - lessThan - lessThanOrEqual - greaterThan - greaterThanOrEqual - inThePast - notInThePast - inTheNext - inTheCurrent - notInTheCurrent - inBetween - notInBetween - inPeriodToDate type: string AppScheduler: allOf: - $ref: '#/components/schemas/SchedulerBase' - properties: appUuid: type: string savedSqlUuid: type: number enum: - null nullable: true dashboardUuid: type: number enum: - null nullable: true savedChartUuid: type: number enum: - null nullable: true required: - appUuid - savedSqlUuid - dashboardUuid - savedChartUuid type: object SchedulerGoogleChatTarget: properties: googleChatWebhook: type: string schedulerUuid: type: string updatedAt: type: string format: date-time createdAt: type: string format: date-time schedulerGoogleChatTargetUuid: type: string required: - googleChatWebhook - schedulerUuid - updatedAt - createdAt - schedulerGoogleChatTargetUuid type: object ApiScheduledJobsResponse: properties: results: items: $ref: '#/components/schemas/ScheduledJobs' type: array status: type: string enum: - ok nullable: false required: - results - status type: object SchedulerBase: properties: projectName: type: string nullable: true projectUuid: type: string nullable: true includeLinks: type: boolean notificationFrequency: $ref: '#/components/schemas/NotificationFrequency' enabled: type: boolean thresholds: items: $ref: '#/components/schemas/ThresholdOptions' type: array options: $ref: '#/components/schemas/SchedulerOptions' appName: type: string nullable: true appUuid: type: string nullable: true savedSqlName: type: string nullable: true savedSqlUuid: type: string nullable: true dashboardName: type: string nullable: true dashboardUuid: type: string nullable: true savedChartName: type: string nullable: true savedChartUuid: type: string nullable: true projectSchedulerTimezone: type: string timezone: type: string cron: type: string format: $ref: '#/components/schemas/SchedulerFormat' createdByName: type: string nullable: true createdBy: type: string updatedAt: type: string format: date-time createdAt: type: string format: date-time message: type: string name: type: string schedulerUuid: type: string required: - includeLinks - enabled - options - appName - appUuid - savedSqlName - savedSqlUuid - dashboardName - dashboardUuid - savedChartName - savedChartUuid - cron - format - createdByName - createdBy - updatedAt - createdAt - name - schedulerUuid type: object KnexPaginateArgs: properties: page: type: number format: double pageSize: type: number format: double required: - page - pageSize type: object NotificationFrequency: enum: - always - once type: string PartialFailureType.MISSING_TARGETS: enum: - missing_targets type: string SchedulerDetails: properties: thresholdStatus: $ref: '#/components/schemas/ThresholdStatus' description: Set when a threshold-alert scheduler completed without sending a notification because the threshold was not met. partialFailures: items: $ref: '#/components/schemas/PartialFailure' type: array description: Partial failures that occurred during the scheduled delivery (e.g., some charts failed in a dashboard export) createdByUserUuid: type: string organizationUuid: type: string projectUuid: type: string additionalProperties: $ref: '#/components/schemas/AnyType' type: object SchedulerOptions: anyOf: - $ref: '#/components/schemas/SchedulerCsvOptions' - $ref: '#/components/schemas/SchedulerImageOptions' - $ref: '#/components/schemas/SchedulerGsheetsOptions' - $ref: '#/components/schemas/SchedulerPdfOptions' ApiJobStatusResponse: properties: results: properties: details: allOf: - $ref: '#/components/schemas/Record_string.AnyType_' nullable: true status: $ref: '#/components/schemas/SchedulerJobStatus' required: - details - status type: object status: type: string enum: - ok nullable: false required: - results - status type: object SqlChartScheduler: allOf: - $ref: '#/components/schemas/SchedulerBase' - properties: appUuid: type: number enum: - null nullable: true savedSqlUuid: type: string dashboardUuid: type: number enum: - null nullable: true savedChartUuid: type: number enum: - null nullable: true required: - appUuid - savedSqlUuid - dashboardUuid - savedChartUuid type: object ApiSchedulersResponse: $ref: '#/components/schemas/ApiSuccess_KnexPaginatedData_SchedulerAndTargets-Array__' DashboardScheduler: allOf: - $ref: '#/components/schemas/SchedulerBase' - properties: selectedTabs: items: type: string type: array nullable: true customViewportWidth: type: number format: double parameters: $ref: '#/components/schemas/ParametersValuesMap' filters: items: $ref: '#/components/schemas/DashboardFilterRule' type: array appUuid: type: number enum: - null nullable: true savedSqlUuid: type: number enum: - null nullable: true dashboardUuid: type: string savedChartUuid: type: number enum: - null nullable: true required: - selectedTabs - appUuid - savedSqlUuid - dashboardUuid - savedChartUuid type: object SchedulerTaskName: type: string enum: - slackAiPrompt - aiAgentEvalResult - aiAgentReviewClassifier - aiAgentReviewWriteback - aiAgentReviewRemediationPreview - aiAgentReviewRemediationCompile - aiAgentReviewRemediationRun - embedArtifactVersion - generateArtifactQuestion - appGeneratePipeline - sweepStaleAppLocks - handleScheduledDelivery - sendSlackNotification - sendEmailNotification - sendMsTeamsNotification - sendGoogleChatNotification - sendSlackBatchNotification - sendEmailBatchNotification - sendMsTeamsBatchNotification - sendGoogleChatBatchNotification - uploadGsheets - uploadGsheetFromQuery - validateProject - compileProject - createProjectWithCompile - testAndCompileProject - sqlRunner - sqlRunnerPivotQuery - replaceCustomFields - indexCatalog - generateDailyJobs - exportCsvDashboard - renameResources - materializePreAggregate - cleanQueryHistory - downloadAsyncQueryResults - syncSlackChannels - generateSlackChannelSyncJobs - checkForStuckJobs - cleanDeploySessions - managedAgentHeartbeat - cleanExpiredPreviews - ingestProjectContext SchedulerTargetType: type: string enum: - email - slack - gsheets - msteams - googlechat SchedulerEmailTarget: properties: recipient: type: string schedulerUuid: type: string updatedAt: type: string format: date-time createdAt: type: string format: date-time schedulerEmailTargetUuid: type: string required: - recipient - schedulerUuid - updatedAt - createdAt - schedulerEmailTargetUuid type: object MissingTargetsPartialFailure: properties: type: $ref: '#/components/schemas/PartialFailureType.MISSING_TARGETS' required: - type type: object ApiSchedulerRunLogsResponse: $ref: '#/components/schemas/ApiSuccess_SchedulerRunLogsResponse_' ApiReassignSchedulerOwnerResponse: $ref: '#/components/schemas/ApiSuccess_SchedulerAndTargets-Array_' ApiSuccess_SchedulerRunLogsResponse_: properties: results: $ref: '#/components/schemas/SchedulerRunLogsResponse' status: type: string enum: - ok nullable: false required: - results - status type: object ApiSchedulerRunsResponse: $ref: '#/components/schemas/ApiSuccess_KnexPaginatedData_SchedulerRun-Array__' Scheduler: anyOf: - $ref: '#/components/schemas/ChartScheduler' - $ref: '#/components/schemas/DashboardScheduler' - $ref: '#/components/schemas/SqlChartScheduler' - $ref: '#/components/schemas/AppScheduler' DashboardChartPartialFailure: properties: error: type: string tileUuid: type: string chartName: type: string chartUuid: type: string type: $ref: '#/components/schemas/PartialFailureType.DASHBOARD_CHART' required: - error - tileUuid - chartName - chartUuid - type type: object LogCounts: properties: error: type: number format: double completed: type: number format: double started: type: number format: double scheduled: type: number format: double total: type: number format: double required: - error - completed - started - scheduled - total type: object Record_string.AnyType_: properties: {} additionalProperties: {} type: object description: Construct a type with a set of properties K of type T PartialFailureType.DASHBOARD_SQL_CHART: enum: - dashboard_sql_chart type: string DashboardSqlChartPartialFailure: properties: error: type: string tileUuid: type: string chartName: type: string savedSqlUuid: type: string type: $ref: '#/components/schemas/PartialFailureType.DASHBOARD_SQL_CHART' required: - error - tileUuid - chartName - savedSqlUuid - type type: object ParameterValue: anyOf: - type: string - type: number format: double - items: type: string type: array - items: type: number format: double type: array ApiSchedulerLogsResponse: $ref: '#/components/schemas/ApiSuccess_KnexPaginatedData_SchedulerWithLogs__' ReassignSchedulerOwnerRequest: properties: newOwnerUserUuid: type: string schedulerUuids: items: type: string type: array required: - newOwnerUserUuid - schedulerUuids type: object ApiSuccess_KnexPaginatedData_SchedulerWithLogs__: properties: results: $ref: '#/components/schemas/KnexPaginatedData_SchedulerWithLogs_' status: type: string enum: - ok nullable: false required: - results - status type: object SchedulerLog: allOf: - $ref: '#/components/schemas/BaseSchedulerLog' - properties: details: $ref: '#/components/schemas/SchedulerDetails' targetType: $ref: '#/components/schemas/SchedulerTargetType' target: type: string jobGroup: type: string schedulerUuid: type: string required: - details type: object ChartScheduler: allOf: - $ref: '#/components/schemas/SchedulerBase' - properties: appUuid: type: number enum: - null nullable: true savedSqlUuid: type: number enum: - null nullable: true dashboardUuid: type: number enum: - null nullable: true savedChartUuid: type: string required: - appUuid - savedSqlUuid - dashboardUuid - savedChartUuid type: object ThresholdOperator: enum: - greaterThan - lessThan - increasedBy - decreasedBy type: string Record_string.DashboardTileTarget_: properties: {} additionalProperties: $ref: '#/components/schemas/DashboardTileTarget' type: object description: Construct a type with a set of properties K of type T DimensionType: enum: - string - number - timestamp - date - boolean type: string ThresholdOptions: properties: value: type: number format: double fieldId: type: string operator: $ref: '#/components/schemas/ThresholdOperator' required: - value - fieldId - operator type: object SchedulerRunLog: allOf: - $ref: '#/components/schemas/BaseSchedulerLog' - properties: isParent: type: boolean details: allOf: - $ref: '#/components/schemas/SchedulerDetails' nullable: true targetType: allOf: - $ref: '#/components/schemas/SchedulerTargetType' nullable: true target: type: string nullable: true jobGroup: type: string required: - isParent - details - targetType - target - jobGroup type: object PartialFailureType.DASHBOARD_CHART: enum: - dashboard_chart type: string ApiSchedulerAndTargetsResponse: properties: results: $ref: '#/components/schemas/SchedulerAndTargets' status: type: string enum: - ok nullable: false required: - results - status type: object ApiSuccess_SchedulerAndTargets-Array_: properties: results: items: $ref: '#/components/schemas/SchedulerAndTargets' type: array status: type: string enum: - ok nullable: false required: - results - status type: object SchedulerCsvOptions: properties: exportPivotedData: type: boolean asAttachment: type: boolean limit: anyOf: - type: number format: double - type: string enum: - table - all formatted: type: boolean required: - limit - formatted type: object ScheduledJobs: properties: id: type: string date: type: string format: date-time required: - id - date type: object SchedulerSlackTarget: properties: channel: type: string schedulerUuid: type: string updatedAt: type: string format: date-time createdAt: type: string format: date-time schedulerSlackTargetUuid: type: string required: - channel - schedulerUuid - updatedAt - createdAt - schedulerSlackTargetUuid type: object ParametersValuesMap: $ref: '#/components/schemas/Record_string.ParameterValue_' ThresholdStatus: description: 'Outcome of evaluating a threshold-alert scheduler against the latest query results. Emitted on `SchedulerDetails.thresholdStatus` and on the `scheduler_job.completed` analytics event so downstream consumers (UI toasts, dashboards) can branch reliably.' enum: - met - not_met type: string securitySchemes: session_cookie: type: apiKey in: cookie name: connect.sid api_key: type: apiKey in: header name: Authorization description: Value should be 'ApiKey '