openapi: 3.1.0 info: title: Fast ACCOUNT_COSTS DATABRICKS API version: 0.1.0 tags: - name: DATABRICKS paths: /api/v1/databricks/datapilot/initial-questions: get: tags: - DATABRICKS summary: Get AI Studio initial questions for Databricks resources description: Get suggested AI Studio questions for Databricks resources. operationId: get_databricks_initial_questions_api_v1_databricks_datapilot_initial_questions_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: resource_type in: query required: true schema: $ref: '#/components/schemas/DatabricksResourceType' description: Type of resource (cluster, warehouse, job, query, user) description: Type of resource (cluster, warehouse, job, query, user) - name: resource_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional resource ID for context title: Resource Id description: Optional resource ID for context - name: resource_name in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional resource name for context title: Resource Name description: Optional resource name for context - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional workspace ID for context title: Workspace Id description: Optional workspace ID for context - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/workspaces: get: tags: - DATABRICKS summary: Get available Databricks workspaces description: Get list of available Databricks workspaces. operationId: get_workspaces_api_v1_databricks_cost_workspaces_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WorkspacesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/overview: get: tags: - DATABRICKS summary: Get Databricks cost overview description: 'Get cost overview with summary metrics. Returns total DBUs, estimated cost, and period-over-period comparison.' operationId: get_cost_overview_api_v1_databricks_cost_overview_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CostOverviewResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/trends: get: tags: - DATABRICKS summary: Get Databricks cost trends over time description: 'Get cost trends over time. Returns time series data with DBU consumption and estimated cost per period.' operationId: get_cost_trends_api_v1_databricks_cost_trends_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CostTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/trends/by-product: get: tags: - DATABRICKS summary: Get Databricks cost trends by product over time description: 'Get cost trends over time, sliced for a UI category. Returns time series data with DBU consumption and estimated cost per period, with each row labelled by the category''s chosen segment. The ``products`` array in the response is the canonical legend for the category (in display order, including segments with no data) so the FE legend stays stable across date ranges.' operationId: get_cost_trends_by_product_api_v1_databricks_cost_trends_by_product_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: category in: query required: false schema: $ref: '#/components/schemas/CategoryName' description: Which UI category the chart is for. Drives both the product filter and the per-row segment label. ``total`` returns the 5 spec-group stack (Clusters / SQL Warehouse / AI/ML / Lakehouse / Platform). ``sql_warehouse`` returns Classic / Pro / Serverless. Other values return the products in that spec group. default: total description: Which UI category the chart is for. Drives both the product filter and the per-row segment label. ``total`` returns the 5 spec-group stack (Clusters / SQL Warehouse / AI/ML / Lakehouse / Platform). ``sql_warehouse`` returns Classic / Pro / Serverless. Other values return the products in that spec group. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProductTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/trends/by-product/estimate: get: tags: - DATABRICKS summary: Get Databricks cost trends by product with projections description: 'Get cost trends by product with future projections. Returns monthly cost data by product (JOBS, SQL, ALL_PURPOSE, etc.) with projections to end of period. Used for Future State visualization showing product-level historical + projected costs.' operationId: get_cost_trends_by_product_estimate_api_v1_databricks_cost_trends_by_product_estimate_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date (typically start of year) title: Start Date description: Start date (typically start of year) - name: end_date in: query required: true schema: type: string format: date description: End date (typically end of year) title: End Date description: End date (typically end of year) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProductEstimateTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/breakdown/sku: get: tags: - DATABRICKS summary: Get cost breakdown by SKU description: 'Get cost breakdown by SKU. Returns DBU consumption and cost grouped by Databricks SKU type.' operationId: get_cost_breakdown_by_sku_api_v1_databricks_cost_breakdown_sku_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort column: name, total_dbus, or total_cost. Default total_cost.' title: Sortattribute description: 'Sort column: name, total_dbus, or total_cost. Default total_cost.' - name: sortOrder in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc''. Default ''desc''.' title: Sortorder description: 'Sort direction: ''asc'' or ''desc''. Default ''desc''.' - name: sku_names in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter to specific SKU names (multi-value) title: Sku Names description: Filter to specific SKU names (multi-value) - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__cost__CostBreakdownResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/breakdown/workspace: get: tags: - DATABRICKS summary: Get cost breakdown by workspace description: 'Get cost breakdown by workspace. Returns DBU consumption and cost grouped by Databricks workspace.' operationId: get_cost_breakdown_by_workspace_api_v1_databricks_cost_breakdown_workspace_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__cost__CostBreakdownResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/breakdown/product: get: tags: - DATABRICKS summary: Get cost breakdown by product description: 'Get cost breakdown by product. Returns DBU consumption and cost grouped by Databricks product type.' operationId: get_cost_breakdown_by_product_api_v1_databricks_cost_breakdown_product_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort column: name, total_dbus, or total_cost. Default total_cost.' title: Sortattribute description: 'Sort column: name, total_dbus, or total_cost. Default total_cost.' - name: sortOrder in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc''. Default ''desc''.' title: Sortorder description: 'Sort direction: ''asc'' or ''desc''. Default ''desc''.' - name: products in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter to specific billing_origin_product values title: Products description: Filter to specific billing_origin_product values - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__cost__CostBreakdownResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/comparison: get: tags: - DATABRICKS summary: Get cost comparison between periods description: 'Get cost comparison between current and previous period. Automatically calculates the previous period based on the duration of the current period.' operationId: get_cost_comparison_api_v1_databricks_cost_comparison_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the current period title: Start Date description: Start date for the current period - name: end_date in: query required: false schema: type: string format: date description: End date for the current period title: End Date description: End date for the current period - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CostComparisonResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/total: get: tags: - DATABRICKS summary: Get total cost with category breakdown description: 'Get total cost with category breakdown. Returns total cost and DBUs with breakdown by cost category (Compute, SQL, AI/ML, Data Platform, Infrastructure).' operationId: get_cost_total_api_v1_databricks_cost_total_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CostTotalResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/overall/estimate: get: tags: - DATABRICKS summary: Get cost trends with future projections description: 'Get cost trends with future projections, segmented for a UI category. Returns monthly cost data with projections to end of period — each graph point carries the per-segment breakdown for the requested ``category``. Used for Future State visualization showing historical + projected costs.' operationId: get_cost_trends_estimate_api_v1_databricks_cost_overall_estimate_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date (typically start of year) title: Start Date description: Start date (typically start of year) - name: end_date in: query required: true schema: type: string format: date description: End date (typically end of year) title: End Date description: End date (typically end of year) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: category in: query required: false schema: $ref: '#/components/schemas/CategoryName' description: Which UI category to segment the projection by. ``total`` → the 6 spec groups; ``sql_warehouse`` → Classic / Pro / Serverless; other values → the products of that spec group. Mirrors ``/cost/trends/by-product``. default: total description: Which UI category to segment the projection by. ``total`` → the 6 spec groups; ``sql_warehouse`` → Classic / Pro / Serverless; other values → the products of that spec group. Mirrors ``/cost/trends/by-product``. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CostEstimateTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/total/estimate: get: tags: - DATABRICKS summary: Get total estimated cost for the year description: 'Get total estimated cost for the period (actual + projected). Returns the grand total plus a per-segment breakdown for the requested ``category``. Used for Future State total cost display.' operationId: get_cost_total_estimate_api_v1_databricks_cost_total_estimate_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date (typically start of year) title: Start Date description: Start date (typically start of year) - name: end_date in: query required: true schema: type: string format: date description: End date (typically end of year) title: End Date description: End date (typically end of year) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: category in: query required: false schema: $ref: '#/components/schemas/CategoryName' description: Which UI category to segment the estimate by. See ``/cost/overall/estimate`` for the segmentation rules. default: total description: Which UI category to segment the estimate by. See ``/cost/overall/estimate`` for the segmentation rules. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CostTotalEstimateResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/compute-efficiency: get: tags: - DATABRICKS summary: Get compute efficiency breakdown description: 'Get compute efficiency breakdown. Returns efficiency metrics including: - Jobs vs All-Purpose ratio (healthy = >70% jobs) - Serverless vs Provisioned breakdown - Photon vs Standard engine usage' operationId: get_compute_efficiency_api_v1_databricks_cost_compute_efficiency_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ComputeEfficiencyResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/trends/by-compute-type: get: tags: - DATABRICKS summary: Get cost trends by compute type over time description: 'Get cost trends over time broken down by compute type. Returns time series data grouped by compute type (jobs, all_purpose, sql, other) for visualizing compute efficiency over time.' operationId: get_cost_trends_by_compute_type_api_v1_databricks_cost_trends_by_compute_type_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ComputeTypeTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/trends/by-deployment-type: get: tags: - DATABRICKS summary: Get cost trends by deployment type (serverless vs provisioned) description: 'Get cost trends over time broken down by deployment type (serverless vs provisioned).' operationId: get_cost_trends_by_deployment_type_api_v1_databricks_cost_trends_by_deployment_type_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DeploymentTypeTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/trends/by-engine-type: get: tags: - DATABRICKS summary: Get cost trends by engine type (photon vs standard) description: 'Get cost trends over time broken down by engine type (photon vs standard).' operationId: get_cost_trends_by_engine_type_api_v1_databricks_cost_trends_by_engine_type_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/EngineTypeTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/workspace-efficiency: get: tags: - DATABRICKS summary: Get efficiency metrics per workspace description: 'Get efficiency metrics per workspace for chargeback and analysis. Returns per-workspace metrics including: - Total DBUs and cost - Jobs vs All-Purpose percentage - Serverless percentage - Efficiency score (healthy, moderate, unhealthy)' operationId: get_workspace_efficiency_api_v1_databricks_cost_workspace_efficiency_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WorkspaceEfficiencyResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/cloud/trends: get: tags: - DATABRICKS summary: Get cloud infrastructure cost trends by category description: 'Get full cloud-bill (TCO) trends over time, stacked by infrastructure category (Compute / Storage / Networking / Database / Security / Analytics & Streaming, plus an ``Other`` catch-all). One row per period; each category is a numeric field, plus a synthetic ``__cloud_cost_total__`` and per-period percentage-change fields. Powers the Summary "Cloud Costs" tab and the Jobs "Cloud Costs" group-by. Returns ``[]`` for tenants without the cloud-cost feed.' operationId: get_cloud_cost_trends_api_v1_databricks_cost_cloud_trends_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the period title: Start Date description: Start date for the period - name: end_date in: query required: false schema: type: string format: date description: End date for the period title: End Date description: End date for the period - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/CloudCostTrendRow' title: Response Get Cloud Cost Trends Api V1 Databricks Cost Cloud Trends Get '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/cost/cloud/projection: get: tags: - DATABRICKS summary: Get cloud infrastructure cost projection (actual + month-end estimate) description: 'Get the current calendar year''s cloud cost by category, month by month, with a month-end projection. Past months are fully actual; the current month is month-to-date actual plus a run-rate projected remainder; future months are the full run-rate projection. Used by the Future State "Cloud Costs" tab. Returns ``[]`` for tenants without the cloud-cost feed.' operationId: get_cloud_cost_projection_api_v1_databricks_cost_cloud_projection_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/CloudCostProjectionRow' title: Response Get Cloud Cost Projection Api V1 Databricks Cost Cloud Projection Get '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/filters: get: tags: - DATABRICKS summary: Get filter options for clusters description: Get distinct filter values for cluster filtering. operationId: get_cluster_filters_api_v1_databricks_clusters_filters_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Search prefix for name filters title: Prefix description: Search prefix for name filters - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to filter by title: Workspace Id description: Workspace ID to filter by - name: compute_type in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: 'Filter by compute type(s): ''all_purpose'', ''jobs'', ''dlt''' title: Compute Type description: 'Filter by compute type(s): ''all_purpose'', ''jobs'', ''dlt''' - name: page in: query required: false schema: type: integer minimum: 1 description: 1-indexed page for the dropdown's load-more; offsets results by (page - 1) * size. default: 1 title: Page description: 1-indexed page for the dropdown's load-more; offsets results by (page - 1) * size. - name: size in: query required: false schema: anyOf: - type: integer maximum: 100 minimum: 1 - type: 'null' description: Maximum number of filter options to return. title: Size description: Maximum number of filter options to return. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClusterFilterOptions' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/filters/cluster_names: get: tags: - DATABRICKS summary: Get paginated distinct cluster names for filtering description: Get a paginated list of distinct cluster-name filter options. operationId: get_cluster_name_filters_api_v1_databricks_clusters_filters_cluster_names_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Search substring for cluster names (case-insensitive) title: Prefix description: Search substring for cluster names (case-insensitive) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to filter by title: Workspace Id description: Workspace ID to filter by - name: compute_type in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: 'Filter by compute type(s): ''all_purpose'', ''jobs'', ''dlt''' title: Compute Type description: 'Filter by compute type(s): ''all_purpose'', ''jobs'', ''dlt''' - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Inclusive start of the metrics window. Defaults to 30 days before end_date. title: Start Date description: Inclusive start of the metrics window. Defaults to 30 days before end_date. - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Inclusive end. Defaults to today. title: End Date description: Inclusive end. Defaults to today. - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PaginatedNamesResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/filters/workspaces: get: tags: - DATABRICKS summary: Get paginated distinct cluster workspaces for filtering description: Get a paginated list of distinct workspace filter options. operationId: get_cluster_workspace_filters_api_v1_databricks_clusters_filters_workspaces_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Search substring for workspace names (case-insensitive) title: Prefix description: Search substring for workspace names (case-insensitive) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to filter by title: Workspace Id description: Workspace ID to filter by - name: compute_type in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: 'Filter by compute type(s): ''all_purpose'', ''jobs'', ''dlt''' title: Compute Type description: 'Filter by compute type(s): ''all_purpose'', ''jobs'', ''dlt''' - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Inclusive start of the metrics window. Defaults to 30 days before end_date. title: Start Date description: Inclusive start of the metrics window. Defaults to 30 days before end_date. - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Inclusive end. Defaults to today. title: End Date description: Inclusive end. Defaults to today. - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PaginatedNamesResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters: get: tags: - DATABRICKS summary: Get all Databricks clusters description: Get list of all clusters with utilization metrics. operationId: get_clusters_api_v1_databricks_clusters_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (inclusive) for utilization/cost metrics. Defaults to 30 days before `end_date`. title: Start Date description: Start date (inclusive) for utilization/cost metrics. Defaults to 30 days before `end_date`. - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (inclusive). Defaults to today. title: End Date description: End date (inclusive). Defaults to today. - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort column name. Valid columns: avg_cpu, avg_memory, total_cost, auto_tune_savings. Sorting by inventory columns (cluster_name, node types, ...) is not supported.' title: Sortattribute description: 'Sort column name. Valid columns: avg_cpu, avg_memory, total_cost, auto_tune_savings. Sorting by inventory columns (cluster_name, node types, ...) is not supported.' - name: sortOrder in: query required: false schema: anyOf: - enum: - asc - desc type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc''' title: Sortorder description: 'Sort direction: ''asc'' or ''desc''' - name: cluster_names in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by cluster names title: Cluster Names description: Filter by cluster names - name: workspaces in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by workspace names title: Workspaces description: Filter by workspace names - name: compute_type in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: 'Filter by compute type(s): ''all_purpose'', ''jobs'', ''dlt''' title: Compute Type description: 'Filter by compute type(s): ''all_purpose'', ''jobs'', ''dlt''' - name: enable_photon in: query required: false schema: anyOf: - type: boolean - type: 'null' description: Filter by Photon enablement. True returns only Photon-enabled clusters; False returns only clusters where Photon is off. Omit to include all. title: Enable Photon description: Filter by Photon enablement. True returns only Photon-enabled clusters; False returns only clusters where Photon is off. Omit to include all. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClustersResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/oversized: get: tags: - DATABRICKS summary: Get oversized clusters description: Get clusters that appear to be oversized based on low utilization. operationId: get_oversized_clusters_api_v1_databricks_clusters_oversized_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cpu_threshold in: query required: false schema: type: number description: Maximum average CPU threshold default: 30.0 title: Cpu Threshold description: Maximum average CPU threshold - name: memory_threshold in: query required: false schema: type: number description: Maximum average memory threshold default: 30.0 title: Memory Threshold description: Maximum average memory threshold - name: days in: query required: false schema: type: integer description: Days for utilization metrics default: 30 title: Days description: Days for utilization metrics - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__cluster__OversizedClustersResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/cost-trends: get: tags: - DATABRICKS summary: Get cluster cost trends by compute type description: Get all clusters cost trends over time broken down by compute type. operationId: get_clusters_cost_trends_api_v1_databricks_clusters_cost_trends_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: Time granularity (day, week, month) default: day title: Granularity description: Time granularity (day, week, month) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClustersCostTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/{cluster_id}: get: tags: - DATABRICKS summary: Get cluster details description: Get detailed information for a specific cluster. operationId: get_cluster_detail_api_v1_databricks_clusters__cluster_id__get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cluster_id in: path required: true schema: type: string title: Cluster Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClusterDetail' '403': description: Not authorized '404': description: Cluster not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/{cluster_id}/utilization: get: tags: - DATABRICKS summary: Get cluster utilization metrics description: Get utilization metrics and timeseries for a specific cluster. operationId: get_cluster_utilization_api_v1_databricks_clusters__cluster_id__utilization_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cluster_id in: path required: true schema: type: string title: Cluster Id - name: start_date in: query required: true schema: type: string format: date description: Start date for metrics title: Start Date description: Start date for metrics - name: end_date in: query required: false schema: type: string format: date description: End date for metrics title: End Date description: End date for metrics - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClusterUtilizationResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/{cluster_id}/state-history: get: tags: - DATABRICKS summary: Get cluster state history description: Get state change history for a specific cluster. operationId: get_cluster_state_history_api_v1_databricks_clusters__cluster_id__state_history_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cluster_id in: path required: true schema: type: string title: Cluster Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClusterStateHistoryResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/{cluster_id}/cost: get: tags: - DATABRICKS summary: Get cluster cost data description: Get cost data for a specific cluster. operationId: get_cluster_cost_api_v1_databricks_clusters__cluster_id__cost_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cluster_id in: path required: true schema: type: string title: Cluster Id - name: start_date in: query required: true schema: type: string format: date description: Start date for cost data title: Start Date description: Start date for cost data - name: end_date in: query required: false schema: type: string format: date description: End date for cost data title: End Date description: End date for cost data - name: granularity in: query required: false schema: type: string description: Time granularity (day, week, month) default: day title: Granularity description: Time granularity (day, week, month) - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClusterCostResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/{cluster_id}/auto-tune/status: get: tags: - DATABRICKS summary: Page-level Auto Tune status for an all-purpose cluster description: 'Read-only status for the Auto Tune tab on mount. Surfaces the master toggle position, a live preflight snapshot for UI gating, and the recommendation / enabled counts. No DB writes.' operationId: get_cluster_auto_tune_status_api_v1_databricks_clusters__cluster_id__auto_tune_status_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cluster_id in: path required: true schema: type: string title: Cluster Id - name: instance_id in: query required: true schema: type: integer description: Tenant instance ID (workspace) title: Instance Id description: Tenant instance ID (workspace) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional Databricks workspace_id to scope the lookup. title: Workspace Id description: Optional Databricks workspace_id to scope the lookup. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AutoTuneStatusResponse' '403': description: Not authorized '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/{cluster_id}/auto-tune/recommendations: get: tags: - DATABRICKS summary: Active Auto Tune recommendations for an all-purpose cluster description: 'Worker Sizing (resize) + Auto Termination (auto_terminate) recs for the cluster, each annotated with its resolved sub-toggle state.' operationId: get_cluster_auto_tune_recommendations_api_v1_databricks_clusters__cluster_id__auto_tune_recommendations_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cluster_id in: path required: true schema: type: string title: Cluster Id - name: instance_id in: query required: true schema: type: integer description: Tenant instance ID (workspace) title: Instance Id description: Tenant instance ID (workspace) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional Databricks workspace_id to scope the lookup. title: Workspace Id description: Optional Databricks workspace_id to scope the lookup. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClusterAutoTuneRecommendationsResponse' '403': description: Not authorized '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/{cluster_id}/auto-tune/toggle: patch: tags: - DATABRICKS summary: Toggle Auto Tune for an all-purpose cluster (master or sub-toggle) description: 'Enable/disable Auto Tune for the cluster. ``rec_type=None`` is the master toggle (flips both sub-toggles). Records config + audit only; no Databricks edit. On enable, the cluster permission preflight runs first and blocks the write if the SP can''t manage the cluster.' operationId: toggle_cluster_auto_tune_api_v1_databricks_clusters__cluster_id__auto_tune_toggle_patch deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cluster_id in: path required: true schema: type: string title: Cluster Id - name: instance_id in: query required: true schema: type: integer description: Tenant instance ID (workspace) title: Instance Id description: Tenant instance ID (workspace) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional Databricks workspace_id to scope the lookup. title: Workspace Id description: Optional Databricks workspace_id to scope the lookup. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ClusterAutoTuneToggleRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClusterAutoTuneToggleResponse' '403': description: Not authorized '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/{cluster_id}/auto-tune/history: get: tags: - DATABRICKS summary: Paginated Auto Tune audit history for an all-purpose cluster description: Read-only audit history for the Auto Tune tab, newest-first. operationId: get_cluster_auto_tune_history_api_v1_databricks_clusters__cluster_id__auto_tune_history_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cluster_id in: path required: true schema: type: string title: Cluster Id - name: instance_id in: query required: true schema: type: integer description: Tenant instance ID (workspace) title: Instance Id description: Tenant instance ID (workspace) - name: event_types in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated event_type values to include. Empty = all. title: Event Types description: Comma-separated event_type values to include. Empty = all. - name: period in: query required: false schema: anyOf: - type: integer minimum: 1 - type: 'null' description: Look-back window in days. title: Period description: Look-back window in days. - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional Databricks workspace_id to scope the lookup. title: Workspace Id description: Optional Databricks workspace_id to scope the lookup. - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AutoTuneHistoryResponse' '403': description: Not authorized '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/clusters/{cluster_id}/auto-tune/savings-trends: get: tags: - DATABRICKS summary: Per-day Possible Savings for an all-purpose cluster description: 'Per-day Spend × savings-pct Possible Savings series. ``actual`` is always empty — cluster Auto Tune has no realized-savings mart.' operationId: get_cluster_auto_tune_savings_trends_api_v1_databricks_clusters__cluster_id__auto_tune_savings_trends_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cluster_id in: path required: true schema: type: string title: Cluster Id - name: instance_id in: query required: true schema: type: integer description: Tenant instance ID (workspace) title: Instance Id description: Tenant instance ID (workspace) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional Databricks workspace_id to scope the lookup. title: Workspace Id description: Optional Databricks workspace_id to scope the lookup. - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AutoTuneSavingsTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/filters: get: tags: - DATABRICKS summary: Get filter options for warehouses description: Get distinct filter values for warehouse filtering. operationId: get_warehouse_filters_api_v1_databricks_warehouses_filters_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Search prefix for name filters title: Prefix description: Search prefix for name filters - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to filter by title: Workspace Id description: Workspace ID to filter by - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehouseFilterOptions' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses: get: tags: - DATABRICKS summary: Get all Databricks warehouses description: Get list of all warehouses. operationId: get_warehouses_api_v1_databricks_warehouses_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (inclusive) for cost / utilization metrics. Defaults to 30 days before `end_date`. title: Start Date description: Start date (inclusive) for cost / utilization metrics. Defaults to 30 days before `end_date`. - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (inclusive). Defaults to today. title: End Date description: End date (inclusive). Defaults to today. - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort column name. Valid columns: warehouse_name, workspace_name, warehouse_type, warehouse_size, min_num_clusters, max_num_clusters, auto_stop_mins, last_state_change, estimated_cost, auto_tune_savings (both sorted with nulls last).' title: Sortattribute description: 'Sort column name. Valid columns: warehouse_name, workspace_name, warehouse_type, warehouse_size, min_num_clusters, max_num_clusters, auto_stop_mins, last_state_change, estimated_cost, auto_tune_savings (both sorted with nulls last).' - name: sortOrder in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc''' title: Sortorder description: 'Sort direction: ''asc'' or ''desc''' - name: warehouse_names in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by warehouse names title: Warehouse Names description: Filter by warehouse names - name: warehouse_types in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by warehouse types (CLASSIC, PRO, SERVERLESS) title: Warehouse Types description: Filter by warehouse types (CLASSIC, PRO, SERVERLESS) - name: warehouse_sizes in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by warehouse sizes title: Warehouse Sizes description: Filter by warehouse sizes - name: workspace_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by one or more workspace IDs title: Workspace Ids description: Filter by one or more workspace IDs - name: auto_tune_status in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Filter by auto-tune status: ''enabled'' or ''disabled''.' title: Auto Tune Status description: 'Filter by auto-tune status: ''enabled'' or ''disabled''.' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehousesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/total-savings: get: tags: - DATABRICKS summary: Get total auto-tune savings across SQL warehouses description: 'Get the SQL warehouses list page''s "Total Savings" cards — Realised Savings, Estimated Annual Savings, and Total Opportunities. Declared before `/{warehouse_id}` so FastAPI''s declaration-order route matching doesn''t swallow this path as a warehouse_id lookup. Note: unlike the warehouses list, this aggregate only supports a single ``workspace_id`` — ``get_warehouse_savings_totals_by_type`` (the underlying repo method, shared with ``DatabricksSavingsService``''s other overall-savings endpoints) takes one workspace, not a list.' operationId: get_warehouses_total_savings_api_v1_databricks_warehouses_total_savings_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehousesTotalSavingsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/cost-trends: get: tags: - DATABRICKS summary: Get warehouse cost trends by SKU description: Get warehouse (SQL) cost trends over time broken down by SKU. operationId: get_warehouse_cost_trends_api_v1_databricks_warehouses_cost_trends_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: Time granularity (day, week, month) default: day title: Granularity description: Time granularity (day, week, month) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehouseCostTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/serverless-candidates: get: tags: - DATABRICKS summary: Get serverless migration candidates description: Get warehouses that are candidates for serverless migration. operationId: get_serverless_candidates_api_v1_databricks_warehouses_serverless_candidates_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: max_auto_stop_mins in: query required: false schema: anyOf: - type: integer - type: 'null' description: Maximum auto-stop time (minutes) for candidates. Warehouses with `auto_stop_mins <= this value` are returned — lower values yield a stricter filter. Defaults to 10 when neither this nor the deprecated `min_auto_stop_mins` alias is sent. title: Max Auto Stop Mins description: Maximum auto-stop time (minutes) for candidates. Warehouses with `auto_stop_mins <= this value` are returned — lower values yield a stricter filter. Defaults to 10 when neither this nor the deprecated `min_auto_stop_mins` alias is sent. - name: min_auto_stop_mins in: query required: false schema: anyOf: - type: integer - type: 'null' description: DEPRECATED — use `max_auto_stop_mins`. Kept for backward compat. deprecated: true title: Min Auto Stop Mins description: DEPRECATED — use `max_auto_stop_mins`. Kept for backward compat. deprecated: true - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__warehouse__ServerlessCandidatesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/{warehouse_id}: get: tags: - DATABRICKS summary: Get warehouse details description: Get detailed information for a specific warehouse. operationId: get_warehouse_detail_api_v1_databricks_warehouses__warehouse_id__get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: warehouse_id in: path required: true schema: type: string title: Warehouse Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehouseDetail' '403': description: Not authorized '404': description: Warehouse not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/{warehouse_id}/events: get: tags: - DATABRICKS summary: Get warehouse events description: Get events for a specific warehouse. operationId: get_warehouse_events_api_v1_databricks_warehouses__warehouse_id__events_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: warehouse_id in: path required: true schema: type: string title: Warehouse Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: event_type in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by event type (e.g., SCALED_UP, SCALED_DOWN) title: Event Type description: Filter by event type (e.g., SCALED_UP, SCALED_DOWN) - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehouseEventsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/{warehouse_id}/state-history: get: tags: - DATABRICKS summary: Get warehouse state history description: Get state change history for a specific warehouse. operationId: get_warehouse_state_history_api_v1_databricks_warehouses__warehouse_id__state_history_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: warehouse_id in: path required: true schema: type: string title: Warehouse Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehouseStateHistoryResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/{warehouse_id}/cost: get: tags: - DATABRICKS summary: Get warehouse cost data description: Get cost data for a specific warehouse. operationId: get_warehouse_cost_api_v1_databricks_warehouses__warehouse_id__cost_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: warehouse_id in: path required: true schema: type: string title: Warehouse Id - name: start_date in: query required: true schema: type: string format: date description: Start date for cost data title: Start Date description: Start date for cost data - name: end_date in: query required: false schema: type: string format: date description: End date for cost data title: End Date description: End date for cost data - name: granularity in: query required: false schema: type: string description: Time granularity (day, week, month) default: day title: Granularity description: Time granularity (day, week, month) - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__warehouse__WarehouseCostResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/{warehouse_id}/auto-tune/savings-trends: get: tags: - DATABRICKS summary: Get per-day auto-tune savings (realized + potential) for a SQL warehouse description: 'Get realized and potential auto-tune savings per day for a SQL warehouse, scoped to the warehouse''s auto-stop tuning.' operationId: get_warehouse_auto_tune_savings_trends_api_v1_databricks_warehouses__warehouse_id__auto_tune_savings_trends_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: warehouse_id in: path required: true schema: type: string title: Warehouse Id - name: instance_id in: query required: true schema: type: integer description: Databricks instance id title: Instance Id description: Databricks instance id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehouseAutoTuneSavingsTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/{warehouse_id}/auto-tune/savings-summary: get: tags: - DATABRICKS summary: Get realised savings range and estimated annual savings for a SQL warehouse description: 'Get the "Realised Savings" range and "Estimated Annual Savings" figure shown above a SQL warehouse''s detail tabs. Realised savings are summed over ``[start_date, end_date]``; the annual estimate annualizes a trailing 29-day actual+potential run-rate independent of that range.' operationId: get_warehouse_auto_tune_savings_summary_api_v1_databricks_warehouses__warehouse_id__auto_tune_savings_summary_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: warehouse_id in: path required: true schema: type: string title: Warehouse Id - name: instance_id in: query required: true schema: type: integer description: Databricks instance id title: Instance Id description: Databricks instance id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehouseAutoTuneSavingsSummaryResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/{warehouse_id}/running-stats-trends: get: tags: - DATABRICKS summary: Get warehouse running stats trends description: Get daily active/idle time trends for a specific warehouse. operationId: get_warehouse_running_stats_trends_api_v1_databricks_warehouses__warehouse_id__running_stats_trends_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: warehouse_id in: path required: true schema: type: string title: Warehouse Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__warehouse__WarehouseRunningStatsTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/{warehouse_id}/utilization-efficiency: get: tags: - DATABRICKS summary: Get warehouse utilization efficiency description: Get daily utilization efficiency (0-1) for a specific warehouse. operationId: get_warehouse_utilization_efficiency_api_v1_databricks_warehouses__warehouse_id__utilization_efficiency_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: warehouse_id in: path required: true schema: type: string title: Warehouse Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehouseUtilizationEfficiencyResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/warehouses/{warehouse_id}/query-metrics-timeline: get: tags: - DATABRICKS summary: Get time-bucketed query metrics timeline for a warehouse description: 'Get the time-bucketed metrics timeline powering the SQL warehouse Monitoring page''s stacked charts (latency, queueing, scan size, cache hit rate, spill). Hybrid-sourced: historical buckets come from the ClickHouse mirror, and the fresh tail the mirror hasn''t ingested yet (up to ~24h) is read live from Databricks system tables via the Statement Execution API against the tenant''s ingestion SQL warehouse — this will auto-start that warehouse if it is currently suspended. A live-tail failure degrades to a ClickHouse-only response rather than erroring. The lookback window is capped at ``MAX_MONITORING_LOOKBACK_DAYS`` days regardless of what''s requested — ``end_date`` is clamped to today and ``start_date`` is clamped to ``end_date - MAX_MONITORING_LOOKBACK_DAYS`` (silently, not a 400; the frontend''s date-range picker clamps to the same bound).' operationId: get_warehouse_query_metrics_timeline_api_v1_databricks_warehouses__warehouse_id__query_metrics_timeline_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: warehouse_id in: path required: true schema: type: string title: Warehouse Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''hour'' or ''day''' default: day title: Granularity description: 'Time granularity: ''hour'' or ''day''' - name: instance_id in: query required: false schema: anyOf: - type: integer - type: 'null' description: Databricks instance id title: Instance Id description: Databricks instance id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WarehouseQueryMetricsTimelineResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/filters: get: tags: - DATABRICKS summary: Get filter options for jobs description: Get distinct filter values for job filtering. operationId: get_job_filters_api_v1_databricks_jobs_filters_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Search prefix for name filters title: Prefix description: Search prefix for name filters - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to filter by title: Workspace Id description: Workspace ID to filter by - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobFilterOptions' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/filters/job_names: get: tags: - DATABRICKS summary: Get paginated distinct job names for filtering description: Get a paginated list of distinct job names for the job-name filter dropdown. operationId: get_job_name_filters_api_v1_databricks_jobs_filters_job_names_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Search substring for job names (case-insensitive) title: Prefix description: Search substring for job names (case-insensitive) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to filter by title: Workspace Id description: Workspace ID to filter by - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PaginatedJobNamesResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/filters/workspaces: get: tags: - DATABRICKS summary: Get paginated distinct job workspaces for filtering description: Get a paginated list of distinct job workspaces for the workspace filter dropdown. operationId: get_job_workspace_filters_api_v1_databricks_jobs_filters_workspaces_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Search substring for workspace names (case-insensitive) title: Prefix description: Search substring for workspace names (case-insensitive) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to filter by title: Workspace Id description: Workspace ID to filter by - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PaginatedJobNamesResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/filters/creators: get: tags: - DATABRICKS summary: Get paginated distinct job creators for filtering description: Get a paginated list of distinct job creators with display names. operationId: get_job_creator_filters_api_v1_databricks_jobs_filters_creators_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Search substring against creator id or display name (case-insensitive) title: Prefix description: Search substring against creator id or display name (case-insensitive) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to filter by title: Workspace Id description: Workspace ID to filter by - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PaginatedJobCreatorsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs: get: tags: - DATABRICKS summary: Get all Databricks jobs description: Get list of all jobs with run statistics. operationId: get_jobs_api_v1_databricks_jobs_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: start_date in: query required: true schema: type: string format: date description: Start date for run statistics title: Start Date description: Start date for run statistics - name: end_date in: query required: false schema: type: string format: date description: End date for run statistics title: End Date description: End date for run statistics - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort column name. Valid columns: job_name, workspace_name, total_runs, successful_runs, failed_runs, success_rate, avg_duration_seconds, last_run_time, total_dbus, total_cost, annualized_total_cost, auto_tune_savings.' title: Sortattribute description: 'Sort column name. Valid columns: job_name, workspace_name, total_runs, successful_runs, failed_runs, success_rate, avg_duration_seconds, last_run_time, total_dbus, total_cost, annualized_total_cost, auto_tune_savings.' - name: sortOrder in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc''' title: Sortorder description: 'Sort direction: ''asc'' or ''desc''' - name: job_names in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by job names title: Job Names description: Filter by job names - name: creators in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by creator user names title: Creators description: Filter by creator user names - name: workspaces in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by workspace display names title: Workspaces description: Filter by workspace display names - name: auto_tune_enabled in: query required: false schema: anyOf: - type: boolean - type: 'null' description: 'Filter by Auto Tune state: true for On, false for Off' title: Auto Tune Enabled description: 'Filter by Auto Tune state: true for On, false for Off' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/summary: get: tags: - DATABRICKS summary: Get aggregate cost summary for the Jobs list description: 'Aggregate cost summary feeding the Jobs page hero cards. Returns Total Cost, Total DBU Cost (equal to Total Cost — DBU is the only cost component), Total Cloud Cost (``null`` — infrastructure cost is not ingested), and Total Realized Savings (summed from the ``dbx_jobs_cost_savings`` cost mart).' operationId: get_jobs_summary_api_v1_databricks_jobs_summary_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for the cost window title: Start Date description: Start date for the cost window - name: end_date in: query required: false schema: type: string format: date description: End date for the cost window title: End Date description: End date for the cost window - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobsSummaryResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/failing: get: tags: - DATABRICKS summary: Get jobs with high failure rates description: Get jobs with high failure rates. operationId: get_failing_jobs_api_v1_databricks_jobs_failing_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: min_failure_rate in: query required: false schema: type: number description: Minimum failure rate percentage default: 20.0 title: Min Failure Rate description: Minimum failure rate percentage - name: start_date in: query required: true schema: type: string format: date description: Start date for statistics title: Start Date description: Start date for statistics - name: end_date in: query required: false schema: type: string format: date description: End date for statistics title: End Date description: End date for statistics - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/FailingJobsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/recent-failures: get: tags: - DATABRICKS summary: Get recent job failures description: Get recent job failures. operationId: get_recent_failures_api_v1_databricks_jobs_recent_failures_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: hours in: query required: false schema: type: integer maximum: 720 exclusiveMinimum: 0 description: Hours to look back (1-720). default: 24 title: Hours description: Hours to look back (1-720). - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RecentFailuresResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/trends: get: tags: - DATABRICKS summary: Get job run trends description: Get job run trends over time. operationId: get_job_run_trends_api_v1_databricks_jobs_trends_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobRunTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/trends/cost: get: tags: - DATABRICKS summary: Get job cost trends by job description: 'Get job cost trends over time broken down by job. Returns every job with billing activity; top-N selection and the "Others" bucket are applied client-side.' operationId: get_job_cost_trends_api_v1_databricks_jobs_trends_cost_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobCostTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}: get: tags: - DATABRICKS summary: Get job details description: Get detailed information for a specific job. operationId: get_job_detail_api_v1_databricks_jobs__job_id__get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobDetail' '403': description: Not authorized '404': description: Job not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/runs: get: tags: - DATABRICKS summary: Get job runs description: Get runs for a specific job. operationId: get_job_runs_api_v1_databricks_jobs__job_id__runs_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: result_state in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: 'Filter by result state. Repeat the query param to pass multiple values (e.g. ?result_state=FAILED&result_state=TIMED_OUT). Valid values: SUCCEEDED, FAILED, SKIPPED, CANCELLED, TIMED_OUT, ERROR, BLOCKED.' title: Result State description: 'Filter by result state. Repeat the query param to pass multiple values (e.g. ?result_state=FAILED&result_state=TIMED_OUT). Valid values: SUCCEEDED, FAILED, SKIPPED, CANCELLED, TIMED_OUT, ERROR, BLOCKED.' - name: run_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by specific run IDs title: Run Ids description: Filter by specific run IDs - name: trigger_types in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by trigger types title: Trigger Types description: Filter by trigger types - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort column name. Valid columns: run_id, start_time, duration_seconds, trigger_type, result_state, cost_cents.' title: Sortattribute description: 'Sort column name. Valid columns: run_id, start_time, duration_seconds, trigger_type, result_state, cost_cents.' - name: sortOrder in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc''' title: Sortorder description: 'Sort direction: ''asc'' or ''desc''' - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobRunsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/stats: get: tags: - DATABRICKS summary: Get job run statistics description: Get run statistics for a specific job. operationId: get_job_stats_api_v1_databricks_jobs__job_id__stats_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobStatsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/trends: get: tags: - DATABRICKS summary: Get job run trends over time description: Get run trends over time for a specific job. operationId: get_single_job_run_trends_api_v1_databricks_jobs__job_id__trends_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobRunTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/auto-tune/savings-trends: get: tags: - DATABRICKS summary: Get per-day auto-tune savings (realized + potential) for a job description: 'Get realized and potential auto-tune savings per day for a job, each split into DBU and infra components and scoped to the run window.' operationId: get_job_auto_tune_savings_trends_api_v1_databricks_jobs__job_id__auto_tune_savings_trends_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: instance_id in: query required: true schema: type: integer description: Databricks instance id title: Instance Id description: Databricks instance id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AutoTuneSavingsTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/task-runs: get: tags: - DATABRICKS summary: Get the job-level task summary (one row per task on the DAG) description: 'Job-level task list: one aggregated row per task on the job''s DAG.' operationId: get_job_tasks_api_v1_databricks_jobs__job_id__task_runs_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Column name to sort by. Valid columns: task_key, result_state, start_time, total_duration_seconds, cost_cents.' title: Sortattribute description: 'Column name to sort by. Valid columns: task_key, result_state, start_time, total_duration_seconds, cost_cents.' - name: sortOrder in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc'' (defaults to ''desc'').' title: Sortorder description: 'Sort direction: ''asc'' or ''desc'' (defaults to ''desc'').' - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobTaskRunsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/task-runs/detail: get: tags: - DATABRICKS summary: Get run/task-scoped task runs (requires run_id or task_key) description: 'Run/task-scoped task runs: one row per ``(task_key, job_run_id)``. Requires ``run_id`` (the tasks of a specific run) or ``task_key`` (one task''s runs over time).' operationId: get_job_task_run_detail_api_v1_databricks_jobs__job_id__task_runs_detail_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: run_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by specific run ID title: Run Id description: Filter by specific run ID - name: task_key in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by specific task key title: Task Key description: Filter by specific task key - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Column name to sort by. Valid columns: task_key, result_state, start_time, total_duration_seconds, cost_cents.' title: Sortattribute description: 'Column name to sort by. Valid columns: task_key, result_state, start_time, total_duration_seconds, cost_cents.' - name: sortOrder in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc'' (defaults to ''desc'').' title: Sortorder description: 'Sort direction: ''asc'' or ''desc'' (defaults to ''desc'').' - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobTaskRunsResponse' '400': description: run_id or task_key required '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/tasks/{task_key}/runs-graph: get: tags: - DATABRICKS summary: Get chart-ready time series of runs for a single task description: 'Return one chart point per run of ``task_key`` on this job. Shape mirrors ``/query/v2/snowflake_jobs/runs_graph/{workflow_id}`` so the FE chart component is reusable: ``query_cost`` is USD and ``execution_time`` is milliseconds. Annotations are intentionally omitted for the Databricks chart.' operationId: get_task_runs_graph_api_v1_databricks_jobs__job_id__tasks__task_key__runs_graph_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: task_key in: path required: true schema: type: string title: Task Key - name: start_date in: query required: true schema: type: string format: date description: Start date (inclusive) title: Start Date description: Start date (inclusive) - name: end_date in: query required: false schema: type: string format: date description: End date (inclusive) title: End Date description: End date (inclusive) - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/DatabricksTaskRunGraphPoint' title: Response Get Task Runs Graph Api V1 Databricks Jobs Job Id Tasks Task Key Runs Graph Get '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/tasks/{task_key}/stats: get: tags: - DATABRICKS summary: Get aggregate run stats for a single task in a date window description: 'Return total/succeeded/failed run counts and mean duration for ``task_key`` on this job. Counts ignore pagination.' operationId: get_task_stats_api_v1_databricks_jobs__job_id__tasks__task_key__stats_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: task_key in: path required: true schema: type: string title: Task Key - name: start_date in: query required: true schema: type: string format: date description: Start date (inclusive) title: Start Date description: Start date (inclusive) - name: end_date in: query required: false schema: type: string format: date description: End date (inclusive) title: End Date description: End date (inclusive) - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DatabricksTaskStatsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/runs/{run_id}/spark-ui: get: tags: - DATABRICKS summary: Get the Databricks Spark UI URL for a job run description: 'Build the deep link to the Databricks Spark UI for a job run. Thin pass-through to ``DatabricksJobService.resolve_spark_ui``; that method does the lookup → cred-resolve → runs/get → URL-compose flow and maps the expected failure modes to ``state`` values on the always-200 response.' operationId: get_job_run_spark_ui_api_v1_databricks_jobs__job_id__runs__run_id__spark_ui_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: run_id in: path required: true schema: type: string title: Run Id - name: task_run_id in: query required: false schema: anyOf: - type: string - type: 'null' description: When set, return the Spark UI for this specific task run (matched against tasks[*].run_id in the Databricks runs/get response). Use the top-level run's driver UI when omitted. title: Task Run Id description: When set, return the Spark UI for this specific task run (matched against tasks[*].run_id in the Databricks runs/get response). Use the top-level run's driver UI when omitted. - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID — required for multi-workspace tenants to route credential lookup to the correct workspace. title: Workspace Id description: Workspace ID — required for multi-workspace tenants to route credential lookup to the correct workspace. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobRunSparkUiResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/tasks-inventory: get: tags: - DATABRICKS summary: Get the static task list for a Databricks job description: 'Return every task defined on the job''s workflow DAG (regardless of whether the task has been run or has an Auto Tune recommendation). Sourced from ``dbx_job_tasks_inventory``. The Auto Tune drawer DAG and the overview "Tasks" tile use this as the authoritative task list so they don''t depend on the recs feed or task-runs windowing for the denominator.' operationId: get_job_tasks_inventory_api_v1_databricks_jobs__job_id__tasks_inventory_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: instance_id in: query required: true schema: type: integer description: Databricks instance id title: Instance Id description: Databricks instance id - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/JobTasksInventoryResponse' '403': description: Not authorized '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/spark-analysis: get: tags: - DATABRICKS summary: Get Spark analysis for job's latest run description: Get Spark-level analysis for a job's latest successful/failed run. operationId: get_spark_analysis_api_v1_databricks_jobs__job_id__spark_analysis_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: run_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Specific run ID (defaults to latest) title: Run Id description: Specific run ID (defaults to latest) - name: task_key in: query required: false schema: anyOf: - type: string - type: 'null' description: Task key to scope cost to a specific task title: Task Key description: Task key to scope cost to a specific task - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SparkAnalysisSummaryResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/spark-analysis/stage-metrics: get: tags: - DATABRICKS summary: Get paginated stage metrics for a job's Spark run description: Get paginated stage-level task metrics with server-side sorting. operationId: get_spark_stage_metrics_api_v1_databricks_jobs__job_id__spark_analysis_stage_metrics_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: run_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Specific run ID (defaults to latest) title: Run Id description: Specific run ID (defaults to latest) - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Column name to sort by. Valid columns: stage_id, task_count, total_run_ms, max_run_ms, avg_run_ms, min_run_ms, median_run_ms, q1_run_ms, q3_run_ms, stddev_run_ms, total_gc_ms, total_mem_spill, total_disk_spill, total_shuffle_read, total_shuffle_write, skew.' title: Sortattribute description: 'Column name to sort by. Valid columns: stage_id, task_count, total_run_ms, max_run_ms, avg_run_ms, min_run_ms, median_run_ms, q1_run_ms, q3_run_ms, stddev_run_ms, total_gc_ms, total_mem_spill, total_disk_spill, total_shuffle_read, total_shuffle_write, skew.' - name: sortOrder in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc'' (defaults to ''desc'').' title: Sortorder description: 'Sort direction: ''asc'' or ''desc'' (defaults to ''desc'').' - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: stage_ids in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated stage IDs to filter by (e.g., '0,1,2') title: Stage Ids description: Comma-separated stage IDs to filter by (e.g., '0,1,2') - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SparkStageMetricsPaginatedResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/spark-analysis/tasks: get: tags: - DATABRICKS summary: Get paginated individual Spark tasks for a job's Spark run description: Get paginated individual Spark tasks with server-side sorting. operationId: get_spark_tasks_api_v1_databricks_jobs__job_id__spark_analysis_tasks_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: run_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Specific run ID (defaults to latest) title: Run Id description: Specific run ID (defaults to latest) - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Column name to sort by. Valid columns: task_id, stage_id, executor_run_time, duration_ms, jvm_gc_time, memory_bytes_spilled, disk_bytes_spilled, shuffle_read_bytes, shuffle_write_bytes.' title: Sortattribute description: 'Column name to sort by. Valid columns: task_id, stage_id, executor_run_time, duration_ms, jvm_gc_time, memory_bytes_spilled, disk_bytes_spilled, shuffle_read_bytes, shuffle_write_bytes.' - name: sortOrder in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc'' (defaults to ''desc'').' title: Sortorder description: 'Sort direction: ''asc'' or ''desc'' (defaults to ''desc'').' - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: stage_ids in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated stage IDs to filter by (e.g., '0,1,2') title: Stage Ids description: Comma-separated stage IDs to filter by (e.g., '0,1,2') - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SparkTasksPaginatedResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/spark-analysis/opportunities: get: tags: - DATABRICKS summary: Get optimization opportunities for a job's Spark run with code linkage description: Get optimization opportunities for a Spark job with linked source code. operationId: get_spark_opportunities_api_v1_databricks_jobs__job_id__spark_analysis_opportunities_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: cluster_id in: query required: false schema: anyOf: - type: string - type: 'null' title: Cluster Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SparkOpportunitiesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/auto-recommendations: get: tags: - DATABRICKS summary: Get Databricks auto right-sizing recommendations for a job description: 'Return rows from `dbx_auto_recommendation` scoped to this job. Each row carries ``auto_tune_mode`` projected via LEFT JOIN on ``databricks_auto_tune_configuration`` (PRD §6 Option A — single source of truth for the toggle position) plus a server-computed ``monthly_savings_usd``. Each item also carries ``depends_on`` (upstream task DAG edges from ``dbx_job_tasks_inventory.depends_on_keys``) and ``latest_action_event_type`` (most recent audit event_type per task_key — drives the FE status pill).' operationId: get_job_auto_recommendations_api_v1_databricks_jobs__job_id__auto_recommendations_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: instance_id in: query required: true schema: type: integer description: Tenant instance ID (workspace) to scope the lookup title: Instance Id description: Tenant instance ID (workspace) to scope the lookup - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional Databricks workspace_id to scope queries to a specific workspace within the tenant's Databricks account. Defends against cross-workspace job_id collisions. When None, falls back to (instance_id, entity_id) lookup. title: Workspace Id description: Optional Databricks workspace_id to scope queries to a specific workspace within the tenant's Databricks account. Defends against cross-workspace job_id collisions. When None, falls back to (instance_id, entity_id) lookup. - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start of the window the savings figures are summed over. Matches the shape of /auto-tune/savings-trends so the FE's date-range picker can drive both the chart and this drawer consistently. Defaults to 30 days before end_date when omitted. title: Start Date description: Start of the window the savings figures are summed over. Matches the shape of /auto-tune/savings-trends so the FE's date-range picker can drive both the chart and this drawer consistently. Defaults to 30 days before end_date when omitted. - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End of the savings window (inclusive). Defaults to today (UTC) when omitted. title: End Date description: End of the savings window (inclusive). Defaults to today (UTC) when omitted. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DbxAutoRecommendationsResponse' '403': description: Not authorized '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/auto-tune/toggle: patch: tags: - DATABRICKS summary: Toggle auto-tune on/off for a job's recommendation description: "Enable or disable auto-tune for a recommendation.\n\nThree flows behind one endpoint (v2.5 §15):\n\n1. **Enable** — write APPLY_REQUESTED + flip config to enabled.\n Worker picks up async and calls Databricks.\n2. **Disable when never applied** — fast-path. Write APPLY_REQUESTED\n (mode=disable) + flip the per-role cfg rows to disabled. No\n Databricks call needed.\n3. **Disable when previously APPLIED** — sync rollback.\n BE preflight → optionally cancel active runs (with ``force=true``)\n → POST /api/2.2/jobs/update with attributes.from of the most\n recent APPLIED → write APPLIED audit row + update config in one\n Postgres tx. On Databricks failure: NO audit row, surface error." operationId: toggle_job_auto_tune_api_v1_databricks_jobs__job_id__auto_tune_toggle_patch security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: instance_id in: query required: true schema: type: integer description: Tenant instance ID (workspace) the job runs in title: Instance Id description: Tenant instance ID (workspace) the job runs in - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional Databricks workspace_id to scope queries to a specific workspace within the tenant's Databricks account. Defends against cross-workspace job_id collisions. When None, falls back to (instance_id, entity_id) lookup. title: Workspace Id description: Optional Databricks workspace_id to scope queries to a specific workspace within the tenant's Databricks account. Defends against cross-workspace job_id collisions. When None, falls back to (instance_id, entity_id) lookup. - name: task_key in: query required: false schema: type: string description: Task key when toggling a per-task recommendation. Empty string for job-level recommendations (default). default: '' title: Task Key description: Task key when toggling a per-task recommendation. Empty string for job-level recommendations (default). - name: force in: query required: false schema: type: boolean description: Only meaningful for sync rollback (disable on an applied rec). When the job has active runs, force=true cancels them before reverting the cluster config. Defaults to false; the BE returns rollback.needs_confirmation=true and the FE shows an interstitial. default: false title: Force description: Only meaningful for sync rollback (disable on an applied rec). When the job has active runs, force=true cancels them before reverting the cluster config. Defaults to false; the BE returns rollback.needs_confirmation=true and the FE shows an interstitial. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ToggleAutoTuneRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ToggleAutoTuneResponse' '403': description: Not authorized '404': description: No recommendation found for this job '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/auto-tune/status: get: tags: - DATABRICKS summary: Page-level Auto Tune status for a job description: 'Read-only status endpoint consumed by the Auto Tune tab on mount. Aggregates ``auto_tune_mode`` across every (entity_id, task_key) row for this job: master is "enabled" if ANY task is enabled. Surfaces a job-level preflight result so the FE can disable the master Switch when the SP can''t act on the workspace, with the exact actionable message we''d show on a real toggle attempt. Also returns ``recommendation_count`` so the FE can gate the Auto Tune tab. Savings figures are not computed here — the FE derives its overall savings tiles from the per-day ``/auto-tune/savings-trends`` series (ClickHouse ``dbx_jobs_cost_savings``). No DB writes — the preflight result is a snapshot for UI gating only.' operationId: get_job_auto_tune_status_api_v1_databricks_jobs__job_id__auto_tune_status_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: instance_id in: query required: true schema: type: integer description: Tenant instance ID (workspace) the job runs in title: Instance Id description: Tenant instance ID (workspace) the job runs in - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional Databricks workspace_id to scope queries to a specific workspace within the tenant's Databricks account. Defends against cross-workspace job_id collisions. When None, falls back to (instance_id, entity_id) lookup. title: Workspace Id description: Optional Databricks workspace_id to scope queries to a specific workspace within the tenant's Databricks account. Defends against cross-workspace job_id collisions. When None, falls back to (instance_id, entity_id) lookup. - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AutoTuneStatusResponse' '403': description: Not authorized '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/jobs/{job_id}/auto-tune/history: get: tags: - DATABRICKS summary: Paginated Auto Tune audit history for a job description: 'Read-only audit history for the Auto Tune tab. Returns the most-recent events first. Each row carries ``event_message`` composed server-side from event_type + mode + actor + payload via ``DBX_AUTO_TUNE_EVENT_UI_MAPPING`` so the FE renders one string verbatim. User resolution is manual (PR #5070 hasn''t merged): we batch-load ``altimate_users`` rows for the non-null ``changed_by`` ids on the page and attach ``changed_by_name`` before serialization.' operationId: get_job_auto_tune_history_api_v1_databricks_jobs__job_id__auto_tune_history_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: job_id in: path required: true schema: type: string title: Job Id - name: instance_id in: query required: true schema: type: integer description: Tenant instance ID (workspace) the job runs in title: Instance Id description: Tenant instance ID (workspace) the job runs in - name: event_types in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of event_type values to include (APPLY_REQUESTED, APPLIED, FAILED). Empty/omitted = all. title: Event Types description: Comma-separated list of event_type values to include (APPLY_REQUESTED, APPLIED, FAILED). Empty/omitted = all. - name: period in: query required: false schema: anyOf: - type: integer minimum: 1 - type: 'null' description: Look-back window in days. Excludes audit rows whose ``change_timestamp`` is older than now - period days. title: Period description: Look-back window in days. Excludes audit rows whose ``change_timestamp`` is older than now - period days. - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Optional Databricks workspace_id to scope queries to a specific workspace within the tenant's Databricks account. Defends against cross-workspace job_id collisions. When None, falls back to (instance_id, entity_id) lookup. title: Workspace Id description: Optional Databricks workspace_id to scope queries to a specific workspace within the tenant's Databricks account. Defends against cross-workspace job_id collisions. When None, falls back to (instance_id, entity_id) lookup. - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AutoTuneHistoryResponse' '403': description: Not authorized '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/filters: get: tags: - DATABRICKS summary: Get filter options for queries description: Get distinct filter values for query filtering. operationId: get_query_filters_api_v1_databricks_queries_filters_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Search prefix for name filters title: Prefix description: Search prefix for name filters - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to filter by title: Workspace Id description: Workspace ID to filter by - name: start_date in: query required: false schema: anyOf: - type: string - type: 'null' description: Start date for filtering (YYYY-MM-DD) title: Start Date description: Start date for filtering (YYYY-MM-DD) - name: end_date in: query required: false schema: anyOf: - type: string - type: 'null' description: End date for filtering (YYYY-MM-DD) title: End Date description: End date for filtering (YYYY-MM-DD) - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryFilterOptions' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/filters/users: get: tags: - DATABRICKS summary: Search query-history user names by prefix description: 'Server-side search for query-history user names — a dedicated single list so the typed prefix only scans user names, never the other ``/queries/filters`` lists.' operationId: search_query_users_api_v1_databricks_queries_filters_users_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Substring to match user names against title: Prefix description: Substring to match user names against - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date title: End Date description: End date - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryUserNamesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/filters/computes: get: tags: - DATABRICKS summary: Search the unified compute list by prefix description: 'Server-side search for the unified compute list (warehouse + cluster + pipeline) — a dedicated single list so the typed prefix only scans computes, never the other ``/queries/filters`` lists.' operationId: search_query_computes_api_v1_databricks_queries_filters_computes_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Substring to match compute display labels against title: Prefix description: Substring to match compute display labels against - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date title: End Date description: End date - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryComputesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/filters/workspaces: get: tags: - DATABRICKS summary: Search query-history workspaces by name prefix description: 'Server-side search for query-history workspaces — a dedicated single list so the typed prefix only scans workspaces, never the other ``/queries/filters`` lists. A tenant can have thousands of workspaces.' operationId: search_query_workspaces_api_v1_databricks_queries_filters_workspaces_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Substring to match workspace names against title: Prefix description: Substring to match workspace names against - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date title: End Date description: End date - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryWorkspacesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/filters/statement-ids: get: tags: - DATABRICKS summary: Search statement IDs for the Query ID filter dropdown description: 'Server-side search for statement IDs — backs the Query ID filter dropdown. Matches statement IDs by substring so the dropdown never loads the full ID list; results are paginated.' operationId: search_query_statement_ids_api_v1_databricks_queries_filters_statement_ids_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Substring to match statement IDs against. Searches kick in once the typed text reaches 2 characters; shorter inputs return an empty list without scanning ClickHouse so the dropdown's open-with-empty-prefix probe is free. title: Prefix description: Substring to match statement IDs against. Searches kick in once the typed text reaches 2 characters; shorter inputs return an empty list without scanning ClickHouse so the dropdown's open-with-empty-prefix probe is free. - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Number of IDs per page default: 25 title: Page Size description: Number of IDs per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryStatementIdsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/summary: get: tags: - DATABRICKS summary: Get query summary metrics description: 'Get summary metrics for queries. Accepts the same filter set as ``GET /queries/unified`` so the summary cards reflect the exact rows the queries table renders for a given filter selection.' operationId: get_query_summary_api_v1_databricks_queries_summary_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by single workspace ID (legacy URL pre-selection) title: Workspace Id description: Filter by single workspace ID (legacy URL pre-selection) - name: workspace_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by one or more workspace IDs (column multi-select) title: Workspace Ids description: Filter by one or more workspace IDs (column multi-select) - name: warehouse_id in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by one or more warehouse IDs (legacy column multi-select). Prefer ``compute_id`` for new FE bindings — it covers warehouse + cluster + pipeline in one parameter. Entries here are merged with any ``compute_id`` warehouse selections before the BE applies the filter. title: Warehouse Id description: Filter by one or more warehouse IDs (legacy column multi-select). Prefer ``compute_id`` for new FE bindings — it covers warehouse + cluster + pipeline in one parameter. Entries here are merged with any ``compute_id`` warehouse selections before the BE applies the filter. - name: compute_id in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: 'Unified Compute filter: one or more ``{kind}:{id}`` selections from the dropdown, where ``kind`` is ``warehouse``, ``cluster``, or ``pipeline``. A mixed selection is ORed (rows of any selected kind match). Entries with an unknown ``kind`` or empty id are silently skipped so this stays forward-compatible if the FE adopts a new kind ahead of the BE.' title: Compute Id description: 'Unified Compute filter: one or more ``{kind}:{id}`` selections from the dropdown, where ``kind`` is ``warehouse``, ``cluster``, or ``pipeline``. A mixed selection is ORed (rows of any selected kind match). Entries with an unknown ``kind`` or empty id are silently skipped so this stays forward-compatible if the FE adopts a new kind ahead of the BE.' - name: insights in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by insight tags (slow_query, disk_spill, full_table_scan, failed) title: Insights description: Filter by insight tags (slow_query, disk_spill, full_table_scan, failed) - name: statement_type in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by statement type title: Statement Type description: Filter by statement type - name: user_name in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by one or more user names. Single-value calls (e.g. the User-list drilldown URL ``?user_name=alice``) continue to work — FastAPI parses the single value as a one-element list and the BE applies the matching IN-clause filter. Multi-select dropdowns send ``?user_name=alice&user_name=bob``. title: User Name description: Filter by one or more user names. Single-value calls (e.g. the User-list drilldown URL ``?user_name=alice``) continue to work — FastAPI parses the single value as a one-element list and the BE applies the matching IN-clause filter. Multi-select dropdowns send ``?user_name=alice&user_name=bob``. - name: statement_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by one or more exact query (statement) IDs title: Statement Ids description: Filter by one or more exact query (statement) IDs - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QuerySummaryResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/trends: get: tags: - DATABRICKS summary: Get query trends description: Get query trends over time. operationId: get_query_trends_api_v1_databricks_queries_trends_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/trends/cost-by-user: get: tags: - DATABRICKS summary: Get query cost trends by user description: Get query cost trends over time broken down by user. operationId: get_query_cost_trends_by_user_api_v1_databricks_queries_trends_cost_by_user_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: top_n in: query required: false schema: type: integer maximum: 10 minimum: 1 description: Number of top users to show default: 5 title: Top N description: Number of top users to show - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryCostTrendsByUserResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries: get: tags: - DATABRICKS summary: Get queries description: Get queries with filters. operationId: get_queries_api_v1_databricks_queries_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: statement_type in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by statement type title: Statement Type description: Filter by statement type - name: execution_status in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by execution status (FINISHED, FAILED) title: Execution Status description: Filter by execution status (FINISHED, FAILED) - name: limit in: query required: false schema: type: integer description: Maximum number of queries default: 100 title: Limit description: Maximum number of queries - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueriesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/slow: get: tags: - DATABRICKS summary: Get slow queries description: Get slow queries (queries exceeding duration threshold). operationId: get_slow_queries_api_v1_databricks_queries_slow_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: min_duration_ms in: query required: false schema: type: integer description: Minimum duration in milliseconds default: 60000 title: Min Duration Ms description: Minimum duration in milliseconds - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: limit in: query required: false schema: type: integer description: Maximum number of queries default: 100 title: Limit description: Maximum number of queries - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SlowQueriesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/spills: get: tags: - DATABRICKS summary: Get queries with memory spills description: Get queries with memory spills. operationId: get_spill_queries_api_v1_databricks_queries_spills_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: min_spill_bytes in: query required: false schema: type: integer description: Minimum spill bytes (default 1MB) default: 1048576 title: Min Spill Bytes description: Minimum spill bytes (default 1MB) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: limit in: query required: false schema: type: integer description: Maximum number of queries default: 100 title: Limit description: Maximum number of queries - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SpillQueriesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/full-scans: get: tags: - DATABRICKS summary: Get queries with large data reads description: Get queries with large data reads (potential full scans). operationId: get_full_scan_queries_api_v1_databricks_queries_full_scans_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: min_read_bytes in: query required: false schema: type: integer description: Minimum bytes read (default 1GB) default: 1073741824 title: Min Read Bytes description: Minimum bytes read (default 1GB) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: limit in: query required: false schema: type: integer description: Maximum number of queries default: 100 title: Limit description: Maximum number of queries - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/FullScanQueriesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/failed: get: tags: - DATABRICKS summary: Get failed queries description: Get failed queries. operationId: get_failed_queries_api_v1_databricks_queries_failed_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: limit in: query required: false schema: type: integer description: Maximum number of queries default: 100 title: Limit description: Maximum number of queries - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/FailedQueriesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/breakdown/statement-type: get: tags: - DATABRICKS summary: Get query breakdown by statement type description: Get query counts and stats grouped by statement type. operationId: get_statement_type_breakdown_api_v1_databricks_queries_breakdown_statement_type_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/StatementTypeBreakdownResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/breakdown/user: get: tags: - DATABRICKS summary: Get query breakdown by user description: Get query counts and stats grouped by user. operationId: get_user_query_breakdown_api_v1_databricks_queries_breakdown_user_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: limit in: query required: false schema: type: integer description: Maximum number of users default: 50 title: Limit description: Maximum number of users - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserQueryBreakdownResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/unified: get: tags: - DATABRICKS summary: Get unified queries with insights description: 'Get unified queries with computed insight tags. Each query is automatically tagged with applicable insights: - slow_query: Query duration >= 60 seconds - disk_spill: Memory spill >= 1MB - full_table_scan: Data read >= 1GB - failed: Query failed to execute' operationId: get_unified_queries_api_v1_databricks_queries_unified_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by single workspace ID (legacy URL pre-selection) title: Workspace Id description: Filter by single workspace ID (legacy URL pre-selection) - name: workspace_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by one or more workspace IDs (column multi-select) title: Workspace Ids description: Filter by one or more workspace IDs (column multi-select) - name: warehouse_id in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by one or more warehouse IDs (legacy column multi-select). Prefer ``compute_id`` for new FE bindings — it covers warehouse + cluster + pipeline in one parameter. Entries here are merged with any ``compute_id`` warehouse selections before the BE applies the filter. title: Warehouse Id description: Filter by one or more warehouse IDs (legacy column multi-select). Prefer ``compute_id`` for new FE bindings — it covers warehouse + cluster + pipeline in one parameter. Entries here are merged with any ``compute_id`` warehouse selections before the BE applies the filter. - name: compute_id in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: 'Unified Compute filter: one or more ``{kind}:{id}`` selections from the dropdown, where ``kind`` is ``warehouse``, ``cluster``, or ``pipeline``. A mixed selection is ORed (rows of any selected kind match). Entries with an unknown ``kind`` or empty id are silently skipped so this stays forward-compatible if the FE adopts a new kind ahead of the BE.' title: Compute Id description: 'Unified Compute filter: one or more ``{kind}:{id}`` selections from the dropdown, where ``kind`` is ``warehouse``, ``cluster``, or ``pipeline``. A mixed selection is ORed (rows of any selected kind match). Entries with an unknown ``kind`` or empty id are silently skipped so this stays forward-compatible if the FE adopts a new kind ahead of the BE.' - name: insights in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by insight tags (slow_query, disk_spill, full_table_scan, failed) title: Insights description: Filter by insight tags (slow_query, disk_spill, full_table_scan, failed) - name: statement_type in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by statement type title: Statement Type description: Filter by statement type - name: user_name in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by one or more user names. Single-value calls (e.g. the User-list drilldown URL ``?user_name=alice``) continue to work — FastAPI parses the single value as a one-element list and the BE applies the matching IN-clause filter. Multi-select dropdowns send ``?user_name=alice&user_name=bob``. title: User Name description: Filter by one or more user names. Single-value calls (e.g. the User-list drilldown URL ``?user_name=alice``) continue to work — FastAPI parses the single value as a one-element list and the BE applies the matching IN-clause filter. Multi-select dropdowns send ``?user_name=alice&user_name=bob``. - name: statement_ids in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by one or more exact query (statement) IDs title: Statement Ids description: Filter by one or more exact query (statement) IDs - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 500 minimum: 1 description: Number of items per page default: 100 title: Page Size description: Number of items per page - name: sort_by in: query required: false schema: type: string description: 'Column to sort by. Allowed: estimated_cost_usd, start_time, total_duration_ms, read_bytes, spilled_local_bytes, statement_type, user_name, warehouse_name, workspace_name.' default: estimated_cost_usd title: Sort By description: 'Column to sort by. Allowed: estimated_cost_usd, start_time, total_duration_ms, read_bytes, spilled_local_bytes, statement_type, user_name, warehouse_name, workspace_name.' - name: sort_order in: query required: false schema: type: string description: 'Sort order: ''asc'' or ''desc''' default: desc title: Sort Order description: 'Sort order: ''asc'' or ''desc''' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UnifiedQueriesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/{statement_id}: get: tags: - DATABRICKS summary: Get query detail by statement ID description: Get detailed information for a specific query by statement ID. operationId: get_query_detail_api_v1_databricks_queries__statement_id__get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: statement_id in: path required: true schema: type: string title: Statement Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryDetailResponse' '403': description: Not authorized '404': description: Query not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/queries/{statement_id}/sql-lineage: get: tags: - DATABRICKS summary: Get SQL lineage visualization for a query description: Get SQL lineage visualization data for a specific query. operationId: get_query_sql_lineage_api_v1_databricks_queries__statement_id__sql_lineage_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: statement_id in: path required: true schema: type: string title: Statement Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__query__QuerySqlLineageResponse' '403': description: Not authorized '404': description: Query not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/insights/overview: get: tags: - DATABRICKS summary: Get Databricks environment overview description: 'Get complete overview of Databricks environment. Returns aggregated insights including: - Compute resources (clusters, warehouses) - Job health (runs, failures) - Query health (counts, performance) - Cost summary and top drivers - Utilization insights' operationId: get_overview_api_v1_databricks_insights_overview_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for metrics title: Start Date description: Start date for metrics - name: end_date in: query required: false schema: type: string format: date description: End date for metrics title: End Date description: End date for metrics - name: days in: query required: false schema: type: integer description: Days for activity metrics default: 7 title: Days description: Days for activity metrics - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DatabricksOverviewResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/insights/workspace-activity: get: tags: - DATABRICKS summary: Get activity by workspace description: Get activity summary by workspace. operationId: get_workspace_activity_api_v1_databricks_insights_workspace_activity_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: days in: query required: false schema: type: integer description: Days to analyze default: 7 title: Days description: Days to analyze - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WorkspaceActivityResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/opportunities/summary: get: tags: - DATABRICKS summary: Get opportunities summary description: Get summary counts of all opportunity types. operationId: get_opportunities_summary_api_v1_databricks_opportunities_summary_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date for query analysis title: Start Date description: Start date for query analysis - name: end_date in: query required: false schema: type: string format: date description: End date for query analysis title: End Date description: End date for query analysis - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OpportunitiesSummaryResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/opportunities/oversized-clusters: get: tags: - DATABRICKS summary: Get oversized cluster opportunities description: Get clusters that appear to be oversized based on utilization metrics. operationId: get_oversized_clusters_api_v1_databricks_opportunities_oversized_clusters_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: cpu_threshold in: query required: false schema: type: number description: Maximum average CPU to be considered oversized default: 30.0 title: Cpu Threshold description: Maximum average CPU to be considered oversized - name: memory_threshold in: query required: false schema: type: number description: Maximum average memory to be considered oversized default: 30.0 title: Memory Threshold description: Maximum average memory to be considered oversized - name: days in: query required: false schema: type: integer description: Number of days for metrics default: 30 title: Days description: Number of days for metrics - name: min_samples in: query required: false schema: type: integer description: Minimum samples for reliable analysis default: 100 title: Min Samples description: Minimum samples for reliable analysis - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__opportunities__OversizedClustersResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/opportunities/serverless-candidates: get: tags: - DATABRICKS summary: Get serverless migration candidates description: Get warehouses that could benefit from serverless migration. operationId: get_serverless_candidates_api_v1_databricks_opportunities_serverless_candidates_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: max_auto_stop_mins in: query required: false schema: type: integer description: Maximum auto-stop time to consider default: 10 title: Max Auto Stop Mins description: Maximum auto-stop time to consider - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__opportunities__ServerlessCandidatesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/opportunities/high-failure-jobs: get: tags: - DATABRICKS summary: Get high failure rate jobs description: Get jobs with high failure rates that need attention. operationId: get_high_failure_jobs_api_v1_databricks_opportunities_high_failure_jobs_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: min_failure_rate in: query required: false schema: type: number description: Minimum failure rate to flag default: 20.0 title: Min Failure Rate description: Minimum failure rate to flag - name: min_runs in: query required: false schema: type: integer description: Minimum runs for reliable analysis default: 5 title: Min Runs description: Minimum runs for reliable analysis - name: days in: query required: false schema: type: integer description: Number of days to analyze default: 30 title: Days description: Number of days to analyze - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/HighFailureJobsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/opportunities/expensive-queries: get: tags: - DATABRICKS summary: Get expensive queries description: Get expensive queries that could be optimized. operationId: get_expensive_queries_api_v1_databricks_opportunities_expensive_queries_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: min_duration_ms in: query required: false schema: type: integer description: Minimum duration threshold (5 min default) default: 300000 title: Min Duration Ms description: Minimum duration threshold (5 min default) - name: min_read_bytes in: query required: false schema: type: integer description: Minimum bytes read threshold (5GB default) default: 5368709120 title: Min Read Bytes description: Minimum bytes read threshold (5GB default) - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: limit in: query required: false schema: type: integer description: Maximum results default: 50 title: Limit description: Maximum results - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ExpensiveQueriesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/opportunities/idle-clusters: get: tags: - DATABRICKS summary: Get idle clusters description: Get clusters that have been idle for extended periods. operationId: get_idle_clusters_api_v1_databricks_opportunities_idle_clusters_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: idle_hours in: query required: false schema: type: integer description: Hours of inactivity to consider idle default: 24 title: Idle Hours description: Hours of inactivity to consider idle - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/IdleClustersResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/opportunities/by-resource: get: tags: - DATABRICKS summary: Get opportunities for a specific resource description: 'Get opportunities for a specific Databricks resource. Resource types: - 12: CLUSTER (returns oversized and idle cluster opportunities) - 17: JOB (returns high failure job opportunities) - 18: WAREHOUSE (returns serverless candidate opportunities)' operationId: get_opportunities_by_resource_api_v1_databricks_opportunities_by_resource_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: resource_id in: query required: true schema: type: string description: Resource ID (cluster_id, job_id, or warehouse_id) title: Resource Id description: Resource ID (cluster_id, job_id, or warehouse_id) - name: resource_type in: query required: true schema: type: integer description: 'Resource type: 12=CLUSTER, 17=JOB, 18=WAREHOUSE' title: Resource Type description: 'Resource type: 12=CLUSTER, 17=JOB, 18=WAREHOUSE' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ResourceOpportunitiesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/opportunities/redirection: get: tags: - DATABRICKS summary: Get resource redirection URL for Databricks description: 'Get redirection URL for a Databricks resource by looking up the opportunity. Looks up the opportunity in ClickHouse and returns the appropriate URL based on the resource type: - 12: CLUSTER -> /clusters/{resource_id} - 17: JOB -> /jobs/{resource_id} - 18: DATABRICKS_WAREHOUSE (SQL warehouse) -> /sql-warehouses/{resource_id}' operationId: get_databricks_resource_redirection_api_v1_databricks_opportunities_redirection_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: opportunity_id in: query required: true schema: type: string description: Opportunity ID title: Opportunity Id description: Opportunity ID - name: instance_id in: query required: true schema: type: string description: Instance ID title: Instance Id description: Instance ID - name: resource_type in: query required: false schema: anyOf: - type: integer - type: 'null' description: 'Resource type filter: 3=WAREHOUSE, 12=CLUSTER, 17=JOB' title: Resource Type description: 'Resource type filter: 3=WAREHOUSE, 12=CLUSTER, 17=JOB' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: {} '403': description: Not authorized '404': description: Opportunity not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/opportunities/resource: get: tags: - DATABRICKS summary: Get opportunities for a specific resource description: 'Get opportunities for a specific Databricks resource. Queries ClickHouse to find opportunities that have this resource in their resources array (by resource ID).' operationId: get_databricks_opportunities_for_resource_api_v1_databricks_opportunities_resource_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: resource_uri in: query required: true schema: type: string description: Resource ID title: Resource Uri description: Resource ID - name: resource_type in: query required: true schema: type: integer description: 'Resource type: 1=QUERY, 12=CLUSTER, 17=JOB, 18=DATABRICKS_WAREHOUSE' title: Resource Type description: 'Resource type: 1=QUERY, 12=CLUSTER, 17=JOB, 18=DATABRICKS_WAREHOUSE' - name: instance_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Instance ID title: Instance Id description: Instance ID - name: start_date in: query required: false schema: type: string format: date-time description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date-time description: End date title: End Date description: End date - name: status_filter in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Status filter (comma-separated): active, implemented, closed, dismissed' title: Status Filter description: 'Status filter (comma-separated): active, implemented, closed, dismissed' - name: sort in: query required: false schema: anyOf: - type: string - type: 'null' description: Sort field title: Sort description: Sort field - name: sort_order in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort order: asc, desc' title: Sort Order description: 'Sort order: asc, desc' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: type: object additionalProperties: true title: Response Get Databricks Opportunities For Resource Api V1 Databricks Opportunities Resource Get '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/savings/autonomous: get: tags: - DATABRICKS summary: Get autonomous savings description: 'Get autonomous savings data. Note: For Databricks, autonomous savings is always zero as there are no automated optimization agents.' operationId: get_autonomous_savings_api_v1_databricks_savings_autonomous_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AutonomousSavingsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/savings/assisted: get: tags: - DATABRICKS summary: Get assisted savings description: 'Get assisted savings from opportunities. Shows potential savings from implementing identified opportunities.' operationId: get_assisted_savings_api_v1_databricks_savings_assisted_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__savings__AssistedSavingsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/savings/assisted/tracked: get: tags: - DATABRICKS summary: Get tracked assisted savings from PostgreSQL description: 'Get tracked assisted savings from PostgreSQL opportunity_saving_attribution table. This endpoint provides actual realized savings from implemented opportunities, following the same pattern as Snowflake''s assisted savings calculation.' operationId: get_tracked_assisted_savings_api_v1_databricks_savings_assisted_tracked_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID (maps to instance_id) title: Workspace Id description: Filter by workspace ID (maps to instance_id) - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TrackedAssistedSavingsResponse' '403': description: Not authorized '500': description: Failed to get savings '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/savings/overall: get: tags: - DATABRICKS summary: Get overall savings summary description: 'Get overall savings summary. Combines autonomous (always 0 for Databricks) and assisted savings.' operationId: get_overall_savings_api_v1_databricks_savings_overall_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SavingsOverallResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/savings/overall/estimate: get: tags: - DATABRICKS summary: Get overall savings estimate with projections description: 'Get overall savings estimate with future projections. Projects potential savings based on current opportunity analysis.' operationId: get_overall_savings_estimate_api_v1_databricks_savings_overall_estimate_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: savings_period in: query required: false schema: type: string description: 'Projection period: thisYear or next1Year' default: next1Year title: Savings Period description: 'Projection period: thisYear or next1Year' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SavingsOverallEstimateResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/users/filters: get: tags: - DATABRICKS summary: Get filter options for users description: Get distinct filter values for user filtering. operationId: get_user_filters_api_v1_databricks_users_filters_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: prefix in: query required: false schema: anyOf: - type: string - type: 'null' description: Search prefix for name filters title: Prefix description: Search prefix for name filters - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to filter by title: Workspace Id description: Workspace ID to filter by - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserFilterOptions' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/users: get: tags: - DATABRICKS summary: Get all users with query statistics description: Get all users with query statistics. operationId: get_users_api_v1_databricks_users_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (inclusive) for query / cost statistics. Defaults to 30 days before `end_date`. title: Start Date description: Start date (inclusive) for query / cost statistics. Defaults to 30 days before `end_date`. - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (inclusive). Defaults to today. title: End Date description: End date (inclusive). Defaults to today. - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Page Size description: Items per page - name: sortAttribute in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort column name. Valid columns: user_name, total_queries, successful_queries, failed_queries, avg_duration_ms, max_duration_ms, total_duration_ms, total_read_bytes, total_spilled_bytes, last_query_time, total_dbus, total_cost (cost columns sorted with zeros/nulls last).' title: Sortattribute description: 'Sort column name. Valid columns: user_name, total_queries, successful_queries, failed_queries, avg_duration_ms, max_duration_ms, total_duration_ms, total_read_bytes, total_spilled_bytes, last_query_time, total_dbus, total_cost (cost columns sorted with zeros/nulls last).' - name: sortOrder in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Sort direction: ''asc'' or ''desc''' title: Sortorder description: 'Sort direction: ''asc'' or ''desc''' - name: user_names in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Filter by user names title: User Names description: Filter by user names - name: user_types in: query required: false schema: anyOf: - type: array items: $ref: '#/components/schemas/DatabricksUserType' - type: 'null' description: 'Filter by identity type(s). Repeat to combine: ''USER'', ''SERVICE_PRINCIPAL''' title: User Types description: 'Filter by identity type(s). Repeat to combine: ''USER'', ''SERVICE_PRINCIPAL''' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/app__schemas__databricks__user__UsersResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/users/top/queries: get: tags: - DATABRICKS summary: Get top users by query count description: Get top users by query count. operationId: get_top_users_by_queries_api_v1_databricks_users_top_queries_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: days in: query required: false schema: type: integer description: Number of days for statistics default: 30 title: Days description: Number of days for statistics - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: limit in: query required: false schema: type: integer description: Maximum number of users default: 10 title: Limit description: Maximum number of users - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TopUsersByQueriesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/users/top/data-read: get: tags: - DATABRICKS summary: Get top users by data read description: Get top users by data read. operationId: get_top_users_by_data_read_api_v1_databricks_users_top_data_read_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: days in: query required: false schema: type: integer description: Number of days for statistics default: 30 title: Days description: Number of days for statistics - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by workspace ID title: Workspace Id description: Filter by workspace ID - name: limit in: query required: false schema: type: integer description: Maximum number of users default: 10 title: Limit description: Maximum number of users - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TopUsersByDataReadResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/users/service-principal-config: get: tags: - DATABRICKS summary: Get service-principal classification config description: 'Return the tenant''s prefix/regex patterns used to classify service principals. The built-in application-id UUID rule is always applied in addition to these. Returns empty lists when no config has been saved.' operationId: get_service_principal_config_api_v1_databricks_users_service_principal_config_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DatabricksServicePrincipalConfig' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - DATABRICKS summary: Upsert service-principal classification config description: 'Save the prefix/regex patterns used to classify Databricks service principals. Replaces any existing config. Invalid regexes are rejected at validation time.' operationId: upsert_service_principal_config_api_v1_databricks_users_service_principal_config_put deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: x-tenant in: header required: true schema: type: string title: X-Tenant requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DatabricksServicePrincipalConfig' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DatabricksServicePrincipalConfig' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/users/{user_name}: get: tags: - DATABRICKS summary: Get user details description: Get detailed information for a specific user. operationId: get_user_detail_api_v1_databricks_users__user_name__get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: user_name in: path required: true schema: type: string title: User Name - name: days in: query required: false schema: type: integer description: Number of days for statistics default: 30 title: Days description: Number of days for statistics - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserDetailResponse' '403': description: Not authorized '404': description: User not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/users/{user_name}/trends: get: tags: - DATABRICKS summary: Get user query trends description: Get query trends for a specific user. operationId: get_user_trends_api_v1_databricks_users__user_name__trends_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: user_name in: path required: true schema: type: string title: User Name - name: start_date in: query required: true schema: type: string format: date description: Start date title: Start Date description: Start date - name: end_date in: query required: false schema: type: string format: date description: End date title: End Date description: End date - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserTrendsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/users/{user_name}/statement-breakdown: get: tags: - DATABRICKS summary: Get user statement breakdown description: Get statement type breakdown for a specific user. operationId: get_user_statement_breakdown_api_v1_databricks_users__user_name__statement_breakdown_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: user_name in: path required: true schema: type: string title: User Name - name: days in: query required: false schema: type: integer description: Number of days for statistics default: 30 title: Days description: Number of days for statistics - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserStatementBreakdownResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/ai-ml-services/summary: get: tags: - DATABRICKS summary: Get AI/ML services summary with trend data description: 'Get AI/ML services summary with trend data. Returns trend data for: - Model Serving (DBUs and costs) - Vector Search (DBUs and costs) - AI Gateway (DBUs and costs) Data is aggregated by the specified granularity (day, week, or month). Frontend calculates totals by summing the trend data. Query Parameters: - start_date: Start date (YYYY-MM-DD), defaults to 30 days ago - end_date: End date (YYYY-MM-DD), defaults to today - granularity: Time granularity (''day'', ''week'', ''month''), defaults to ''day'' - workspace_id: Comma-separated workspace IDs or ''all'' (default) Returns: - Array of data points with DBUs and costs per service, aggregated by granularity' operationId: get_aiml_services_summary_api_v1_databricks_ai_ml_services_summary_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (YYYY-MM-DD), defaults to 30 days ago title: Start Date description: Start date (YYYY-MM-DD), defaults to 30 days ago - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (YYYY-MM-DD), defaults to today title: End Date description: End date (YYYY-MM-DD), defaults to today - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', or ''month''' default: day title: Granularity description: 'Time granularity: ''day'', ''week'', or ''month''' - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated workspace IDs to filter, or 'all' title: Workspace Id description: Comma-separated workspace IDs to filter, or 'all' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/AIMLServicesTrendPoint' title: Response Get Aiml Services Summary Api V1 Databricks Ai Ml Services Summary Get '403': description: Not authorized '404': description: Resource not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/ai-ml-services/endpoints: get: tags: - DATABRICKS summary: Get unified list of AI/ML endpoints (Model Serving + Vector Search + AI Gateway) description: "Get a unified list of AI/ML endpoints for the dashboard table.\n\nEach row carries:\n\n- ``service`` — routing discriminator ('model_serving' | 'vector_search' |\n 'ai_gateway'). Used by the FE to pick the detail page on row-click; **not**\n a filter input. The legacy ``service`` query param was intentionally\n dropped (commit ad00d32) — it is no longer read here, so a stray\n ``?service=...`` is ignored rather than filtering. Use ``entity_type``\n to narrow rows.\n- ``entity_type`` — leaf type rendered in the Type column / filtered on\n via the ``entity_type`` query param.\n\nFields that don't apply to a row's service are null. Pagination is applied\nover the merged result set so the top spenders surface first.\n\nQuery Parameters:\n\n- entity_type: comma-separated leaf entity_type values (optional)\n- endpoint_name: exact endpoint name(s), repeatable, any-of match (optional)\n- start_date: Start date (YYYY-MM-DD), defaults to 30 days ago\n- end_date: End date (YYYY-MM-DD), defaults to today\n- workspace_id: Comma-separated workspace IDs or 'all' (default)\n- limit: Max rows to return (default: 50, max: 1000)\n- offset: Pagination offset (default: 0)\n- sort_by: see above\n- sort_order: 'asc' | 'desc' (default: 'desc')" operationId: get_model_serving_endpoints_api_v1_databricks_ai_ml_services_endpoints_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: entity_type in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated leaf entity_types to filter the rows. One of FOUNDATION_MODEL, CUSTOM_MODEL, AI_FUNCTION, EXTERNAL_MODEL, FEATURE_SPEC, VECTOR_SEARCH, AI_GATEWAY. Omit to return all rows. title: Entity Type description: Comma-separated leaf entity_types to filter the rows. One of FOUNDATION_MODEL, CUSTOM_MODEL, AI_FUNCTION, EXTERNAL_MODEL, FEATURE_SPEC, VECTOR_SEARCH, AI_GATEWAY. Omit to return all rows. - name: endpoint_name in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Exact endpoint name(s) to filter the rows (any-of match). Repeat the param for multiple names. Names are sourced from GET /ai-ml-services/endpoints/filters/names. Omit to return all rows. title: Endpoint Name description: Exact endpoint name(s) to filter the rows (any-of match). Repeat the param for multiple names. Names are sourced from GET /ai-ml-services/endpoints/filters/names. Omit to return all rows. - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (YYYY-MM-DD), defaults to 30 days ago title: Start Date description: Start date (YYYY-MM-DD), defaults to 30 days ago - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (YYYY-MM-DD), defaults to today title: End Date description: End date (YYYY-MM-DD), defaults to today - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated workspace IDs to filter title: Workspace Id description: Comma-separated workspace IDs to filter - name: limit in: query required: false schema: type: integer maximum: 1000 minimum: 1 description: Max rows to return default: 50 title: Limit description: Max rows to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Pagination offset default: 0 title: Offset description: Pagination offset - name: sort_by in: query required: false schema: type: string description: 'Sort field: ''endpoint_name'' | ''total_cost_usd'' | ''total_dbus'' | ''service'' | ''entity_type''' default: total_cost_usd title: Sort By description: 'Sort field: ''endpoint_name'' | ''total_cost_usd'' | ''total_dbus'' | ''service'' | ''entity_type''' - name: sort_order in: query required: false schema: type: string description: 'Sort order: ''asc'' or ''desc''' default: desc title: Sort Order description: 'Sort order: ''asc'' or ''desc''' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UnifiedAIMLEndpointsListResponse' '403': description: Not authorized '404': description: Resource not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/ai-ml-services/endpoints/filters: get: tags: - DATABRICKS summary: Get filter values for the unified AI/ML endpoints list description: "Return discrete values for the filters the list endpoint accepts.\n\nFilterable fields on ``GET /ai-ml-services/endpoints`` are:\n- ``entity_type`` — comma-separated leaf entity_type values (the seven\n types in ``_UNIFIED_VALID_ENTITY_TYPES``). The returned ``entity_types``\n lists only the leaves that actually appear on rows in the window.\n- ``workspace_id`` — distinct workspace IDs with AI/ML traffic in the\n window.\n- ``start_date`` / ``end_date`` — free-form date range, not enumerable; the\n caller passes the same window in here so both lists are scoped to it.\n- ``endpoint_name`` — exact name filter on the list endpoint. Its values are\n too numerous to enumerate up front, so they are served separately by the\n searchable, paginated ``GET /ai-ml-services/endpoints/filters/names`` rather than\n inlined here.\n\nNote: ``service`` is a row-level routing discriminator, not a filter\ninput, so it is intentionally absent from this response." operationId: get_aiml_endpoint_filters_api_v1_databricks_ai_ml_services_endpoints_filters_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (YYYY-MM-DD), defaults to 30 days ago title: Start Date description: Start date (YYYY-MM-DD), defaults to 30 days ago - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (YYYY-MM-DD), defaults to today title: End Date description: End date (YYYY-MM-DD), defaults to today - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AIMLEndpointsFilterOptions' '403': description: Not authorized '404': description: Resource not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/ai-ml-services/endpoints/filters/names: get: tags: - DATABRICKS summary: Get searchable, paginated endpoint names for the name filter description: 'Return distinct endpoint names for the name-filter dropdown. The full name set is too large to ship at once, so the FE searches server-side and pages through matches. Names are scoped to the same window (and optional workspace) as the list, so the dropdown never offers a name that can''t appear on the table.' operationId: get_aiml_endpoint_names_api_v1_databricks_ai_ml_services_endpoints_filters_names_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: search in: query required: false schema: anyOf: - type: string - type: 'null' description: Case-insensitive substring to match endpoint names title: Search description: Case-insensitive substring to match endpoint names - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (YYYY-MM-DD), defaults to 30 days ago title: Start Date description: Start date (YYYY-MM-DD), defaults to 30 days ago - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (YYYY-MM-DD), defaults to today title: End Date description: End date (YYYY-MM-DD), defaults to today - name: workspace_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Workspace ID to scope names to title: Workspace Id description: Workspace ID to scope names to - name: page in: query required: false schema: type: integer minimum: 1 description: Page number (1-indexed) default: 1 title: Page description: Page number (1-indexed) - name: size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Items per page default: 20 title: Size description: Items per page - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AIMLEndpointNamesResponse' '403': description: Not authorized '404': description: Resource not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/ai-ml-services/endpoints/{endpoint_name}: get: tags: - DATABRICKS summary: Get endpoint detail (Model Serving, Vector Search or AI Gateway) description: 'Get detailed metrics for a specific endpoint. Path Parameters: - endpoint_name: Endpoint name (required) Query Parameters: - service: ''model_serving'' | ''vector_search'' | ''ai_gateway'' (required) - start_date: Start date (YYYY-MM-DD), defaults to 30 days ago - end_date: End date (YYYY-MM-DD), defaults to today Returns detailed metrics shaped per service. AI Gateway detail mirrors Vector Search (cost / DBUs / activity window) plus first_seen and last_activity; no per-request or token counts.' operationId: get_endpoint_detail_api_v1_databricks_ai_ml_services_endpoints__endpoint_name__get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: endpoint_name in: path required: true schema: type: string title: Endpoint Name - name: service in: query required: true schema: type: string description: 'Service type: ''model_serving'' | ''vector_search'' | ''ai_gateway''' title: Service description: 'Service type: ''model_serving'' | ''vector_search'' | ''ai_gateway''' - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (YYYY-MM-DD), defaults to 30 days ago title: Start Date description: Start date (YYYY-MM-DD), defaults to 30 days ago - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (YYYY-MM-DD), defaults to today title: End Date description: End date (YYYY-MM-DD), defaults to today - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: {} '403': description: Not authorized '404': description: Endpoint not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/ai-ml-services/endpoints/{endpoint_name}/trend: get: tags: - DATABRICKS summary: Get endpoint trend (Model Serving, Vector Search or AI Gateway) description: "Get trend data for a specific endpoint.\n\nPath Parameters:\n- endpoint_name: Endpoint name (required)\n\nQuery Parameters:\n- service: 'model_serving' | 'vector_search' | 'ai_gateway' (required)\n- start_date: Start date (YYYY-MM-DD), defaults to 30 days ago\n- end_date: End date (YYYY-MM-DD), defaults to today\n- granularity: 'day', 'week', 'month', or 'auto' (default: auto)\n\nReturns:\n- Array of trend data points (direct array, no wrapper object). For\n Vector Search and AI Gateway this is ``{date, dbus, cost_usd}`` — one\n row per bucket where billing usage exists (no zero-fill)." operationId: get_endpoint_trend_api_v1_databricks_ai_ml_services_endpoints__endpoint_name__trend_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: endpoint_name in: path required: true schema: type: string title: Endpoint Name - name: service in: query required: true schema: type: string description: 'Service type: ''model_serving'' | ''vector_search'' | ''ai_gateway''' title: Service description: 'Service type: ''model_serving'' | ''vector_search'' | ''ai_gateway''' - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (YYYY-MM-DD), defaults to 30 days ago title: Start Date description: Start date (YYYY-MM-DD), defaults to 30 days ago - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (YYYY-MM-DD), defaults to today title: End Date description: End date (YYYY-MM-DD), defaults to today - name: granularity in: query required: false schema: type: string description: 'Time granularity: ''day'', ''week'', ''month'', or ''auto'' (auto-detect based on date range)' default: auto title: Granularity description: 'Time granularity: ''day'', ''week'', ''month'', or ''auto'' (auto-detect based on date range)' - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: {} '403': description: Not authorized '404': description: Resource not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/ai-ml-services/endpoints/{endpoint_name}/callers: get: tags: - DATABRICKS summary: Get jobs/queries calling a model serving endpoint description: 'Get list of jobs/queries that are calling a model serving endpoint. This endpoint identifies the source of model serving endpoint calls by analyzing: - Query history for AI function calls (ai_classify, ai_summarize, etc.) - Job information from query_source metadata - Notebook IDs for notebook-based calls Path Parameters: - endpoint_name: Endpoint name (required) Query Parameters: - start_date: Start date (YYYY-MM-DD), defaults to 30 days ago - end_date: End date (YYYY-MM-DD), defaults to today - limit: Max rows to return (default: 50, max: 1000) - offset: Pagination offset (default: 0) Returns: - callers: List of jobs/queries with call frequency metrics - pagination: Pagination info (total, limit, offset)' operationId: get_endpoint_callers_api_v1_databricks_ai_ml_services_endpoints__endpoint_name__callers_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: endpoint_name in: path required: true schema: type: string title: Endpoint Name - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (YYYY-MM-DD), defaults to 30 days ago title: Start Date description: Start date (YYYY-MM-DD), defaults to 30 days ago - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (YYYY-MM-DD), defaults to today title: End Date description: End date (YYYY-MM-DD), defaults to today - name: limit in: query required: false schema: type: integer maximum: 1000 minimum: 1 description: Max rows to return default: 50 title: Limit description: Max rows to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Pagination offset default: 0 title: Offset description: Pagination offset - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/EndpointCallersListResponse' '403': description: Not authorized '404': description: Resource not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/ai-ml-services/endpoints/{endpoint_name}/usage-breakdown: get: tags: - DATABRICKS summary: Get AI function usage breakdown by source description: 'Get usage breakdown for an AI function endpoint. Shows how the AI function is being invoked: via MV refresh, notebooks, jobs, SQL queries, DDL, or ad-hoc queries. Path Parameters: - endpoint_name: AI function endpoint name (e.g., databricks-ai-summarize) Query Parameters: - start_date: Start date (YYYY-MM-DD), defaults to 30 days ago - end_date: End date (YYYY-MM-DD), defaults to today Returns: - usage: List of usage sources with type, identity, request count, and last used' operationId: get_ai_function_usage_breakdown_api_v1_databricks_ai_ml_services_endpoints__endpoint_name__usage_breakdown_get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: endpoint_name in: path required: true schema: type: string title: Endpoint Name - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date (YYYY-MM-DD), defaults to 30 days ago title: Start Date description: Start date (YYYY-MM-DD), defaults to 30 days ago - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date (YYYY-MM-DD), defaults to today title: End Date description: End date (YYYY-MM-DD), defaults to today - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AIFunctionUsageBreakdownResponse' '403': description: Not authorized '404': description: Resource not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/spark: get: tags: - DATABRICKS summary: Get all Spark applications description: Get list of all Spark applications with flag counts. operationId: get_spark_applications_api_v1_databricks_spark_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SparkApplicationsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/spark/{application_id}: get: tags: - DATABRICKS summary: Get Spark application details description: Get detailed information for a specific Spark application. operationId: get_spark_application_api_v1_databricks_spark__application_id__get security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: application_id in: path required: true schema: type: string title: Application Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SparkApplicationSummary' '403': description: Not authorized '404': description: Application not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/spark/{application_id}/stages: get: tags: - DATABRICKS summary: Get Spark application stages description: Get stages for a Spark application with aggregated task metrics. operationId: get_spark_stages_api_v1_databricks_spark__application_id__stages_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: application_id in: path required: true schema: type: string title: Application Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SparkStagesResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/spark/{application_id}/task-stats: get: tags: - DATABRICKS summary: Get per-stage task statistics description: Get per-stage task statistics with percentiles. operationId: get_spark_task_stats_api_v1_databricks_spark__application_id__task_stats_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: application_id in: path required: true schema: type: string title: Application Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SparkTaskStatsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/spark/{application_id}/config: get: tags: - DATABRICKS summary: Get Spark application configuration description: Get Spark configuration key-values for an application. operationId: get_spark_config_api_v1_databricks_spark__application_id__config_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: application_id in: path required: true schema: type: string title: Application Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SparkConfigResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/spark/{application_id}/plan-analysis: get: tags: - DATABRICKS summary: Get Spark plan analysis flags description: Get plan analysis flags and summary for a Spark application. operationId: get_spark_plan_analysis_api_v1_databricks_spark__application_id__plan_analysis_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: application_id in: path required: true schema: type: string title: Application Id - name: navigationSource in: query required: false schema: anyOf: - type: string - type: 'null' title: Navigationsource - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SparkPlanAnalysisResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/connections/test: post: tags: - DATABRICKS summary: Test Databricks connection credentials operationId: test_connection_api_v1_databricks_connections_test_post deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: x-tenant in: header required: true schema: type: string title: X-Tenant requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/DatabricksConnectionTestRequestPAT' - $ref: '#/components/schemas/DatabricksConnectionTestRequestOAuthM2M' discriminator: propertyName: auth_type mapping: pat: '#/components/schemas/DatabricksConnectionTestRequestPAT' oauth_m2m: '#/components/schemas/DatabricksConnectionTestRequestOAuthM2M' title: Request responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DatabricksConnectionTestResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/connections: post: tags: - DATABRICKS summary: Create a new Databricks connection operationId: create_connection_api_v1_databricks_connections_post deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: x-tenant in: header required: true schema: type: string title: X-Tenant requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/DatabricksConnectionCreatePAT' - $ref: '#/components/schemas/DatabricksConnectionCreateOAuthM2M' discriminator: propertyName: auth_type mapping: pat: '#/components/schemas/DatabricksConnectionCreatePAT' oauth_m2m: '#/components/schemas/DatabricksConnectionCreateOAuthM2M' title: Request responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DatabricksConnectionResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' get: tags: - DATABRICKS summary: List all Databricks connections operationId: list_connections_api_v1_databricks_connections_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/DatabricksConnectionResponse' title: Response List Connections Api V1 Databricks Connections Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/connections/{connection_id}: get: tags: - DATABRICKS summary: Get a Databricks connection by ID operationId: get_connection_api_v1_databricks_connections__connection_id__get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: connection_id in: path required: true schema: type: integer title: Connection Id - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DatabricksConnectionResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - DATABRICKS summary: Delete a Databricks connection operationId: delete_connection_api_v1_databricks_connections__connection_id__delete deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: connection_id in: path required: true schema: type: integer title: Connection Id - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '204': description: Successful Response '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/connections/{connection_id}/validate: post: tags: - DATABRICKS summary: Re-validate an existing connection operationId: validate_connection_api_v1_databricks_connections__connection_id__validate_post deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: connection_id in: path required: true schema: type: integer title: Connection Id - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DatabricksConnectionTestResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/v1/databricks/access-rules/options: get: tags: - DATABRICKS summary: List Databricks accounts/workspaces grantable in access rules description: Return the catalog of accounts/workspaces for the access-rule picker. operationId: get_access_rule_options_api_v1_databricks_access_rules_options_get deprecated: true security: - HTTPBearer: [] - HTTPBearer: [] parameters: - name: x-tenant in: header required: true schema: type: string title: X-Tenant responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AccessRuleOptionsResponse' '403': description: Not authorized '404': description: No ClickHouse database configured '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: WarehouseRunningStatsPoint: properties: period: type: string title: Period active_seconds: type: integer title: Active Seconds default: 0 idle_seconds: type: integer title: Idle Seconds default: 0 type: object required: - period title: WarehouseRunningStatsPoint description: Single data point for warehouse running stats timeseries. QueryHealthSummary: properties: total_queries: type: integer title: Total Queries default: 0 failed_queries: type: integer title: Failed Queries default: 0 failure_rate: anyOf: - type: number - type: 'null' title: Failure Rate slow_queries: type: integer title: Slow Queries default: 0 spill_queries: type: integer title: Spill Queries default: 0 avg_duration_ms: type: number title: Avg Duration Ms default: 0 type: object title: QueryHealthSummary description: Summary of query health. CostDriver: properties: sku_name: type: string title: Sku Name total_dbus: type: number title: Total Dbus estimated_cost: type: number title: Estimated Cost pct_of_total: type: number title: Pct Of Total type: object required: - sku_name - total_dbus - estimated_cost - pct_of_total title: CostDriver description: A top cost driver. SparkOpportunitiesResponse: properties: opportunities: items: $ref: '#/components/schemas/SparkOpportunity' type: array title: Opportunities default: [] summary: $ref: '#/components/schemas/SparkOpportunitySummary' default: total: 0 by_severity: {} by_type: {} total_time_savings_min: 0.0 total_time_savings_max: 0.0 total_cost_savings_min: 0.0 total_cost_savings_max: 0.0 type: object title: SparkOpportunitiesResponse description: Response for spark opportunities endpoint. JobTaskRunsResponse: properties: job_id: type: string title: Job Id task_runs: items: $ref: '#/components/schemas/JobTaskRun' type: array title: Task Runs total_count: type: integer title: Total Count page: type: integer title: Page default: 1 page_size: type: integer title: Page Size default: 20 total_pages: type: integer title: Total Pages default: 1 type: object required: - job_id - task_runs - total_count title: JobTaskRunsResponse description: Response for job task runs. ComputeSummary: properties: total_clusters: type: integer title: Total Clusters default: 0 total_warehouses: type: integer title: Total Warehouses default: 0 type: object title: ComputeSummary description: Summary of compute resources. ToggleAutoTunePreflight: properties: blocked: type: boolean title: Blocked default: false reason: anyOf: - type: string - type: 'null' title: Reason actionable_message: anyOf: - type: string - type: 'null' title: Actionable Message type: object title: ToggleAutoTunePreflight description: 'Surfaced to the FE so it can render an actionable error inline. When ``blocked=False`` the toggle pipeline ran. When ``blocked=True`` no DB writes happened and ``actionable_message`` should be shown to the user verbatim (e.g. "ask your workspace admin to add r5.xlarge to the policy allowlist").' UnifiedQueryRecord: properties: statement_id: type: string title: Statement Id statement_text: anyOf: - type: string - type: 'null' title: Statement Text statement_type: anyOf: - type: string - type: 'null' title: Statement Type execution_status: anyOf: - type: string - type: 'null' title: Execution Status start_time: anyOf: - type: string format: date-time - type: 'null' title: Start Time end_time: anyOf: - type: string format: date-time - type: 'null' title: End Time total_duration_ms: anyOf: - type: integer - type: 'null' title: Total Duration Ms read_bytes: anyOf: - type: integer - type: 'null' title: Read Bytes spilled_local_bytes: anyOf: - type: integer - type: 'null' title: Spilled Local Bytes workspace_id: anyOf: - type: string - type: 'null' title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name warehouse_id: anyOf: - type: string - type: 'null' title: Warehouse Id cluster_id: anyOf: - type: string - type: 'null' title: Cluster Id cluster_name: anyOf: - type: string - type: 'null' title: Cluster Name warehouse_name: anyOf: - type: string - type: 'null' title: Warehouse Name warehouse_size: anyOf: - type: string - type: 'null' title: Warehouse Size pipeline_id: anyOf: - type: string - type: 'null' title: Pipeline Id pipeline_name: anyOf: - type: string - type: 'null' title: Pipeline Name job_id: anyOf: - type: string - type: 'null' title: Job Id compute_display: anyOf: - type: string - type: 'null' title: Compute Display description: 'Resolved compute label for the UI''s Compute column. Priority: warehouse_name -> warehouse_id -> cluster_name -> cluster_id -> ''DLT Pipeline: '' -> ''Job: '' -> ''-''. Composed in SQL.' dbus: anyOf: - type: number - type: 'null' title: Dbus description: DBUs consumed by this query estimated_cost_usd: anyOf: - type: number - type: 'null' title: Estimated Cost Usd description: Estimated cost in USD from dbx_query_cost table user_name: anyOf: - type: string - type: 'null' title: User Name error_message: anyOf: - type: string - type: 'null' title: Error Message insights: items: type: string type: array title: Insights description: List of insight tags (slow_query, disk_spill, full_table_scan, failed) type: object required: - statement_id title: UnifiedQueryRecord description: A query record with computed insight tags. ClusterStateChange: properties: cluster_id: type: string title: Cluster Id cluster_name: type: string title: Cluster Name state: type: string title: State change_time: type: string format: date-time title: Change Time worker_count: anyOf: - type: integer - type: 'null' title: Worker Count type: object required: - cluster_id - cluster_name - state - change_time title: ClusterStateChange description: A single state change record. ClusterUtilizationPoint: properties: period: type: string title: Period avg_cpu: type: number title: Avg Cpu default: 0 avg_memory: type: number title: Avg Memory default: 0 sample_count: type: integer title: Sample Count default: 0 type: object required: - period title: ClusterUtilizationPoint description: Single point in utilization timeseries. SparkApplicationsResponse: properties: applications: items: $ref: '#/components/schemas/SparkApplicationSummary' type: array title: Applications total_count: type: integer title: Total Count description: Total number of applications type: object required: - applications - total_count title: SparkApplicationsResponse description: Response for listing Spark applications. CostEstimateTrendsResponse: properties: graph: items: $ref: '#/components/schemas/CostEstimateGraphItem' type: array title: Graph description: Graph data with actual and projected costs products: items: type: string type: array title: Products description: Canonical segment legend for the requested ``category``, in display order — includes segments with no data so the legend stays stable across date ranges. currency: type: string title: Currency description: Currency code default: USD category: anyOf: - $ref: '#/components/schemas/CategoryName' - type: 'null' description: Category the estimate was computed for type: object required: - graph title: CostEstimateTrendsResponse description: Response model for cost estimate/projection endpoint. PaginatedJobCreatorsResponse: properties: items: items: $ref: '#/components/schemas/JobCreatorOption' type: array title: Items page: type: integer title: Page description: Current page number (1-indexed) default: 1 size: type: integer title: Size description: Items per page default: 20 total: type: integer title: Total description: Total number of matching creators default: 0 type: object title: PaginatedJobCreatorsResponse description: Paginated list of distinct job creators with display names. RecentFailuresResponse: properties: failures: items: $ref: '#/components/schemas/RecentFailure' type: array title: Failures hours: type: integer title: Hours total_count: type: integer title: Total Count type: object required: - failures - hours - total_count title: RecentFailuresResponse description: Response for recent failures. ComputeTypeBreakdown: properties: compute_type: type: string title: Compute Type description: 'Compute type: jobs, all_purpose, sql, other' total_dbus: type: number title: Total Dbus description: Total DBUs for this compute type estimated_cost: type: number title: Estimated Cost description: Estimated cost for this compute type pct_of_total: type: number title: Pct Of Total description: Percentage of total cost type: object required: - compute_type - total_dbus - estimated_cost - pct_of_total title: ComputeTypeBreakdown description: Breakdown by compute type (jobs, all_purpose, sql, other). SparkOpportunityCodeLink: properties: source_path: type: string title: Source Path default: '' cell_number: type: integer title: Cell Number default: 0 confidence: type: number title: Confidence default: 0.0 original_code: type: string title: Original Code default: '' type: object title: SparkOpportunityCodeLink description: Source code linked to an opportunity. UtilizationInsights: properties: total_clusters_with_data: type: integer title: Total Clusters With Data default: 0 overall_avg_cpu: anyOf: - type: number - type: 'null' title: Overall Avg Cpu overall_avg_memory: anyOf: - type: number - type: 'null' title: Overall Avg Memory underutilized_count: type: integer title: Underutilized Count default: 0 type: object title: UtilizationInsights description: Utilization insights. UserDetail: properties: user_name: type: string title: User Name total_queries: type: integer title: Total Queries default: 0 successful_queries: type: integer title: Successful Queries default: 0 failed_queries: type: integer title: Failed Queries default: 0 avg_duration_ms: type: number title: Avg Duration Ms default: 0 max_duration_ms: anyOf: - type: integer - type: 'null' title: Max Duration Ms min_duration_ms: anyOf: - type: integer - type: 'null' title: Min Duration Ms total_read_bytes: type: integer title: Total Read Bytes default: 0 total_spilled_bytes: type: integer title: Total Spilled Bytes default: 0 last_query_time: anyOf: - type: string format: date-time - type: 'null' title: Last Query Time first_query_time: anyOf: - type: string format: date-time - type: 'null' title: First Query Time unique_statement_types: type: integer title: Unique Statement Types default: 0 workspaces_used: type: integer title: Workspaces Used default: 0 type: object required: - user_name title: UserDetail description: Detailed user information. AccountOption: properties: account_id: type: string title: Account Id workspace_count: type: integer title: Workspace Count type: object required: - account_id - workspace_count title: AccountOption description: A grantable Databricks account (grants cover all its workspaces). ComputeFilterOption: properties: kind: type: string title: Kind description: 'Which compute inventory the id belongs to. One of: ``warehouse``, ``cluster``, ``pipeline``.' id: type: string title: Id description: Raw compute id (warehouse_id / cluster_id / pipeline_id). display: type: string title: Display description: 'Human-readable label matching the Queries list''s ``Compute`` column rendering (e.g. ``Analytics Warehouse``, ``DLT Pipeline: events-dlt``). FE uses this verbatim as the dropdown option label.' type: object required: - kind - id - display title: ComputeFilterOption description: 'One entry in the unified Compute filter dropdown. Covers warehouse, all-purpose / job cluster, and serverless DLT pipeline — every query row in the Queries list carries at least one of these three. ``job`` is intentionally excluded: job-only rows are high-cardinality and largely repetitive, so listing them bloats the dropdown without adding signal. They still render in the table''s ``Compute`` column via the same ``compute_display`` cascade. ``kind`` namespaces ``id`` to avoid cross-type collisions; ``display`` matches the column rendering verbatim so the dropdown and the table cell read identically.' JobCostTrendsResponse: properties: trends: items: $ref: '#/components/schemas/JobCostTrendItem' type: array title: Trends job_names: items: type: string type: array title: Job Names granularity: type: string title: Granularity total_cost: type: number title: Total Cost default: 0 type: object required: - trends - job_names - granularity title: JobCostTrendsResponse description: Response for job cost trends by job. DatabricksConnectionCreateOAuthM2M: properties: type: type: string title: Type default: databricks server_hostname: type: string maxLength: 256 minLength: 1 pattern: ^(https?://)?[a-zA-Z0-9][a-zA-Z0-9\-]*(\.[a-zA-Z0-9\-]+)*\.(cloud\.databricks\.com|azuredatabricks\.net|gcp\.databricks\.com)/?$ title: Server Hostname description: Databricks workspace hostname. Must end in cloud.databricks.com, azuredatabricks.net, or gcp.databricks.com. http_path: type: string maxLength: 256 minLength: 1 pattern: ^/sql/[0-9.]+/warehouses/[A-Za-z0-9]+$ title: Http Path description: SQL warehouse HTTP path name: type: string maxLength: 64 minLength: 1 title: Name description: anyOf: - type: string maxLength: 512 - type: 'null' title: Description auth_type: type: string const: oauth_m2m title: Auth Type client_id: type: string minLength: 1 title: Client Id client_secret: type: string minLength: 1 title: Client Secret azure_tenant_id: anyOf: - type: string minLength: 1 - type: 'null' title: Azure Tenant Id type: object required: - server_hostname - http_path - name - auth_type - client_id - client_secret title: DatabricksConnectionCreateOAuthM2M CategoryBreakdownItem: properties: category: $ref: '#/components/schemas/CostCategory' description: Cost category total_dbus: type: number title: Total Dbus description: Total DBUs for this category estimated_cost: type: number title: Estimated Cost description: Estimated cost for this category pct_of_total: type: number title: Pct Of Total description: Percentage of total cost type: object required: - category - total_dbus - estimated_cost - pct_of_total title: CategoryBreakdownItem description: 'Legacy 5-bucket cost breakdown item (``Compute`` / ``SQL`` / ``AI/ML`` / ``Data Platform`` / ``Infrastructure``). Used by ``/cost/total`` and the Future-state estimate. Prefer ``CostCategoryItem`` for new endpoints.' ComputeMetrics: properties: times: items: type: string type: array title: Times default: [] driver: anyOf: - $ref: '#/components/schemas/ComputeNodeTimeSeries' - type: 'null' workers: items: $ref: '#/components/schemas/ComputeNodeTimeSeries' type: array title: Workers default: [] node_type: anyOf: - type: string - type: 'null' title: Node Type worker_count: type: integer title: Worker Count default: 0 type: object title: ComputeMetrics description: Aggregated compute node metrics for the cluster. EngineTypeBreakdown: properties: engine_type: type: string title: Engine Type description: 'Engine type: photon or standard' total_dbus: type: number title: Total Dbus description: Total DBUs for this engine type estimated_cost: type: number title: Estimated Cost description: Estimated cost for this engine type pct_of_total: type: number title: Pct Of Total description: Percentage of total cost type: object required: - engine_type - total_dbus - estimated_cost - pct_of_total title: EngineTypeBreakdown description: Breakdown by engine type (photon vs standard). WarehouseDetail: properties: warehouse_id: type: string title: Warehouse Id warehouse_name: type: string title: Warehouse Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name instance_id: anyOf: - type: integer - type: 'null' title: Instance Id warehouse_type: anyOf: - type: string - type: 'null' title: Warehouse Type warehouse_size: anyOf: - type: string - type: 'null' title: Warehouse Size min_num_clusters: anyOf: - type: integer - type: 'null' title: Min Num Clusters max_num_clusters: anyOf: - type: integer - type: 'null' title: Max Num Clusters auto_stop_mins: anyOf: - type: integer - type: 'null' title: Auto Stop Mins state: anyOf: - type: string - type: 'null' title: State num_clusters: anyOf: - type: integer - type: 'null' title: Num Clusters num_active_sessions: anyOf: - type: integer - type: 'null' title: Num Active Sessions last_state_change: anyOf: - type: string format: date-time - type: 'null' title: Last State Change creator_name: anyOf: - type: string - type: 'null' title: Creator Name spot_instance_policy: anyOf: - type: string - type: 'null' title: Spot Instance Policy enable_photon: anyOf: - type: boolean - type: 'null' title: Enable Photon enable_serverless_compute: anyOf: - type: boolean - type: 'null' title: Enable Serverless Compute is_auto_tune_enabled: anyOf: - type: string - type: 'null' title: Is Auto Tune Enabled type: object required: - warehouse_id - warehouse_name - workspace_id title: WarehouseDetail description: Detailed information for a warehouse. SparkOpportunitySummary: properties: total: type: integer title: Total default: 0 by_severity: additionalProperties: type: integer type: object title: By Severity default: {} by_type: additionalProperties: type: integer type: object title: By Type default: {} total_time_savings_min: type: number title: Total Time Savings Min default: 0.0 total_time_savings_max: type: number title: Total Time Savings Max default: 0.0 total_cost_savings_min: type: number title: Total Cost Savings Min default: 0.0 total_cost_savings_max: type: number title: Total Cost Savings Max default: 0.0 type: object title: SparkOpportunitySummary description: Aggregate summary of opportunities. AutoTuneHistoryEvent: properties: event_id: type: integer title: Event Id event_type: type: string title: Event Type mode: anyOf: - type: string - type: 'null' title: Mode change_timestamp: type: string format: date-time title: Change Timestamp task_key: anyOf: - type: string - type: 'null' title: Task Key recommendation_from: anyOf: - type: string - type: 'null' title: Recommendation From recommendation_to: anyOf: - type: string - type: 'null' title: Recommendation To recommendation_from_workers: anyOf: - type: string - type: 'null' title: Recommendation From Workers recommendation_to_workers: anyOf: - type: string - type: 'null' title: Recommendation To Workers recommendation_from_worker_instance: anyOf: - type: string - type: 'null' title: Recommendation From Worker Instance recommendation_to_worker_instance: anyOf: - type: string - type: 'null' title: Recommendation To Worker Instance recommendation_from_driver_instance: anyOf: - type: string - type: 'null' title: Recommendation From Driver Instance recommendation_to_driver_instance: anyOf: - type: string - type: 'null' title: Recommendation To Driver Instance changed_by: anyOf: - type: integer - type: 'null' title: Changed By changed_by_name: anyOf: - type: string - type: 'null' title: Changed By Name actionable_message: anyOf: - type: string - type: 'null' title: Actionable Message reason: anyOf: - type: string - type: 'null' title: Reason event_message: type: string title: Event Message default: '' type: object required: - event_id - event_type - change_timestamp title: AutoTuneHistoryEvent description: 'One row in the Auto Tune history panel. Mirrors the shape the FE renders directly. ``event_message`` is pre-composed in the API layer via ``app.service.databricks.auto_tune.history.compose_event_message`` so the schema stays a dumb data carrier and the templating logic lives in the service layer. ``changed_by_name`` is resolved by the API layer (manual lookup in ``altimate_users``) since the audit ORM model does not currently carry a relationship to the user model — see PR #5070 for the future relationship-based approach.' TopUsersByQueriesResponse: properties: users: items: $ref: '#/components/schemas/app__schemas__databricks__user__TopUser' type: array title: Users type: object required: - users title: TopUsersByQueriesResponse description: Response for top users by queries. app__schemas__databricks__savings__AssistedSavingsResponse: properties: total_assisted_savings: type: number title: Total Assisted Savings description: Total money saved from implemented opportunities default: 0 time_saved: type: string title: Time Saved description: Human-readable time savings default: 0 days opportunities: type: integer title: Opportunities description: Count of opportunities contributing to savings default: 0 currency: type: string title: Currency description: Currency code default: USD type: object title: AssistedSavingsResponse description: Response model for assisted savings endpoint. QueryUserNamesResponse: properties: user_names: items: type: string type: array title: User Names total_pages: type: integer title: Total Pages default: 1 type: object title: QueryUserNamesResponse description: 'Paginated distinct query-history user names. Dedicated single-list response (separate from the aggregate ``/queries/filters``) so the typed ``prefix`` only ever scans the user list, never the other filter lists.' WorkspaceSummary: properties: workspace_id: type: string title: Workspace Id description: Databricks workspace ID workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name description: Workspace display name status: anyOf: - type: string - type: 'null' title: Status description: Workspace status type: object required: - workspace_id title: WorkspaceSummary description: Summary information for a workspace. WarehouseRealizedSavings: properties: total: type: number title: Total default: 0.0 min: type: number title: Min default: 0.0 max: type: number title: Max default: 0.0 type: object title: WarehouseRealizedSavings description: 'Realised (``actual``) auto-tune savings for a SQL warehouse over a date range: a total plus the min/max range across the underlying per-period estimates.' WarehouseUtilizationEfficiencyResponse: properties: warehouse_id: type: string title: Warehouse Id trends: items: $ref: '#/components/schemas/UtilizationEfficiencyPoint' type: array title: Trends description: Daily utilization efficiency data points average_utilization: type: number title: Average Utilization description: Average utilization efficiency over the period default: 0 type: object required: - warehouse_id - trends title: WarehouseUtilizationEfficiencyResponse description: Response for warehouse utilization efficiency over time. QueryWorkspacesResponse: properties: workspaces: items: $ref: '#/components/schemas/app__schemas__databricks__filters__FilterOption' type: array title: Workspaces total_pages: type: integer title: Total Pages default: 1 type: object title: QueryWorkspacesResponse description: 'Paginated distinct query-history workspaces (id + name). Dedicated single-list response (separate from the aggregate ``/queries/filters``) so the typed ``prefix`` only ever scans the workspace list. A tenant can have thousands of workspaces, so this is searchable rather than a capped list.' DatabricksResourceType: type: string enum: - cluster - warehouse - job - query - user title: DatabricksResourceType description: Resource types for Databricks AI Studio initial questions. JobRunsResponse: properties: job_id: type: string title: Job Id runs: items: $ref: '#/components/schemas/JobRun' type: array title: Runs total_count: type: integer title: Total Count page: type: integer title: Page default: 1 page_size: type: integer title: Page Size default: 20 total_pages: type: integer title: Total Pages default: 1 type: object required: - job_id - runs - total_count title: JobRunsResponse description: Response for job runs. AutoTuneSavingsTrendPoint: properties: period: type: string title: Period dbu_savings: type: number title: Dbu Savings default: 0.0 infra_savings: type: number title: Infra Savings default: 0.0 type: object required: - period title: AutoTuneSavingsTrendPoint description: One day's auto-tune savings, split into DBU and infra components. CostEstimateGraphItem: properties: date: type: string title: Date description: Period date (ISO format) total: type: number title: Total description: Actual total cost for the period default: 0 total_estimate: type: number title: Total Estimate description: Projected total cost for the period default: 0 is_estimate: type: boolean title: Is Estimate description: Whether this is a projected period default: false percentage_total: anyOf: - type: number - type: 'null' title: Percentage Total description: Percentage change in total from previous period segments: items: $ref: '#/components/schemas/EstimateSegmentItem' type: array title: Segments description: Per-segment actual + projected costs for the requested ``category``, in canonical legend order. The segment set matches the ``products`` array on the response. type: object required: - date title: CostEstimateGraphItem description: Single data point in the cost estimate graph with actual + projected values. WarehouseStateChange: properties: warehouse_id: type: string title: Warehouse Id warehouse_name: type: string title: Warehouse Name state: type: string title: State change_time: type: string format: date-time title: Change Time num_clusters: anyOf: - type: integer - type: 'null' title: Num Clusters type: object required: - warehouse_id - warehouse_name - state - change_time title: WarehouseStateChange description: A single state change record. SparkStagesResponse: properties: stages: items: $ref: '#/components/schemas/SparkStage' type: array title: Stages total_count: type: integer title: Total Count description: Total number of stages type: object required: - stages - total_count title: SparkStagesResponse description: Response for listing Spark stages. JobHealthSummary: properties: total_jobs: type: integer title: Total Jobs default: 0 total_runs: type: integer title: Total Runs default: 0 total_failures: type: integer title: Total Failures default: 0 overall_failure_rate: anyOf: - type: number - type: 'null' title: Overall Failure Rate jobs_with_failures: type: integer title: Jobs With Failures default: 0 type: object title: JobHealthSummary description: Summary of job health. ServerlessCandidateOpportunity: properties: warehouse_id: type: string title: Warehouse Id warehouse_name: type: string title: Warehouse Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name warehouse_type: anyOf: - type: string - type: 'null' title: Warehouse Type warehouse_size: anyOf: - type: string - type: 'null' title: Warehouse Size auto_stop_mins: anyOf: - type: integer - type: 'null' title: Auto Stop Mins min_num_clusters: anyOf: - type: integer - type: 'null' title: Min Num Clusters max_num_clusters: anyOf: - type: integer - type: 'null' title: Max Num Clusters type: object required: - warehouse_id - warehouse_name - workspace_id title: ServerlessCandidateOpportunity description: A serverless migration candidate. app__schemas__databricks__warehouse__WarehouseCostResponse: properties: warehouse_id: type: string title: Warehouse Id total_dbus: type: number title: Total Dbus default: 0 estimated_cost: type: number title: Estimated Cost default: 0 daily_average_dbus: type: number title: Daily Average Dbus default: 0 daily_average_cost: type: number title: Daily Average Cost default: 0 timeseries: items: $ref: '#/components/schemas/WarehouseCostPoint' type: array title: Timeseries default: [] type: object required: - warehouse_id title: WarehouseCostResponse description: Response for warehouse cost data. JobSummary: properties: job_id: type: string title: Job Id job_name: type: string title: Job Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name instance_id: anyOf: - type: integer - type: 'null' title: Instance Id creator_id: anyOf: - type: string - type: 'null' title: Creator Id creator_user_name: anyOf: - type: string - type: 'null' title: Creator User Name total_runs: type: integer title: Total Runs default: 0 successful_runs: type: integer title: Successful Runs default: 0 failed_runs: type: integer title: Failed Runs default: 0 success_rate: type: number title: Success Rate default: 0 avg_duration_seconds: type: number title: Avg Duration Seconds default: 0 last_run_time: anyOf: - type: string format: date-time - type: 'null' title: Last Run Time total_dbus: type: number title: Total Dbus default: 0 estimated_cost_usd: type: number title: Estimated Cost Usd default: 0 total_cloud_cost: anyOf: - type: number - type: 'null' title: Total Cloud Cost annualized_total_cost: type: number title: Annualized Total Cost default: 0 auto_tune_enabled: type: boolean title: Auto Tune Enabled default: false realized_savings: type: number title: Realized Savings default: 0.0 estimated_annualized_savings: type: number title: Estimated Annualized Savings default: 0.0 type: object required: - job_id - job_name - workspace_id title: JobSummary description: Summary information for a job. ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError JobTasksInventoryResponse: properties: job_id: type: string title: Job Id tasks: items: $ref: '#/components/schemas/JobTaskInventoryItem' type: array title: Tasks total_count: type: integer title: Total Count type: object required: - job_id - tasks - total_count title: JobTasksInventoryResponse description: 'Full static task list of a Databricks job — every task in the workflow, including ones that have not run yet. Sourced from ``dbx_job_tasks_inventory`` (Type-2 SCD; latest row per task).' ClusterStateHistoryResponse: properties: cluster_id: type: string title: Cluster Id history: items: $ref: '#/components/schemas/ClusterStateChange' type: array title: History type: object required: - cluster_id - history title: ClusterStateHistoryResponse description: Response for cluster state history. WorkspaceActivity: properties: workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name job_runs: type: integer title: Job Runs default: 0 query_count: type: integer title: Query Count default: 0 type: object required: - workspace_id title: WorkspaceActivity description: Activity summary for a workspace. SparkSummaryStats: properties: total_jobs: type: integer title: Total Jobs default: 0 total_stages: type: integer title: Total Stages default: 0 total_tasks: type: integer title: Total Tasks default: 0 unique_sqls: type: integer title: Unique Sqls default: 0 failed_jobs: type: integer title: Failed Jobs default: 0 total_duration_ms: type: integer title: Total Duration Ms default: 0 total_cost_cents: type: number title: Total Cost Cents default: 0.0 type: object title: SparkSummaryStats description: Aggregate summary statistics. QuerySummaryResponse: properties: summary: $ref: '#/components/schemas/QuerySummary' type: object required: - summary title: QuerySummaryResponse description: Response for query summary. DbxAutoRecommendationItem: properties: entity_id: anyOf: - type: string - type: 'null' title: Entity Id entity_name: anyOf: - type: string - type: 'null' title: Entity Name entity_type: anyOf: - type: string - type: 'null' title: Entity Type task_key: anyOf: - type: string - type: 'null' title: Task Key owned_by: anyOf: - type: string - type: 'null' title: Owned By current_worker_node_type: anyOf: - type: string - type: 'null' title: Current Worker Node Type current_driver_node_type: anyOf: - type: string - type: 'null' title: Current Driver Node Type current_min_workers: anyOf: - type: integer - type: 'null' title: Current Min Workers current_max_workers: anyOf: - type: integer - type: 'null' title: Current Max Workers current_cost_per_hr: anyOf: - type: number - type: 'null' title: Current Cost Per Hr recommended_worker_instance: anyOf: - type: string - type: 'null' title: Recommended Worker Instance recommended_driver_instance: anyOf: - type: string - type: 'null' title: Recommended Driver Instance recommended_min_workers: anyOf: - type: integer - type: 'null' title: Recommended Min Workers recommended_max_workers: anyOf: - type: integer - type: 'null' title: Recommended Max Workers recommended_cost_per_hr: anyOf: - type: number - type: 'null' title: Recommended Cost Per Hr estimated_savings_pct: anyOf: - type: number - type: 'null' title: Estimated Savings Pct efficiency_score: anyOf: - type: number - type: 'null' title: Efficiency Score reasoning: anyOf: - type: string - type: 'null' title: Reasoning model_confidence: anyOf: - type: number - type: 'null' title: Model Confidence model_profile: anyOf: - type: string - type: 'null' title: Model Profile inference_start_date: anyOf: - type: string format: date-time - type: 'null' title: Inference Start Date inference_end_date: anyOf: - type: string format: date-time - type: 'null' title: Inference End Date instance_id: type: integer title: Instance Id updated_on: anyOf: - type: string format: date-time - type: 'null' title: Updated On monthly_savings_usd: anyOf: - type: number - type: 'null' title: Monthly Savings Usd monthly_savings_min_usd: anyOf: - type: number - type: 'null' title: Monthly Savings Min Usd realized_savings_usd: anyOf: - type: number - type: 'null' title: Realized Savings Usd monthly_dbu_savings_usd: anyOf: - type: number - type: 'null' title: Monthly Dbu Savings Usd current_cost_per_hr_low: anyOf: - type: number - type: 'null' title: Current Cost Per Hr Low recommended_cost_per_hr_low: anyOf: - type: number - type: 'null' title: Recommended Cost Per Hr Low auto_tune_mode: anyOf: - type: string - type: 'null' title: Auto Tune Mode depends_on: items: type: string type: array title: Depends On latest_action_event_type: anyOf: - type: string - type: 'null' title: Latest Action Event Type type: object required: - instance_id title: DbxAutoRecommendationItem description: 'A single right-sizing recommendation for a Databricks entity. The FE renders this directly. ``auto_tune_mode`` is the single source of truth for the toggle position (see PRD §6 Option A — comes from a LEFT JOIN on ``databricks_auto_tune_configuration``). The legacy ``action`` column was removed from ``dbx_auto_recommendation`` per team decision; all enable/disable state lives on the configuration table.' SavingsGraphItem: properties: date: type: string title: Date description: Period date (ISO format) autonomous_savings: type: number title: Autonomous Savings description: Autonomous savings (always 0 for Databricks) default: 0 assisted_savings: type: number title: Assisted Savings description: Assisted savings from opportunities default: 0 type: object required: - date title: SavingsGraphItem description: Single data point in savings graph. HighFailureJobOpportunity: properties: job_id: type: string title: Job Id job_name: type: string title: Job Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name total_runs: type: integer title: Total Runs failed_runs: type: integer title: Failed Runs failure_rate: type: number title: Failure Rate last_failure_time: anyOf: - type: string format: date-time - type: 'null' title: Last Failure Time wasted_compute_hours: type: number title: Wasted Compute Hours description: Estimated wasted compute hours from failures type: object required: - job_id - job_name - workspace_id - total_runs - failed_runs - failure_rate - wasted_compute_hours title: HighFailureJobOpportunity description: A high failure rate job opportunity. QueryRecord: properties: statement_id: type: string title: Statement Id statement_type: anyOf: - type: string - type: 'null' title: Statement Type execution_status: anyOf: - type: string - type: 'null' title: Execution Status start_time: anyOf: - type: string format: date-time - type: 'null' title: Start Time end_time: anyOf: - type: string format: date-time - type: 'null' title: End Time total_duration_ms: anyOf: - type: integer - type: 'null' title: Total Duration Ms read_bytes: anyOf: - type: integer - type: 'null' title: Read Bytes spilled_local_bytes: anyOf: - type: integer - type: 'null' title: Spilled Local Bytes workspace_id: anyOf: - type: string - type: 'null' title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name warehouse_id: anyOf: - type: string - type: 'null' title: Warehouse Id user_name: anyOf: - type: string - type: 'null' title: User Name error_message: anyOf: - type: string - type: 'null' title: Error Message type: object required: - statement_id title: QueryRecord description: A single query record. app__schemas__databricks__warehouse__ServerlessCandidatesResponse: properties: candidates: items: $ref: '#/components/schemas/ServerlessCandidate' type: array title: Candidates total_count: type: integer title: Total Count type: object required: - candidates - total_count title: ServerlessCandidatesResponse description: Response for serverless candidates. QueryComputesResponse: properties: computes: items: $ref: '#/components/schemas/ComputeFilterOption' type: array title: Computes total_pages: type: integer title: Total Pages default: 1 type: object title: QueryComputesResponse description: 'Paginated unified compute options (warehouse + cluster + pipeline). Dedicated single-list response (separate from the aggregate ``/queries/filters``) so the typed ``prefix`` only ever scans the compute list, never the other filter lists.' JobCostTrendItem: properties: period: type: string title: Period job_name: type: string title: Job Name total_dbus: type: number title: Total Dbus default: 0 estimated_cost_usd: type: number title: Estimated Cost Usd default: 0 type: object required: - period - job_name title: JobCostTrendItem description: A single point in job cost trends by job. WarehouseAutoTuneSavingsSummaryResponse: properties: warehouse_id: type: string title: Warehouse Id realized_savings: $ref: '#/components/schemas/WarehouseRealizedSavings' estimated_annual_savings: type: number title: Estimated Annual Savings default: 0.0 currency: type: string title: Currency default: USD type: object required: - warehouse_id - realized_savings title: WarehouseAutoTuneSavingsSummaryResponse description: 'Realised savings range + a derived annualized estimate for the two stat blocks shown above the SQL warehouse detail tabs. ``realized_savings`` sums ``actual`` savings over the caller''s ``start_date``/``end_date`` window. ``estimated_annual_savings`` is independent of that window: it annualizes a trailing 29-day actual+potential run-rate (capped at today), mirroring ``DatabricksSavingsService.get_overall_savings_estimate``''s methodology, scoped to this one warehouse. Sourced entirely from ClickHouse ``dbx_auto_tune_cost_savings`` — no Postgres insights table.' QueryTrendPoint: properties: period: type: string title: Period total_queries: type: integer title: Total Queries default: 0 successful_queries: type: integer title: Successful Queries default: 0 failed_queries: type: integer title: Failed Queries default: 0 avg_duration_ms: type: number title: Avg Duration Ms default: 0 total_read_bytes: type: integer title: Total Read Bytes default: 0 type: object required: - period title: QueryTrendPoint description: A single point in query trends. DatabricksOverviewResponse: properties: overview: $ref: '#/components/schemas/DatabricksOverview' type: object required: - overview title: DatabricksOverviewResponse description: Response for Databricks overview. ClusterAutoTuneToggleResponse: properties: auto_tune_mode: anyOf: - type: string - type: 'null' title: Auto Tune Mode audit_event_id: anyOf: - type: integer - type: 'null' title: Audit Event Id entity_name: anyOf: - type: string - type: 'null' title: Entity Name preflight: $ref: '#/components/schemas/ToggleAutoTunePreflight' rolled_back_rec_types: items: type: string type: array title: Rolled Back Rec Types type: object title: ClusterAutoTuneToggleResponse description: 'Response for the cluster Auto Tune toggle endpoint. Returns the resolved master ``auto_tune_mode`` so the FE can re-render the header pill without a second round-trip.' app__schemas__databricks__warehouse__WarehouseRunningStatsTrendsResponse: properties: warehouse_id: type: string title: Warehouse Id trends: items: $ref: '#/components/schemas/WarehouseRunningStatsPoint' type: array title: Trends description: Daily active/idle time data points granularity: type: string title: Granularity description: Time granularity (day) total_active_seconds: type: integer title: Total Active Seconds description: Total active time default: 0 total_idle_seconds: type: integer title: Total Idle Seconds description: Total idle time default: 0 type: object required: - warehouse_id - trends - granularity title: WarehouseRunningStatsTrendsResponse description: Response for warehouse running stats trends over time. DatabricksAuthType: type: string enum: - pat - oauth_m2m title: DatabricksAuthType description: 'Stored auth methods for Databricks connections. Entra-managed service principals are not a separate type — they are ``oauth_m2m`` rows whose ``azure_tenant_id`` lives in ``connection_info``; its presence routes token minting to Microsoft Entra ID instead of the workspace OIDC endpoint.' ClusterUtilization: properties: avg_cpu: type: number title: Avg Cpu default: 0 max_cpu: type: number title: Max Cpu default: 0 min_cpu: type: number title: Min Cpu default: 0 avg_memory: type: number title: Avg Memory default: 0 max_memory: type: number title: Max Memory default: 0 min_memory: type: number title: Min Memory default: 0 sample_count: type: integer title: Sample Count default: 0 type: object title: ClusterUtilization description: Utilization metrics for a cluster. ProductEstimateTrendsResponse: properties: graph: items: $ref: '#/components/schemas/ProductEstimateItem' type: array title: Graph description: Graph data with actual and projected costs by product products: items: type: string type: array title: Products description: Unique product names for chart legend currency: type: string title: Currency description: Currency code default: USD type: object required: - graph - products title: ProductEstimateTrendsResponse description: Response model for product-level cost projection endpoint. WorkspaceEfficiencyResponse: properties: workspaces: items: $ref: '#/components/schemas/WorkspaceEfficiencyItem' type: array title: Workspaces description: List of workspace efficiency metrics total_dbus: type: number title: Total Dbus description: Total DBUs across all workspaces total_cost: type: number title: Total Cost description: Total cost across all workspaces type: object required: - workspaces - total_dbus - total_cost title: WorkspaceEfficiencyResponse description: Response model for workspace efficiency endpoint. RecentFailure: properties: run_id: type: string title: Run Id job_id: type: string title: Job Id job_name: type: string title: Job Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name run_name: anyOf: - type: string - type: 'null' title: Run Name result_state: type: string title: Result State start_time: type: string format: date-time title: Start Time end_time: anyOf: - type: string format: date-time - type: 'null' title: End Time duration_seconds: anyOf: - type: number - type: 'null' title: Duration Seconds type: object required: - run_id - job_id - job_name - workspace_id - result_state - start_time title: RecentFailure description: A recent job failure. SpillQueriesResponse: properties: queries: items: $ref: '#/components/schemas/QueryRecord' type: array title: Queries min_spill_bytes: type: integer title: Min Spill Bytes total_count: type: integer title: Total Count type: object required: - queries - min_spill_bytes - total_count title: SpillQueriesResponse description: Response for queries with memory spills. CostTrendsResponse: properties: trends: items: $ref: '#/components/schemas/CostTrendItem' type: array title: Trends description: List of trend data points granularity: type: string title: Granularity description: Time granularity (day/week/month) type: object required: - trends - granularity title: CostTrendsResponse description: Response model for cost trends endpoint. ClusterAutoTuneToggleRequest: properties: enabled: type: boolean title: Enabled description: Desired state for the toggle. rec_type: anyOf: - type: string enum: - resize - auto_terminate - type: 'null' title: Rec Type description: Which sub-toggle to flip. None = master toggle (flips both Worker Sizing and Auto Termination). type: object required: - enabled title: ClusterAutoTuneToggleRequest description: 'Request body for ``PATCH /databricks/clusters/{id}/auto-tune/toggle``. ``rec_type=None`` is the master toggle — it flips BOTH sub-toggles (``resize`` + ``auto_terminate``) to ``enabled``. A specific ``rec_type`` flips only that sub-toggle. Nothing is applied to Databricks; the call records the config change + an audit event.' CostOverviewResponse: properties: total_dbus: type: number title: Total Dbus description: Total DBU consumption estimated_cost: type: number title: Estimated Cost description: Estimated cost in USD days_count: type: integer title: Days Count description: Number of days in the period workspace_count: type: integer title: Workspace Count description: Number of active workspaces sku_count: type: integer title: Sku Count description: Number of distinct SKUs delta_pct: anyOf: - type: number - type: 'null' title: Delta Pct description: Percentage change vs previous period daily_average_dbus: type: number title: Daily Average Dbus description: Average daily DBU consumption category_breakdown: items: $ref: '#/components/schemas/CostCategoryItem' type: array title: Category Breakdown description: Per-category cost & DBU breakdown for the 5 spec groups, in canonical legend order (Clusters → SQL Warehouse → AI/ML → Lakehouse → Platform). Empty categories are included with zero values so the FE can keep colour ordering stable. type: object required: - total_dbus - estimated_cost - days_count - workspace_count - sku_count - daily_average_dbus title: CostOverviewResponse description: Response model for cost overview endpoint. DatabricksTaskRunGraphPoint: properties: run_id: anyOf: - type: string - type: 'null' title: Run Id timestamp: anyOf: - type: string format: date-time - type: 'null' title: Timestamp start_time: anyOf: - type: string format: date-time - type: 'null' title: Start Time query_cost: type: number title: Query Cost default: 0.0 execution_time: type: number title: Execution Time default: 0.0 type: object title: DatabricksTaskRunGraphPoint description: 'One point on the task-runs graph for a single (job, task) pair. Field names + units mirror the Snowflake ``JobRunGraphResponse`` (``app/schemas/queries.py``) so the FE chart component renders Databricks task runs without unit conversions. ``run_id`` is the Databricks ``job_run_id``; ``query_cost`` is in USD; ``execution_time`` is in milliseconds. Annotations are intentionally omitted — Databricks task runs are graphed without the warehouse/code-change overlay used on Snowflake.' SparkAnalysisSummaryResponse: properties: application: $ref: '#/components/schemas/SparkApplicationInfo' jobs: items: $ref: '#/components/schemas/SparkJobSummary' type: array title: Jobs default: [] job_sql_map: additionalProperties: anyOf: - type: integer - type: 'null' type: object title: Job Sql Map default: {} job_stages: additionalProperties: items: type: integer type: array type: object title: Job Stages default: {} sql_flags: additionalProperties: $ref: '#/components/schemas/SparkSqlFlags' type: object title: Sql Flags default: {} sql_plan_dag: additionalProperties: items: $ref: '#/components/schemas/SparkPlanNode' type: array type: object title: Sql Plan Dag default: {} sql_stage_dag: additionalProperties: items: $ref: '#/components/schemas/SparkSqlStageDagEntry' type: array type: object title: Sql Stage Dag default: {} stages: items: $ref: '#/components/schemas/SparkStageSummary' type: array title: Stages default: [] stage_metrics: additionalProperties: $ref: '#/components/schemas/SparkStageMetrics' type: object title: Stage Metrics default: {} config: additionalProperties: type: string type: object title: Config default: {} summary: $ref: '#/components/schemas/SparkSummaryStats' default: total_jobs: 0 total_stages: 0 total_tasks: 0 unique_sqls: 0 failed_jobs: 0 total_duration_ms: 0 total_cost_cents: 0.0 compute_metrics: anyOf: - $ref: '#/components/schemas/ComputeMetrics' - type: 'null' type: object required: - application title: SparkAnalysisSummaryResponse description: Complete Spark analysis response for a job run. CostTotalResponse: properties: total_dbus: type: number title: Total Dbus description: Total DBU consumption total_cost: type: number title: Total Cost description: Total cost currency: type: string title: Currency description: Currency code default: USD category_breakdown: items: $ref: '#/components/schemas/CategoryBreakdownItem' type: array title: Category Breakdown description: Cost breakdown by category days_count: type: integer title: Days Count description: Number of days in the period delta_pct: anyOf: - type: number - type: 'null' title: Delta Pct description: Percentage change vs previous period type: object required: - total_dbus - total_cost - category_breakdown - days_count title: CostTotalResponse description: Response model for total cost endpoint with category breakdown. QueryDetail: properties: statement_id: type: string title: Statement Id statement_text: anyOf: - type: string - type: 'null' title: Statement Text statement_type: anyOf: - type: string - type: 'null' title: Statement Type execution_status: anyOf: - type: string - type: 'null' title: Execution Status start_time: anyOf: - type: string format: date-time - type: 'null' title: Start Time end_time: anyOf: - type: string format: date-time - type: 'null' title: End Time total_duration_ms: anyOf: - type: integer - type: 'null' title: Total Duration Ms waiting_for_compute_duration_ms: anyOf: - type: integer - type: 'null' title: Waiting For Compute Duration Ms waiting_at_capacity_duration_ms: anyOf: - type: integer - type: 'null' title: Waiting At Capacity Duration Ms execution_duration_ms: anyOf: - type: integer - type: 'null' title: Execution Duration Ms compilation_duration_ms: anyOf: - type: integer - type: 'null' title: Compilation Duration Ms read_bytes: anyOf: - type: integer - type: 'null' title: Read Bytes written_bytes: anyOf: - type: integer - type: 'null' title: Written Bytes read_rows: anyOf: - type: integer - type: 'null' title: Read Rows produced_rows: anyOf: - type: integer - type: 'null' title: Produced Rows read_partitions: anyOf: - type: integer - type: 'null' title: Read Partitions total_partitions: anyOf: - type: integer - type: 'null' title: Total Partitions read_files: anyOf: - type: integer - type: 'null' title: Read Files spilled_local_bytes: anyOf: - type: integer - type: 'null' title: Spilled Local Bytes spilled_remote_bytes: anyOf: - type: integer - type: 'null' title: Spilled Remote Bytes result_fetch_duration_ms: anyOf: - type: integer - type: 'null' title: Result Fetch Duration Ms workspace_id: anyOf: - type: string - type: 'null' title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name warehouse_id: anyOf: - type: string - type: 'null' title: Warehouse Id warehouse_name: anyOf: - type: string - type: 'null' title: Warehouse Name warehouse_size: anyOf: - type: string - type: 'null' title: Warehouse Size cluster_id: anyOf: - type: string - type: 'null' title: Cluster Id cluster_name: anyOf: - type: string - type: 'null' title: Cluster Name pipeline_id: anyOf: - type: string - type: 'null' title: Pipeline Id pipeline_name: anyOf: - type: string - type: 'null' title: Pipeline Name job_id: anyOf: - type: string - type: 'null' title: Job Id compute_display: anyOf: - type: string - type: 'null' title: Compute Display description: Resolved compute label for the detail-page Compute metric. Same composition rule as the unified queries list — see ``UnifiedQueryRecord.compute_display`` for details. dbus: anyOf: - type: number - type: 'null' title: Dbus description: DBUs consumed by this query estimated_cost_usd: anyOf: - type: number - type: 'null' title: Estimated Cost Usd description: Estimated cost in USD from dbx_query_cost table user_name: anyOf: - type: string - type: 'null' title: User Name error_message: anyOf: - type: string - type: 'null' title: Error Message canUseResultCache: anyOf: - type: boolean - type: 'null' title: Canuseresultcache resultFetchedFromCache: anyOf: - type: boolean - type: 'null' title: Resultfetchedfromcache insights: items: type: string type: array title: Insights description: List of insight tags (slow_query, disk_spill, full_table_scan, failed) type: object required: - statement_id title: QueryDetail description: Detailed query information. UserTrendPoint: properties: period: type: string title: Period total_queries: type: integer title: Total Queries default: 0 successful_queries: type: integer title: Successful Queries default: 0 failed_queries: type: integer title: Failed Queries default: 0 avg_duration_ms: type: number title: Avg Duration Ms default: 0 total_read_bytes: type: integer title: Total Read Bytes default: 0 type: object required: - period title: UserTrendPoint description: A single point in user query trends. SparkConfigResponse: properties: configs: items: $ref: '#/components/schemas/SparkConfigItem' type: array title: Configs total_count: type: integer title: Total Count description: Total number of config items type: object required: - configs - total_count title: SparkConfigResponse description: Response for Spark application configuration. WarehouseAutoTuneSavingsTrendsResponse: properties: warehouse_id: type: string title: Warehouse Id actual: items: $ref: '#/components/schemas/WarehouseAutoTuneSavingsTrendPoint' type: array title: Actual default: [] potential: items: $ref: '#/components/schemas/WarehouseAutoTuneSavingsTrendPoint' type: array title: Potential default: [] granularity: type: string title: Granularity type: object required: - warehouse_id - granularity title: WarehouseAutoTuneSavingsTrendsResponse description: 'Per-period auto-tune savings for a SQL warehouse, split into realized and potential. ``actual`` holds savings while an applied auto-tune recommendation (e.g. a lowered auto-stop) was in effect; ``potential`` holds the savings an active, not-yet-applied recommendation would have earned over the same window. Sourced from ClickHouse ``dbx_auto_tune_cost_savings``.' JobRunTrendPoint: properties: period: type: string title: Period total_runs: type: integer title: Total Runs default: 0 successful_runs: type: integer title: Successful Runs default: 0 failed_runs: type: integer title: Failed Runs default: 0 avg_duration_seconds: type: number title: Avg Duration Seconds default: 0 estimated_cost_usd: type: number title: Estimated Cost Usd default: 0 dbu_cost: type: number title: Dbu Cost default: 0 cloud_cost: anyOf: - type: number - type: 'null' title: Cloud Cost type: object required: - period title: JobRunTrendPoint description: A single point in job run trends. WarehouseEvent: properties: warehouse_id: type: string title: Warehouse Id event_type: type: string title: Event Type event_time: type: string format: date-time title: Event Time cluster_count: anyOf: - type: integer - type: 'null' title: Cluster Count type: object required: - warehouse_id - event_type - event_time title: WarehouseEvent description: A single warehouse event. DatabricksUserType: type: string enum: - USER - SERVICE_PRINCIPAL title: DatabricksUserType description: Type of Databricks user identity. WorkspaceActivityResponse: properties: workspaces: items: $ref: '#/components/schemas/WorkspaceActivity' type: array title: Workspaces type: object required: - workspaces title: WorkspaceActivityResponse description: Response for workspace activity. app__schemas__databricks__opportunities__OversizedClustersResponse: properties: opportunities: items: $ref: '#/components/schemas/OversizedClusterOpportunity' type: array title: Opportunities total_count: type: integer title: Total Count cpu_threshold: type: number title: Cpu Threshold memory_threshold: type: number title: Memory Threshold type: object required: - opportunities - total_count - cpu_threshold - memory_threshold title: OversizedClustersResponse description: Response for oversized clusters opportunities. JobsSummaryResponse: properties: total_cost: type: number title: Total Cost default: 0 total_dbu_cost: type: number title: Total Dbu Cost default: 0 total_cloud_cost: anyOf: - type: number - type: 'null' title: Total Cloud Cost total_realized_savings: type: number title: Total Realized Savings default: 0 type: object title: JobsSummaryResponse description: 'Aggregate cost summary for the Jobs list hero cards. ``total_cost`` equals ``total_dbu_cost`` because DBU consumption is the only modelled cost component. ``total_cloud_cost`` is ``None`` because cloud-provider infrastructure cost is not ingested.' JobDetail: properties: job_id: type: string title: Job Id job_name: type: string title: Job Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name instance_id: anyOf: - type: integer - type: 'null' title: Instance Id creator_user_name: anyOf: - type: string - type: 'null' title: Creator User Name run_as_user_name: anyOf: - type: string - type: 'null' title: Run As User Name created_time: anyOf: - type: string format: date-time - type: 'null' title: Created Time settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Settings type: object required: - job_id - job_name - workspace_id title: JobDetail description: Detailed information for a job. DbxAutoRecommendationsResponse: properties: recommendations: items: $ref: '#/components/schemas/DbxAutoRecommendationItem' type: array title: Recommendations total_count: type: integer title: Total Count description: Total number of recommendations returned default: 0 type: object required: - recommendations title: DbxAutoRecommendationsResponse description: List response for Databricks auto-recommendations. ProductTrendsResponse: properties: trends: items: $ref: '#/components/schemas/ProductTrendItem' type: array title: Trends description: List of trend data by product products: items: type: string type: array title: Products description: Canonical segment labels for the chart legend, in display order. When called with a ``category``, this is the full set of expected segments for that category — empty segments are still included so the legend stays stable across date ranges. granularity: type: string title: Granularity description: Time granularity (day/week/month) category: anyOf: - $ref: '#/components/schemas/CategoryName' - type: 'null' description: Category the response was computed for. Omitted when called without the ``category`` query param. type: object required: - trends - products - granularity title: ProductTrendsResponse description: Response model for cost trends by product endpoint. DatabricksConnectionTestResponse: properties: ok: type: boolean title: Ok message: anyOf: - type: string - type: 'null' title: Message workspace_id: anyOf: - type: string - type: 'null' title: Workspace Id catalogs: anyOf: - items: type: string type: array - type: 'null' title: Catalogs current_catalog: anyOf: - type: string - type: 'null' title: Current Catalog metastore_id: anyOf: - type: string - type: 'null' title: Metastore Id type: object required: - ok title: DatabricksConnectionTestResponse SparkApplicationSummary: properties: application_id: type: string title: Application Id cluster_id: anyOf: - type: string - type: 'null' title: Cluster Id total_jobs: type: integer title: Total Jobs default: 0 total_stages: type: integer title: Total Stages default: 0 total_tasks: type: integer title: Total Tasks default: 0 duration_ms: anyOf: - type: number - type: 'null' title: Duration Ms success: anyOf: - type: boolean - type: 'null' title: Success spark_version: anyOf: - type: string - type: 'null' title: Spark Version log_date: anyOf: - type: string - type: 'null' title: Log Date flag_count: type: integer title: Flag Count default: 0 type: object required: - application_id title: SparkApplicationSummary description: Summary information for a Spark application. QueryCostTrendsByUserResponse: properties: trends: items: $ref: '#/components/schemas/QueryCostTrendByUserPoint' type: array title: Trends granularity: type: string title: Granularity users: items: type: string type: array title: Users description: List of unique users in the data (for chart legend) type: object required: - trends - granularity title: QueryCostTrendsByUserResponse description: Response for query cost trends broken down by user. TopUserByDataRead: properties: user_name: type: string title: User Name total_read_bytes: type: integer title: Total Read Bytes default: 0 total_queries: type: integer title: Total Queries default: 0 avg_duration_ms: type: number title: Avg Duration Ms default: 0 type: object required: - user_name title: TopUserByDataRead description: Top user by data read. AIMLServicesTrendPoint: properties: date: type: string title: Date description: Date in YYYY-MM-DD format total_dbus: type: number title: Total Dbus description: Total DBUs across all services default: 0 total_cost_usd: type: number title: Total Cost Usd description: Total cost in USD across all services default: 0 model_serving_dbus: type: number title: Model Serving Dbus description: Model serving DBUs default: 0 model_serving_cost_usd: type: number title: Model Serving Cost Usd description: Model serving cost in USD default: 0 vector_search_dbus: type: number title: Vector Search Dbus description: Vector search DBUs default: 0 vector_search_cost_usd: type: number title: Vector Search Cost Usd description: Vector search cost in USD default: 0 ai_gateway_dbus: type: number title: Ai Gateway Dbus description: AI Gateway DBUs default: 0 ai_gateway_cost_usd: type: number title: Ai Gateway Cost Usd description: AI Gateway cost in USD default: 0 type: object required: - date title: AIMLServicesTrendPoint description: Single data point for AI/ML services daily trend. AutoTuneStatusResponse: properties: auto_tune_mode: anyOf: - type: string - type: 'null' title: Auto Tune Mode description: '"enabled" if any task on the job has Auto Tune turned on. "disabled" if all tasks are off or no config exists. None when there are no recommendations for this job at all.' preflight: $ref: '#/components/schemas/ToggleAutoTunePreflight' recommendation_count: type: integer title: Recommendation Count default: 0 at_scoped_spend_usd: anyOf: - type: number - type: 'null' title: At Scoped Spend Usd tasks_enabled: type: integer title: Tasks Enabled default: 0 tasks_total: type: integer title: Tasks Total default: 0 type: object title: AutoTuneStatusResponse description: "Page-level status for the Auto Tune tab.\n\nReturned by GET /databricks/jobs/{job_id}/auto-tune/status. The FE\nuses this on JobDetail page mount to drive:\n\n- Master toggle position in the page header (auto_tune_mode).\n- Whether the toggle is interactive or disabled with a HoverCard\n explaining why (preflight.blocked + actionable_message).\n- Whether the Auto Tune tab content renders the full panel or the\n empty state (recommendation_count + auto_tune_mode).\n\nRead-only — no DB writes happen on this call." WarehouseCostTrendItem: properties: period: type: string title: Period warehouse_type: type: string title: Warehouse Type total_dbus: type: number title: Total Dbus default: 0 estimated_cost: type: number title: Estimated Cost default: 0 type: object required: - period - warehouse_type title: WarehouseCostTrendItem description: Single data point for warehouse cost trends by warehouse type. SparkStageMetrics: properties: stage_id: type: integer title: Stage Id name: anyOf: - type: string - type: 'null' title: Name tasks: type: integer title: Tasks default: 0 run_ms: type: integer title: Run Ms default: 0 max_ms: type: integer title: Max Ms default: 0 avg_ms: type: integer title: Avg Ms default: 0 min_ms: type: integer title: Min Ms default: 0 median_ms: type: integer title: Median Ms default: 0 q1_ms: type: integer title: Q1 Ms default: 0 q3_ms: type: integer title: Q3 Ms default: 0 stddev_ms: type: number title: Stddev Ms default: 0.0 gc_ms: type: integer title: Gc Ms default: 0 mem_spill: type: integer title: Mem Spill default: 0 disk_spill: type: integer title: Disk Spill default: 0 shuffle_read: type: integer title: Shuffle Read default: 0 shuffle_write: type: integer title: Shuffle Write default: 0 skew: type: number title: Skew default: 0.0 type: object required: - stage_id title: SparkStageMetrics description: Detailed task-level metrics aggregated per stage. QueryTrendsResponse: properties: trends: items: $ref: '#/components/schemas/QueryTrendPoint' type: array title: Trends granularity: type: string title: Granularity type: object required: - trends - granularity title: QueryTrendsResponse description: Response for query trends. DatabricksOverview: properties: compute: $ref: '#/components/schemas/ComputeSummary' job_health: $ref: '#/components/schemas/JobHealthSummary' query_health: $ref: '#/components/schemas/QueryHealthSummary' cost: $ref: '#/components/schemas/app__schemas__databricks__insights__CostSummary' top_cost_drivers: items: $ref: '#/components/schemas/CostDriver' type: array title: Top Cost Drivers utilization: $ref: '#/components/schemas/UtilizationInsights' type: object required: - compute - job_health - query_health - cost - top_cost_drivers - utilization title: DatabricksOverview description: Complete overview of Databricks environment. SparkPlanAnalysisResponse: properties: flags: items: $ref: '#/components/schemas/SparkPlanFlag' type: array title: Flags summary: items: $ref: '#/components/schemas/SparkPlanAnalysisSummary' type: array title: Summary total_count: type: integer title: Total Count description: Total number of flags type: object required: - flags - summary - total_count title: SparkPlanAnalysisResponse description: Response for Spark plan analysis flags. CascadePartialFailure: properties: task_key: type: string title: Task Key description: The recommendation's ``task_key`` that failed to apply. error: type: string title: Error description: Stringified exception message. The cascade catches all exceptions to keep the loop going; the original type is lost. type: object required: - task_key - error title: CascadePartialFailure description: 'One ``(task_key, error)`` entry in the cascade response. Surfaced when ``scope`` is ``all_tasks`` or ``specific_tasks`` and one or more per-task applies threw mid-cascade. The cascade continues past the failure (so a single broken task doesn''t poison the whole job toggle), but the FE needs to know which tasks didn''t flip so it can render a per-task error toast or row-level badge.' UnifiedQueriesResponse: properties: queries: items: $ref: '#/components/schemas/UnifiedQueryRecord' type: array title: Queries total_count: type: integer title: Total Count description: Total number of queries matching filters page: type: integer title: Page description: Current page number default: 1 page_size: type: integer title: Page Size description: Number of items per page default: 100 total_pages: type: integer title: Total Pages description: Total number of pages default: 1 type: object required: - queries - total_count title: UnifiedQueriesResponse description: Response for unified queries with insights. DatabricksConnectionResponse: properties: id: type: integer title: Id name: type: string title: Name description: anyOf: - type: string - type: 'null' title: Description server_hostname: type: string title: Server Hostname http_path: type: string title: Http Path auth_type: $ref: '#/components/schemas/DatabricksAuthType' default: pat azure_tenant_id: anyOf: - type: string - type: 'null' title: Azure Tenant Id workspace_id: anyOf: - type: string - type: 'null' title: Workspace Id metastore_id: anyOf: - type: string - type: 'null' title: Metastore Id is_valid: type: boolean title: Is Valid last_validated_at: anyOf: - type: string format: date-time - type: 'null' title: Last Validated At created_at: type: string format: date-time title: Created At last_modified_at: type: string format: date-time title: Last Modified At created_by: anyOf: - type: integer - type: 'null' title: Created By last_modified_by: anyOf: - type: integer - type: 'null' title: Last Modified By type: object required: - id - name - server_hostname - http_path - is_valid - created_at - last_modified_at title: DatabricksConnectionResponse OpportunitiesSummaryResponse: properties: summary: $ref: '#/components/schemas/OpportunitiesSummary' type: object required: - summary title: OpportunitiesSummaryResponse description: Response for opportunities summary. UserQueryBreakdownResponse: properties: breakdown: items: $ref: '#/components/schemas/UserQueryStats' type: array title: Breakdown type: object required: - breakdown title: UserQueryBreakdownResponse description: Response for user query breakdown. ClusterCostResponse: properties: cluster_id: type: string title: Cluster Id total_dbus: type: number title: Total Dbus default: 0 estimated_cost: type: number title: Estimated Cost default: 0 daily_average_dbus: type: number title: Daily Average Dbus default: 0 daily_average_cost: type: number title: Daily Average Cost default: 0 timeseries: items: $ref: '#/components/schemas/ClusterCostPoint' type: array title: Timeseries default: [] type: object required: - cluster_id title: ClusterCostResponse description: Response for cluster cost data. DeploymentTypeTrendItem: properties: period: type: string title: Period description: Period label (date or week/month) deployment_type: type: string title: Deployment Type description: 'Deployment type: serverless or provisioned' total_dbus: type: number title: Total Dbus description: Total DBUs for this period+type estimated_cost: type: number title: Estimated Cost description: Estimated cost for this period+type type: object required: - period - deployment_type - total_dbus - estimated_cost title: DeploymentTypeTrendItem description: Single data point for deployment type trends (serverless vs provisioned). ClusterFilterOptions: properties: cluster_names: items: type: string type: array title: Cluster Names workspaces: items: type: string type: array title: Workspaces sources: items: type: string type: array title: Sources driver_nodes: items: type: string type: array title: Driver Nodes worker_nodes: items: type: string type: array title: Worker Nodes type: object title: ClusterFilterOptions description: Filter options for clusters. DatabricksConnectionTestRequestPAT: properties: type: type: string title: Type default: databricks server_hostname: type: string maxLength: 256 minLength: 1 pattern: ^(https?://)?[a-zA-Z0-9][a-zA-Z0-9\-]*(\.[a-zA-Z0-9\-]+)*\.(cloud\.databricks\.com|azuredatabricks\.net|gcp\.databricks\.com)/?$ title: Server Hostname description: Databricks workspace hostname. Must end in cloud.databricks.com, azuredatabricks.net, or gcp.databricks.com. http_path: type: string maxLength: 256 minLength: 1 pattern: ^/sql/[0-9.]+/warehouses/[A-Za-z0-9]+$ title: Http Path description: SQL warehouse HTTP path name: type: string title: Name default: connection_test auth_type: type: string const: pat title: Auth Type default: pat access_token: type: string minLength: 1 title: Access Token type: object required: - server_hostname - http_path - access_token title: DatabricksConnectionTestRequestPAT AutonomousSavingsResponse: properties: graph: items: $ref: '#/components/schemas/SavingsGraphItem' type: array title: Graph description: Graph data (always empty for Databricks) default: [] currency: type: string title: Currency description: Currency code default: USD type: object title: AutonomousSavingsResponse description: Response model for autonomous savings endpoint. JobFilterOptions: properties: job_names: items: type: string type: array title: Job Names creators: items: type: string type: array title: Creators workspaces: items: type: string type: array title: Workspaces type: object title: JobFilterOptions description: Filter options for jobs. SparkConfigItem: properties: config_category: anyOf: - type: string - type: 'null' title: Config Category config_key: type: string title: Config Key config_value: anyOf: - type: string - type: 'null' title: Config Value type: object required: - config_key title: SparkConfigItem description: A single Spark configuration key-value pair. CostTrendItem: properties: period: type: string title: Period description: Period label (date or week/month) total_dbus: type: number title: Total Dbus description: Total DBUs for the period estimated_cost: type: number title: Estimated Cost description: Estimated cost for the period type: object required: - period - total_dbus - estimated_cost title: CostTrendItem description: Single data point in cost trend. SavingsOverallEstimateResponse: properties: total_savings: type: number title: Total Savings description: Total per-month savings total_autonomous_savings: type: number title: Total Autonomous Savings description: Per-month autonomous savings default: 0 total_assisted_savings: type: number title: Total Assisted Savings description: Per-month assisted savings default: 0 min_total_autonomous_savings: type: number title: Min Total Autonomous Savings description: Min autonomous savings default: 0 max_total_autonomous_savings: type: number title: Max Total Autonomous Savings description: Max autonomous savings default: 0 time_saved: type: string title: Time Saved description: Per-month time saved default: 0 days total_savings_estimate: type: number title: Total Savings Estimate description: Projected total savings default: 0 total_autonomous_savings_estimate: type: number title: Total Autonomous Savings Estimate description: Projected autonomous savings default: 0 total_assisted_savings_estimate: type: number title: Total Assisted Savings Estimate description: Projected assisted savings default: 0 total_time_saved_estimate: type: string title: Total Time Saved Estimate description: Projected time saved default: 0 days currency: type: string title: Currency description: Currency code default: USD type: object required: - total_savings title: SavingsOverallEstimateResponse description: Response model for overall savings estimate endpoint (future projections). SparkPlanAnalysisSummary: properties: flag_name: type: string title: Flag Name count: type: integer title: Count default: 0 type: object required: - flag_name title: SparkPlanAnalysisSummary description: Summary counts for plan analysis flags. app__schemas__databricks__insights__CostSummary: properties: total_dbus: type: number title: Total Dbus default: 0 estimated_cost: type: number title: Estimated Cost default: 0 days_count: type: integer title: Days Count default: 0 workspace_count: type: integer title: Workspace Count default: 0 type: object title: CostSummary description: Summary of costs. JobRunSparkUiResponse: properties: state: type: string title: State spark_ui_url: anyOf: - type: string - type: 'null' title: Spark Ui Url workspace_host: anyOf: - type: string - type: 'null' title: Workspace Host cluster_id: anyOf: - type: string - type: 'null' title: Cluster Id spark_context_id: anyOf: - type: string - type: 'null' title: Spark Context Id message: anyOf: - type: string - type: 'null' title: Message type: object required: - state title: JobRunSparkUiResponse description: "Deep link to the Databricks Spark UI for a job run.\n\nEndpoint always returns 200; ``state`` is the discriminator. Real\nHTTP errors (auth failures, server crashes) still surface as their\nnatural status codes and bypass this shape.\n\n``state`` values:\n\n- ``available``: happy path — render the link.\n- ``no_spark_context``: serverless / SQL warehouse / queued run — no\n Spark UI to deep-link to. FE disables the action with a tooltip.\n- ``not_found``: job or ``task_run_id`` does not exist. FE hides the\n action.\n- ``workspace_mismatch``: caller-supplied ``workspace_id`` does not\n match the workspace that owns this job. FE surfaces a toast.\n- ``permission_denied``: the workspace's Service Principal lacks\n View / Manage Run / Admin permission on this specific job. Won't\n resolve until an admin grants permission, so FE should surface a\n toast distinct from the transient upstream-error one.\n- ``upstream_error``: Databricks credentials missing, or the upstream\n ``runs/get`` call failed for any other reason. FE surfaces a toast.\n\nThe four URL fields are present **only** when ``state == \"available\"``.\n``message`` carries a human-readable detail for the error states.\n``spark_context_id`` is fetched live from the Databricks Jobs API\n(``runs/get``) because it is not ingested into ClickHouse." ResourceOpportunity: properties: opportunity_type: type: string title: Opportunity Type description: 'Type: oversized_cluster, idle_cluster, serverless_candidate, high_failure_job' resource_id: type: string title: Resource Id resource_name: type: string title: Resource Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name description: type: string title: Description potential_savings_pct: anyOf: - type: number - type: 'null' title: Potential Savings Pct metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Metadata type: object required: - opportunity_type - resource_id - resource_name - workspace_id - description title: ResourceOpportunity description: A generic opportunity for a specific resource. SlowQueriesResponse: properties: queries: items: $ref: '#/components/schemas/QueryRecord' type: array title: Queries min_duration_ms: type: integer title: Min Duration Ms total_count: type: integer title: Total Count type: object required: - queries - min_duration_ms - total_count title: SlowQueriesResponse description: Response for slow queries. UserStatementBreakdown: properties: statement_type: type: string title: Statement Type query_count: type: integer title: Query Count default: 0 avg_duration_ms: type: number title: Avg Duration Ms default: 0 total_read_bytes: type: integer title: Total Read Bytes default: 0 type: object required: - statement_type title: UserStatementBreakdown description: Statement type breakdown for a user. AIMLEndpointsFilterOptions: properties: entity_types: items: type: string type: array title: Entity Types description: 'Distinct entity_types appearing on rows in the window. Subset of the seven leaf types: FOUNDATION_MODEL, CUSTOM_MODEL, AI_FUNCTION, EXTERNAL_MODEL, FEATURE_SPEC, VECTOR_SEARCH, AI_GATEWAY.' workspace_ids: items: type: string type: array title: Workspace Ids description: Distinct workspace IDs that have AI/ML usage in the window type: object title: AIMLEndpointsFilterOptions description: 'Discrete filter values for the unified AI/ML endpoints list. Only fields that are actually filterable on ``GET /ai-ml-services/endpoints`` are returned. ``start_date`` / ``end_date`` are a free-form date range and therefore not enumerable here; the caller still passes them in to scope ``entity_types`` and ``workspace_ids`` to rows with traffic in the window.' ClustersCostTrendsResponse: properties: trends: items: $ref: '#/components/schemas/ClusterCostTrendItem' type: array title: Trends description: Cost trends broken down by compute type compute_types: items: type: string type: array title: Compute Types description: Distinct compute types present, ordered by total cost desc (legend order). granularity: type: string title: Granularity description: Time granularity (day, week, month) total_dbus: type: number title: Total Dbus description: Total DBUs in period default: 0 total_cost: type: number title: Total Cost description: Total estimated cost default: 0 type: object required: - trends - compute_types - granularity title: ClustersCostTrendsResponse description: Response for all clusters cost trends (aggregated across all clusters). EstimateSegmentTotalItem: properties: product: type: string title: Product description: Segment label for this category estimated_cost: type: number title: Estimated Cost description: Combined actual + projected cost for the whole period pct_of_total: type: number title: Pct Of Total description: Share of the estimate ``total`` (0–100, one decimal). Sums to ~100 across the breakdown. type: object required: - product - estimated_cost - pct_of_total title: EstimateSegmentTotalItem description: 'One segment''s combined (actual + projected) cost in the total estimate. Cost-only — the projection does not forecast DBUs.' DeploymentTypeTrendsResponse: properties: trends: items: $ref: '#/components/schemas/DeploymentTypeTrendItem' type: array title: Trends description: List of trend data by deployment type deployment_types: items: type: string type: array title: Deployment Types description: Unique deployment types for chart legend granularity: type: string title: Granularity description: Time granularity (day/week/month) type: object required: - trends - deployment_types - granularity title: DeploymentTypeTrendsResponse description: Response model for deployment type trends endpoint. CostComparisonResponse: properties: current_period_dbus: type: number title: Current Period Dbus description: DBUs in current period previous_period_dbus: type: number title: Previous Period Dbus description: DBUs in previous period current_period_cost: type: number title: Current Period Cost description: Cost in current period previous_period_cost: type: number title: Previous Period Cost description: Cost in previous period delta_dbus: type: number title: Delta Dbus description: Change in DBUs delta_cost: type: number title: Delta Cost description: Change in cost delta_pct: anyOf: - type: number - type: 'null' title: Delta Pct description: Percentage change type: object required: - current_period_dbus - previous_period_dbus - current_period_cost - previous_period_cost - delta_dbus - delta_cost title: CostComparisonResponse description: Response model for period comparison. QueryStatementIdsResponse: properties: statement_ids: items: type: string type: array title: Statement Ids default: [] total_pages: type: integer title: Total Pages description: 'Forward-looking page upper bound for the FE filter dropdown''s ``page < pages`` check. NOT a true total (no COUNT runs): equals the current page when no further results remain, current page + 1 while more do. The FE''s ``FilterInput`` reads this field by convention (same name as other paginated dropdowns) — renaming it would break shared dropdown pagination wiring.' default: 1 type: object title: QueryStatementIdsResponse description: Statement IDs matching a Query ID filter search (server-side, paged). WarehouseAutoTuneSavingsTrendPoint: properties: period: type: string title: Period cost_saved: type: number title: Cost Saved default: 0.0 dbus_saved: type: number title: Dbus Saved default: 0.0 min_cost_saved: type: number title: Min Cost Saved default: 0.0 max_cost_saved: type: number title: Max Cost Saved default: 0.0 type: object required: - period title: WarehouseAutoTuneSavingsTrendPoint description: 'One period''s auto-tune savings for a SQL warehouse. ``min_cost_saved``/``max_cost_saved`` are the range underlying ``cost_saved`` for this period+savings_type — used to render a min-max range in the Auto Tune chart tooltip (e.g. "$128.91 - $154.2"). They default to 0.0 so existing callers that don''t need the range are unaffected.' SparkJobSummary: properties: job_id: type: integer title: Job Id duration_ms: type: integer title: Duration Ms default: 0 failed: type: boolean title: Failed default: false sql_execution_id: anyOf: - type: integer - type: 'null' title: Sql Execution Id description: anyOf: - type: string - type: 'null' title: Description cost_cents: type: number title: Cost Cents default: 0.0 type: object required: - job_id title: SparkJobSummary description: Summary of a single Spark job within an application. DatabricksTaskStatsResponse: properties: total_runs: type: integer title: Total Runs default: 0 succeeded_runs: type: integer title: Succeeded Runs default: 0 failed_runs: type: integer title: Failed Runs default: 0 avg_duration_seconds: type: number title: Avg Duration Seconds default: 0.0 type: object title: DatabricksTaskStatsResponse description: 'Aggregate stats for runs of a single (job, task) in a date window. Buckets ``result_state`` per the FE contract: SUCCEEDED → succeeded, {FAILED, ERROR} → failed. Other states (TIMED_OUT, CANCELLED, SKIPPED, in-flight) count toward ``total_runs`` but neither bucket.' WorkspaceOption: properties: workspace_id: type: string title: Workspace Id workspace_name: type: string title: Workspace Name account_id: type: string title: Account Id type: object required: - workspace_id - workspace_name - account_id title: WorkspaceOption description: A grantable Databricks workspace, with its parent account. ExpensiveQueryOpportunity: properties: statement_id: type: string title: Statement Id statement_type: anyOf: - type: string - type: 'null' title: Statement Type start_time: type: string format: date-time title: Start Time total_duration_ms: type: integer title: Total Duration Ms read_bytes: type: integer title: Read Bytes spilled_local_bytes: anyOf: - type: integer - type: 'null' title: Spilled Local Bytes workspace_id: anyOf: - type: string - type: 'null' title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name user_name: anyOf: - type: string - type: 'null' title: User Name cost_score: type: number title: Cost Score description: Cost score for ranking type: object required: - statement_id - start_time - total_duration_ms - read_bytes - cost_score title: ExpensiveQueryOpportunity description: An expensive query opportunity. CostCategory: type: string enum: - Compute - SQL - AI/ML - Data Platform - Infrastructure title: CostCategory description: Cost category classification for Databricks SKUs. EndpointCallersListResponse: properties: callers: items: $ref: '#/components/schemas/EndpointCallerItem' type: array title: Callers description: List of callers (jobs/queries) pagination: $ref: '#/components/schemas/app__schemas__databricks__ai_services__PaginationInfo' description: Pagination info type: object required: - pagination title: EndpointCallersListResponse description: Response for listing jobs/queries calling an endpoint. WarehouseFilterOptions: properties: warehouse_names: items: type: string type: array title: Warehouse Names warehouse_types: items: type: string type: array title: Warehouse Types warehouse_sizes: items: type: string type: array title: Warehouse Sizes type: object title: WarehouseFilterOptions description: Filter options for SQL warehouses. ComputeEfficiencyResponse: properties: jobs_pct: type: number title: Jobs Pct description: Percentage of compute used by Jobs all_purpose_pct: type: number title: All Purpose Pct description: Percentage of compute used by All-Purpose efficiency_score: type: string title: Efficiency Score description: 'Efficiency rating: healthy (>70% jobs), moderate (50-70%), unhealthy (<50%)' compute_types: items: $ref: '#/components/schemas/ComputeTypeBreakdown' type: array title: Compute Types description: Breakdown by compute type deployment_types: items: $ref: '#/components/schemas/DeploymentTypeBreakdown' type: array title: Deployment Types description: Breakdown by deployment type (serverless vs provisioned) engine_types: items: $ref: '#/components/schemas/EngineTypeBreakdown' type: array title: Engine Types description: Breakdown by engine type (photon vs standard) total_dbus: type: number title: Total Dbus description: Total DBU consumption total_cost: type: number title: Total Cost description: Total estimated cost type: object required: - jobs_pct - all_purpose_pct - efficiency_score - compute_types - deployment_types - engine_types - total_dbus - total_cost title: ComputeEfficiencyResponse description: Response model for compute efficiency breakdown. StatementTypeStats: properties: statement_type: type: string title: Statement Type query_count: type: integer title: Query Count avg_duration_ms: type: number title: Avg Duration Ms total_read_bytes: type: integer title: Total Read Bytes type: object required: - statement_type - query_count - avg_duration_ms - total_read_bytes title: StatementTypeStats description: Statistics for a statement type. ComputeNodeTimeSeries: properties: node_id: type: string title: Node Id is_driver: type: boolean title: Is Driver default: false node_type: anyOf: - type: string - type: 'null' title: Node Type label: type: string title: Label default: '' cpu_user: items: type: number type: array title: Cpu User default: [] cpu_system: items: type: number type: array title: Cpu System default: [] mem_used: items: type: number type: array title: Mem Used default: [] mem_swap: items: type: number type: array title: Mem Swap default: [] gc_pct: items: type: number type: array title: Gc Pct default: [] type: object required: - node_id title: ComputeNodeTimeSeries description: Time-series metrics for a single compute node (driver or worker). WorkspaceEfficiencyItem: properties: workspace_id: type: string title: Workspace Id description: Databricks workspace ID workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name description: Workspace display name total_dbus: type: number title: Total Dbus description: Total DBU consumption estimated_cost: type: number title: Estimated Cost description: Estimated cost jobs_pct: type: number title: Jobs Pct description: Percentage of compute used by Jobs all_purpose_pct: type: number title: All Purpose Pct description: Percentage of compute used by All-Purpose serverless_pct: type: number title: Serverless Pct description: Percentage of compute that is serverless efficiency_score: type: string title: Efficiency Score description: 'Efficiency rating: healthy (>70% jobs), moderate (50-70%), unhealthy (<50%)' type: object required: - workspace_id - total_dbus - estimated_cost - jobs_pct - all_purpose_pct - serverless_pct - efficiency_score title: WorkspaceEfficiencyItem description: Efficiency metrics for a single workspace. WarehouseSummary: properties: warehouse_id: type: string title: Warehouse Id warehouse_name: type: string title: Warehouse Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name instance_id: anyOf: - type: integer - type: 'null' title: Instance Id warehouse_type: anyOf: - type: string - type: 'null' title: Warehouse Type warehouse_size: anyOf: - type: string - type: 'null' title: Warehouse Size min_num_clusters: anyOf: - type: integer - type: 'null' title: Min Num Clusters max_num_clusters: anyOf: - type: integer - type: 'null' title: Max Num Clusters auto_stop_mins: anyOf: - type: integer - type: 'null' title: Auto Stop Mins state: anyOf: - type: string - type: 'null' title: State num_clusters: anyOf: - type: integer - type: 'null' title: Num Clusters num_active_sessions: anyOf: - type: integer - type: 'null' title: Num Active Sessions last_state_change: anyOf: - type: string format: date-time - type: 'null' title: Last State Change total_dbus: anyOf: - type: number - type: 'null' title: Total Dbus estimated_cost: anyOf: - type: number - type: 'null' title: Estimated Cost tags: anyOf: - additionalProperties: true type: object - type: 'null' title: Tags median_queueing_time_ms: anyOf: - type: number - type: 'null' title: Median Queueing Time Ms median_execution_time_ms: anyOf: - type: number - type: 'null' title: Median Execution Time Ms median_total_time_ms: anyOf: - type: number - type: 'null' title: Median Total Time Ms active_seconds: anyOf: - type: integer - type: 'null' title: Active Seconds idle_seconds: anyOf: - type: integer - type: 'null' title: Idle Seconds query_count: anyOf: - type: integer - type: 'null' title: Query Count realized_savings: anyOf: - type: number - type: 'null' title: Realized Savings estimated_annualized_savings: anyOf: - type: number - type: 'null' title: Estimated Annualized Savings is_auto_tune_enabled: anyOf: - type: string - type: 'null' title: Is Auto Tune Enabled type: object required: - warehouse_id - warehouse_name - workspace_id title: WarehouseSummary description: Summary information for a warehouse. ClusterUtilizationResponse: properties: cluster_id: type: string title: Cluster Id utilization: $ref: '#/components/schemas/ClusterUtilization' timeseries: items: $ref: '#/components/schemas/ClusterUtilizationPoint' type: array title: Timeseries default: [] type: object required: - cluster_id - utilization title: ClusterUtilizationResponse description: Response for cluster utilization metrics. app__schemas__databricks__cluster__OversizedClustersResponse: properties: clusters: items: $ref: '#/components/schemas/OversizedCluster' type: array title: Clusters cpu_threshold: type: number title: Cpu Threshold memory_threshold: type: number title: Memory Threshold type: object required: - clusters - cpu_threshold - memory_threshold title: OversizedClustersResponse description: Response for oversized clusters. WorkspacesResponse: properties: workspaces: items: $ref: '#/components/schemas/WorkspaceSummary' type: array title: Workspaces description: List of workspaces type: object required: - workspaces title: WorkspacesResponse description: Response model for workspaces list endpoint. app__schemas__databricks__cost__CostBreakdownResponse: properties: breakdown: items: $ref: '#/components/schemas/CostBreakdownItem' type: array title: Breakdown description: Cost breakdown items group_by: type: string title: Group By description: Grouping dimension (sku/workspace/product) total_dbus: type: number title: Total Dbus description: Total DBUs across all groups total_cost: type: number title: Total Cost description: Total estimated cost type: object required: - breakdown - group_by - total_dbus - total_cost title: CostBreakdownResponse description: Response model for cost breakdown endpoint. AIFunctionUsageItem: properties: usage_type: type: string title: Usage Type description: 'Type of usage: ''MV Refresh'', ''Notebook'', ''SQL Query'', ''Job'', ''DDL'', ''Ad-hoc''' usage_identity: type: string title: Usage Identity description: 'Identity of the usage source: MV name, notebook ID, job ID, etc.' job_name: anyOf: - type: string - type: 'null' title: Job Name description: Resolved job name from dbx_job_inventory (for Job type) executed_by: anyOf: - type: string - type: 'null' title: Executed By description: User who executed the query source_identifier: anyOf: - type: string - type: 'null' title: Source Identifier description: 'Best available identifier: statement_id, job_id, notebook_id, etc.' total_requests: type: integer title: Total Requests description: Total number of invocations default: 0 days_active: type: integer title: Days Active description: Number of distinct days with activity default: 0 last_used: anyOf: - type: string - type: 'null' title: Last Used description: Most recent invocation timestamp type: object required: - usage_type - usage_identity title: AIFunctionUsageItem description: A usage source for an AI function endpoint. UnifiedAIMLEndpointsListResponse: properties: endpoints: items: $ref: '#/components/schemas/UnifiedAIMLEndpointItem' type: array title: Endpoints description: Mixed list of model serving, vector search and AI gateway endpoints pagination: $ref: '#/components/schemas/app__schemas__databricks__ai_services__PaginationInfo' description: Pagination info type: object required: - pagination title: UnifiedAIMLEndpointsListResponse description: Response for the unified AI/ML endpoints list. JobRunStats: properties: total_runs: type: integer title: Total Runs default: 0 successful_runs: type: integer title: Successful Runs default: 0 failed_runs: type: integer title: Failed Runs default: 0 success_rate: type: number title: Success Rate default: 0 failure_rate: anyOf: - type: number - type: 'null' title: Failure Rate avg_duration_seconds: type: number title: Avg Duration Seconds default: 0 min_duration_seconds: type: number title: Min Duration Seconds default: 0 max_duration_seconds: type: number title: Max Duration Seconds default: 0 estimated_cost_usd: anyOf: - type: number - type: 'null' title: Estimated Cost Usd type: object title: JobRunStats description: Run statistics for a job. FailingJob: properties: job_id: type: string title: Job Id job_name: type: string title: Job Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name total_runs: type: integer title: Total Runs failed_runs: type: integer title: Failed Runs failure_rate: type: number title: Failure Rate last_failure_time: anyOf: - type: string format: date-time - type: 'null' title: Last Failure Time type: object required: - job_id - job_name - workspace_id - total_runs - failed_runs - failure_rate title: FailingJob description: A job with high failure rate. StatementTypeBreakdownResponse: properties: breakdown: items: $ref: '#/components/schemas/StatementTypeStats' type: array title: Breakdown type: object required: - breakdown title: StatementTypeBreakdownResponse description: Response for statement type breakdown. SavingsOverallResponse: properties: total_savings: type: number title: Total Savings description: Total savings (autonomous + assisted) total_autonomous_savings: type: number title: Total Autonomous Savings description: Autonomous savings (always 0 for Databricks) default: 0 total_assisted_savings: type: number title: Total Assisted Savings description: Assisted savings from opportunities default: 0 min_total_autonomous_savings: type: number title: Min Total Autonomous Savings description: Min autonomous savings range default: 0 max_total_autonomous_savings: type: number title: Max Total Autonomous Savings description: Max autonomous savings range default: 0 time_saved: type: string title: Time Saved description: Total time saved default: 0 days currency: type: string title: Currency description: Currency code default: USD type: object required: - total_savings title: SavingsOverallResponse description: Response model for overall savings endpoint. CloudCostTrendRow: properties: period: type: string title: Period description: Bucket start date, ``YYYY-MM-DD``. additionalProperties: true type: object required: - period title: CloudCostTrendRow description: "One stacked-bar period of cloud infrastructure cost by category.\n\nBesides ``period`` the row carries, as extra keys:\n * one float per segment in :data:`CLOUD_COST_SEGMENTS` (e.g. ``Compute``),\n * ``percentage_`` — % change vs the previous period (or ``None``),\n * :data:`CLOUD_TOTAL_KEY` — the row total (sum of all segments),\n * ``percentage_total`` — % change of the total vs the previous period." DatabricksServicePrincipalConfig: properties: prefixes: items: type: string type: array maxItems: 20 title: Prefixes description: Identifier prefixes (e.g. 'svc', 'sa_') that mark a service principal. regexes: items: type: string type: array maxItems: 20 title: Regexes description: Regexes (RE2-compatible) that mark a service principal. The same pattern runs in Python `re` and ClickHouse `match()`, so RE2-only-incompatible syntax (lookaround, backreferences, possessive quantifiers) is rejected. Should be self-anchored if exact match is desired. type: object title: DatabricksServicePrincipalConfig description: 'Tenant-configured patterns for classifying service-principal identities. The built-in application-id UUID rule is always applied in addition to these. An identity is treated as SERVICE_PRINCIPAL if it matches the UUID pattern, starts with any of ``prefixes``, or fully matches any of ``regexes``.' WarehouseEventsResponse: properties: warehouse_id: type: string title: Warehouse Id events: items: $ref: '#/components/schemas/WarehouseEvent' type: array title: Events total_count: type: integer title: Total Count type: object required: - warehouse_id - events - total_count title: WarehouseEventsResponse description: Response for warehouse events. EngineTypeTrendsResponse: properties: trends: items: $ref: '#/components/schemas/EngineTypeTrendItem' type: array title: Trends description: List of trend data by engine type engine_types: items: type: string type: array title: Engine Types description: Unique engine types for chart legend granularity: type: string title: Granularity description: Time granularity (day/week/month) type: object required: - trends - engine_types - granularity title: EngineTypeTrendsResponse description: Response model for engine type trends endpoint. ServerlessCandidate: properties: warehouse_id: type: string title: Warehouse Id warehouse_name: type: string title: Warehouse Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name warehouse_type: anyOf: - type: string - type: 'null' title: Warehouse Type warehouse_size: anyOf: - type: string - type: 'null' title: Warehouse Size auto_stop_mins: anyOf: - type: integer - type: 'null' title: Auto Stop Mins enable_serverless_compute: anyOf: - type: boolean - type: 'null' title: Enable Serverless Compute type: object required: - warehouse_id - warehouse_name - workspace_id title: ServerlessCandidate description: A warehouse that is a candidate for serverless migration. ClusterCostPoint: properties: period: type: string title: Period total_dbus: type: number title: Total Dbus default: 0 estimated_cost: type: number title: Estimated Cost default: 0 type: object required: - period title: ClusterCostPoint description: Single data point for cluster cost timeseries. JobRun: properties: run_id: type: string title: Run Id job_id: type: string title: Job Id workspace_id: type: string title: Workspace Id instance_id: anyOf: - type: integer - type: 'null' title: Instance Id run_name: anyOf: - type: string - type: 'null' title: Run Name result_state: anyOf: - type: string - type: 'null' title: Result State start_time: type: string format: date-time title: Start Time end_time: anyOf: - type: string format: date-time - type: 'null' title: End Time duration_seconds: anyOf: - type: number - type: 'null' title: Duration Seconds trigger_type: anyOf: - type: string - type: 'null' title: Trigger Type trigger_display: anyOf: - type: string - type: 'null' title: Trigger Display run_type: anyOf: - type: string - type: 'null' title: Run Type cost_cents: anyOf: - type: number - type: 'null' title: Cost Cents type: object required: - run_id - job_id - workspace_id - start_time title: JobRun description: A single job run. TrackedAssistedSavingsResponse: properties: total_assisted_savings: type: number title: Total Assisted Savings description: Total money saved from implemented opportunities default: 0 time_saved: type: string title: Time Saved description: Human-readable time savings default: 0 days opportunities: type: integer title: Opportunities description: Count of opportunities contributing to savings default: 0 currency: type: string title: Currency description: Currency code default: USD type: object title: TrackedAssistedSavingsResponse description: Response model for tracked assisted savings from PostgreSQL (parity with Snowflake). SavingsStatValue: properties: value: type: number title: Value default: 0.0 display: type: boolean title: Display default: true type: object title: SavingsStatValue description: 'A single stat-card value with a display-gate flag. Mirrors the Snowflake infra page''s ``top_info`` item shape (``TopInfoItem`` in ``app/schemas/summary_page.py``) so the FE''s existing stat-card component logic ports over unchanged: ``display`` lets a backend that can''t cleanly compute a figure hide the card instead of showing a misleading 0.' RollbackInfo: properties: performed: type: boolean title: Performed default: false needs_confirmation: type: boolean title: Needs Confirmation default: false active_run_ids: anyOf: - items: type: integer type: array - type: 'null' title: Active Run Ids reason: anyOf: - type: string - type: 'null' title: Reason type: object title: RollbackInfo description: "Surfaced on the toggle response when the user disables an APPLIED\nrecommendation (sync rollback path, v2.5 §15).\n\n- ``performed=True`` → the cluster was reverted and audit/config were\n updated. The toggle is now OFF.\n- ``needs_confirmation=True`` → the BE detected active runs on the\n job. No DB writes happened. The FE should show an interstitial\n (\"kill {N} running runs and roll back?\"); on confirm, re-call the\n endpoint with ``force=true``." PaginatedJobNamesResponse: properties: items: items: type: string type: array title: Items page: type: integer title: Page description: Current page number (1-indexed) default: 1 size: type: integer title: Size description: Items per page default: 20 total: type: integer title: Total description: Total number of matching job names default: 0 type: object title: PaginatedJobNamesResponse description: Paginated list of distinct job names. FailedQueriesResponse: properties: queries: items: $ref: '#/components/schemas/QueryRecord' type: array title: Queries total_count: type: integer title: Total Count type: object required: - queries - total_count title: FailedQueriesResponse description: Response for failed queries. CostCategoryItem: properties: category: $ref: '#/components/schemas/CategoryName' description: Category identifier (e.g. ``clusters``, ``sql_warehouse``) label: type: string title: Label description: Display label for the category (e.g. ``Clusters``, ``SQL Warehouse``). Matches the legend label used by ``/cost/trends/by-product?category=total``. total_dbus: type: number title: Total Dbus description: Total DBUs for this category estimated_cost: type: number title: Estimated Cost description: Estimated cost for this category pct_of_total: type: number title: Pct Of Total description: Share of the overall ``estimated_cost`` (0–100, one decimal). Sums to ~100 across the breakdown. type: object required: - category - label - total_dbus - estimated_cost - pct_of_total title: CostCategoryItem description: 'Per-category cost breakdown item used by ``/cost/overview``. Mirrors the 5-spec-group categorisation that drives the tabbed cost UI. ``category`` matches the value the FE sends to ``/cost/trends/by-product?category=…``.' FailingJobsResponse: properties: jobs: items: $ref: '#/components/schemas/FailingJob' type: array title: Jobs min_failure_rate: type: number title: Min Failure Rate total_count: type: integer title: Total Count type: object required: - jobs - min_failure_rate - total_count title: FailingJobsResponse description: Response for failing jobs. WarehouseQueryMetricsTimelineResponse: properties: warehouse_id: type: string title: Warehouse Id granularity: type: string title: Granularity timeline: items: $ref: '#/components/schemas/WarehouseQueryMetricsTimelinePoint' type: array title: Timeline default: [] ch_data_through: anyOf: - type: string - type: 'null' title: Ch Data Through live_tail_used: type: boolean title: Live Tail Used default: false type: object required: - warehouse_id - granularity title: WarehouseQueryMetricsTimelineResponse description: 'Response for the SQL warehouse Monitoring page''s metrics timeline. ``ch_data_through`` is the observed ClickHouse-mirror freshness cutover used to route the query-history source between ClickHouse and a live Databricks-system-tables tail (``None`` if that mirror has never ingested a row for this tenant). ``live_tail_used`` is true if the query-metrics source actually pulled rows from the live tail for this response. Additive fields — the frontend schema tolerates extra optional keys.' JobTaskRun: properties: task_key: type: string title: Task Key job_run_id: type: string title: Job Run Id task_run_id: anyOf: - type: string - type: 'null' title: Task Run Id result_state: anyOf: - type: string - type: 'null' title: Result State start_time: anyOf: - type: string format: date-time - type: 'null' title: Start Time end_time: anyOf: - type: string format: date-time - type: 'null' title: End Time total_duration_seconds: anyOf: - type: number - type: 'null' title: Total Duration Seconds run_count: anyOf: - type: integer - type: 'null' title: Run Count cost_cents: anyOf: - type: number - type: 'null' title: Cost Cents cluster_name: anyOf: - type: string - type: 'null' title: Cluster Name type: object required: - task_key - job_run_id title: JobTaskRun description: A single task run within a job run. UnifiedAIMLEndpointItem: properties: service: type: string title: Service description: 'Routing discriminator: ''model_serving'' | ''vector_search'' | ''ai_gateway''' entity_type: anyOf: - type: string - type: 'null' title: Entity Type description: Leaf type used for the Type column / filter. One of the five model_serving entity types, 'VECTOR_SEARCH', or 'AI_GATEWAY'. Null when a model_serving endpoint has no served_entities row (rendered as '-' by the FE) — we don't guess a type. endpoint_name: type: string title: Endpoint Name description: Endpoint name endpoint_id: anyOf: - type: string - type: 'null' title: Endpoint Id description: Endpoint ID total_dbus: type: number title: Total Dbus description: Total DBUs consumed default: 0 total_cost_usd: type: number title: Total Cost Usd description: Total cost in USD default: 0 created_by: anyOf: - type: string - type: 'null' title: Created By description: Creator email (model_serving) total_requests: anyOf: - type: integer - type: 'null' title: Total Requests description: Total requests (model_serving) total_tokens: anyOf: - type: integer - type: 'null' title: Total Tokens description: Total tokens (model_serving) unique_users: anyOf: - type: integer - type: 'null' title: Unique Users description: Unique users (model_serving) days_active: anyOf: - type: integer - type: 'null' title: Days Active description: Days with activity (vector_search / ai_gateway) first_seen: anyOf: - type: string - type: 'null' title: First Seen description: First seen date (vector_search / ai_gateway) last_activity: anyOf: - type: string - type: 'null' title: Last Activity description: Last activity date (vector_search / ai_gateway) type: object required: - service - endpoint_name title: UnifiedAIMLEndpointItem description: "Unified endpoint row covering Model Serving, Vector Search and AI Gateway.\n\n``entity_type`` is the single leaf-level discriminator the table renders in\nits Type column and the FE filters on:\n\n- Model Serving rows: one of ``FOUNDATION_MODEL``, ``CUSTOM_MODEL``,\n ``AI_FUNCTION``, ``EXTERNAL_MODEL``, ``FEATURE_SPEC``.\n- Vector Search rows: ``VECTOR_SEARCH``.\n- AI Gateway rows: ``AI_GATEWAY``.\n\n``service`` stays on each row as the routing discriminator the FE uses on\nrow-click (model-serving / vector-search / ai-gateway detail pages); it is\nno longer a filter input. Fields that don't apply to a row's service are\nnull." WarehouseCostTrendsResponse: properties: trends: items: $ref: '#/components/schemas/WarehouseCostTrendItem' type: array title: Trends description: Cost trends broken down by warehouse type warehouse_types: items: type: string type: array title: Warehouse Types description: List of warehouse types present in the data granularity: type: string title: Granularity description: Time granularity (day, week, month) total_dbus: type: number title: Total Dbus description: Total DBUs in period default: 0 total_cost: type: number title: Total Cost description: Total estimated cost default: 0 type: object required: - trends - warehouse_types - granularity title: WarehouseCostTrendsResponse description: Response for warehouse cost trends (aggregated across all warehouses). PaginatedNamesResponse: properties: items: items: type: string type: array title: Items page: type: integer title: Page description: Current page number (1-indexed) default: 1 size: type: integer title: Size description: Items per page default: 20 total: type: integer title: Total description: Total number of matching names default: 0 type: object title: PaginatedNamesResponse description: Paginated list of distinct filter-option names. SparkStageSummary: properties: stage_id: type: integer title: Stage Id tasks: type: integer title: Tasks default: 0 duration_ms: type: integer title: Duration Ms default: 0 type: object required: - stage_id title: SparkStageSummary description: Summary of a single Spark stage. JobTaskInventoryItem: properties: task_key: type: string title: Task Key depends_on_keys: items: type: string type: array title: Depends On Keys default: [] current_worker_node_type: anyOf: - type: string - type: 'null' title: Current Worker Node Type current_driver_node_type: anyOf: - type: string - type: 'null' title: Current Driver Node Type current_min_workers: anyOf: - type: integer - type: 'null' title: Current Min Workers current_max_workers: anyOf: - type: integer - type: 'null' title: Current Max Workers cluster_name: anyOf: - type: string - type: 'null' title: Cluster Name type: object required: - task_key title: JobTaskInventoryItem description: 'Static task definition entry from ``dbx_job_tasks_inventory``, enriched with the most-recent observed cluster spec joined from ``dbx_job_task_run_timeline`` × ``dbx_compute_clusters``. All ``current_*`` fields are optional — tasks that have never run (or whose latest run carried no compute_id) come back without a cluster spec, and the FE renders the no-change card without a Current panel.' JobCreatorOption: properties: id: type: string title: Id description: Creator principal id (creator_id) name: anyOf: - type: string - type: 'null' title: Name description: Display name (creator_user_name); falls back to id when missing type: object required: - id title: JobCreatorOption description: A creator filter option exposing both the principal id and a display name. CloudCostProjectionRow: properties: period: type: string title: Period description: Month start date, ``YYYY-MM-01``. total: type: number title: Total description: Sum of the actual segment values. total_estimate: type: number title: Total Estimate description: Sum of the projected (estimate) segment values. is_estimate: type: boolean title: Is Estimate description: True only for fully-future months (past + current are False). additionalProperties: true type: object required: - period - total - total_estimate - is_estimate title: CloudCostProjectionRow description: 'One calendar month of actual + projected cloud cost (Future State tab). Past months are fully actual (```` = month total, ``_estimate`` = 0). The current month splits into month-to-date actual (````) + run-rate projected remainder (``_estimate``). Future months are fully projected (```` = 0, ``_estimate`` = run-rate). ``percentage_*`` fields compare each segment''s full (actual + estimate) value to the prior month.' WarehouseCostPoint: properties: period: type: string title: Period total_dbus: type: number title: Total Dbus default: 0 estimated_cost: type: number title: Estimated Cost default: 0 type: object required: - period title: WarehouseCostPoint description: Single data point for warehouse cost timeseries. UserTrendsResponse: properties: user_name: type: string title: User Name trends: items: $ref: '#/components/schemas/UserTrendPoint' type: array title: Trends granularity: type: string title: Granularity type: object required: - user_name - trends - granularity title: UserTrendsResponse description: Response for user query trends. SparkTaskStatsResponse: properties: stages: items: $ref: '#/components/schemas/SparkTaskStats' type: array title: Stages total_count: type: integer title: Total Count description: Total number of stages type: object required: - stages - total_count title: SparkTaskStatsResponse description: Response for per-stage task statistics. ClusterDetail: properties: cluster_id: type: string title: Cluster Id cluster_name: type: string title: Cluster Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name instance_id: anyOf: - type: integer - type: 'null' title: Instance Id driver_node_type: anyOf: - type: string - type: 'null' title: Driver Node Type worker_node_type: anyOf: - type: string - type: 'null' title: Worker Node Type worker_count: anyOf: - type: integer - type: 'null' title: Worker Count min_autoscale_workers: anyOf: - type: integer - type: 'null' title: Min Autoscale Workers max_autoscale_workers: anyOf: - type: integer - type: 'null' title: Max Autoscale Workers cluster_source: anyOf: - type: string - type: 'null' title: Cluster Source compute_type: anyOf: - type: string - type: 'null' title: Compute Type description: Derived compute classification ('all_purpose', 'jobs', 'dlt'). The Auto Tune tab is only available when this is 'all_purpose'. state: anyOf: - type: string - type: 'null' title: State last_state_change: anyOf: - type: string format: date-time - type: 'null' title: Last State Change creator_user_name: anyOf: - type: string - type: 'null' title: Creator User Name spark_version: anyOf: - type: string - type: 'null' title: Spark Version runtime_engine: anyOf: - type: string - type: 'null' title: Runtime Engine enable_photon: anyOf: - type: boolean - type: 'null' title: Enable Photon description: Whether the cluster runs a Photon runtime, derived from the Databricks runtime version (dbr_version). None when the runtime version is unknown. autotermination_minutes: anyOf: - type: integer - type: 'null' title: Autotermination Minutes type: object required: - cluster_id - cluster_name - workspace_id title: ClusterDetail description: Detailed information for a cluster. ClustersResponse: properties: clusters: items: $ref: '#/components/schemas/ClusterSummary' type: array title: Clusters total_count: type: integer title: Total Count description: Total number of clusters page: type: integer title: Page description: Current page number default: 1 page_size: type: integer title: Page Size description: Number of items per page default: 20 total_pages: type: integer title: Total Pages description: Total number of pages default: 1 type: object required: - clusters - total_count title: ClustersResponse description: Response for listing clusters. DeploymentTypeBreakdown: properties: deployment_type: type: string title: Deployment Type description: 'Deployment type: serverless or provisioned' total_dbus: type: number title: Total Dbus description: Total DBUs for this deployment type estimated_cost: type: number title: Estimated Cost description: Estimated cost for this deployment type pct_of_total: type: number title: Pct Of Total description: Percentage of total cost type: object required: - deployment_type - total_dbus - estimated_cost - pct_of_total title: DeploymentTypeBreakdown description: Breakdown by deployment type (serverless vs provisioned). ProductTrendItem: properties: period: type: string title: Period description: Period label (date or week/month) product: type: string title: Product description: Product name (JOBS, SQL, etc.) total_dbus: type: number title: Total Dbus description: Total DBUs for this period+product estimated_cost: type: number title: Estimated Cost description: Estimated cost for this period+product type: object required: - period - product - total_dbus - estimated_cost title: ProductTrendItem description: Single data point for product trends (period + product combination). app__schemas__databricks__ai_services__PaginationInfo: properties: total: type: integer title: Total description: Total number of items limit: type: integer title: Limit description: Items per page offset: type: integer title: Offset description: Current offset type: object required: - total - limit - offset title: PaginationInfo description: Pagination information. OpportunitiesSummary: properties: oversized_clusters: type: integer title: Oversized Clusters default: 0 serverless_candidates: type: integer title: Serverless Candidates default: 0 high_failure_jobs: type: integer title: High Failure Jobs default: 0 expensive_queries: type: integer title: Expensive Queries default: 0 total_opportunities: type: integer title: Total Opportunities default: 0 type: object title: OpportunitiesSummary description: Summary of all opportunity types. app__schemas__databricks__opportunities__ServerlessCandidatesResponse: properties: opportunities: items: $ref: '#/components/schemas/ServerlessCandidateOpportunity' type: array title: Opportunities total_count: type: integer title: Total Count max_auto_stop_mins: type: integer title: Max Auto Stop Mins type: object required: - opportunities - total_count - max_auto_stop_mins title: ServerlessCandidatesResponse description: Response for serverless candidates opportunities. CostTotalEstimateResponse: properties: total: type: number title: Total description: Total cost (actual + projected) currency: type: string title: Currency description: Currency code default: USD category: anyOf: - $ref: '#/components/schemas/CategoryName' - type: 'null' description: Category the estimate was computed for segment_breakdown: items: $ref: '#/components/schemas/EstimateSegmentTotalItem' type: array title: Segment Breakdown description: Per-segment combined (actual + projected) cost breakdown for the requested ``category``, in canonical legend order. type: object required: - total title: CostTotalEstimateResponse description: Response model for total cost estimate endpoint. QueryFilterOptions: properties: statement_types: items: type: string type: array title: Statement Types user_names: items: type: string type: array title: User Names warehouses: items: $ref: '#/components/schemas/app__schemas__databricks__filters__FilterOption' type: array title: Warehouses computes: items: $ref: '#/components/schemas/ComputeFilterOption' type: array title: Computes workspaces: items: $ref: '#/components/schemas/app__schemas__databricks__filters__FilterOption' type: array title: Workspaces type: object title: QueryFilterOptions description: Filter options for queries. HighFailureJobsResponse: properties: opportunities: items: $ref: '#/components/schemas/HighFailureJobOpportunity' type: array title: Opportunities total_count: type: integer title: Total Count min_failure_rate: type: number title: Min Failure Rate type: object required: - opportunities - total_count - min_failure_rate title: HighFailureJobsResponse description: Response for high failure jobs opportunities. DatabricksConnectionTestRequestOAuthM2M: properties: type: type: string title: Type default: databricks server_hostname: type: string maxLength: 256 minLength: 1 pattern: ^(https?://)?[a-zA-Z0-9][a-zA-Z0-9\-]*(\.[a-zA-Z0-9\-]+)*\.(cloud\.databricks\.com|azuredatabricks\.net|gcp\.databricks\.com)/?$ title: Server Hostname description: Databricks workspace hostname. Must end in cloud.databricks.com, azuredatabricks.net, or gcp.databricks.com. http_path: type: string maxLength: 256 minLength: 1 pattern: ^/sql/[0-9.]+/warehouses/[A-Za-z0-9]+$ title: Http Path description: SQL warehouse HTTP path name: type: string title: Name default: connection_test auth_type: type: string const: oauth_m2m title: Auth Type client_id: type: string minLength: 1 title: Client Id client_secret: type: string minLength: 1 title: Client Secret azure_tenant_id: anyOf: - type: string minLength: 1 - type: 'null' title: Azure Tenant Id type: object required: - server_hostname - http_path - auth_type - client_id - client_secret title: DatabricksConnectionTestRequestOAuthM2M ToggleAutoTuneResponse: properties: auto_tune_mode: anyOf: - type: string - type: 'null' title: Auto Tune Mode audit_event_id: anyOf: - type: integer - type: 'null' title: Audit Event Id entity_name: anyOf: - type: string - type: 'null' title: Entity Name preflight: $ref: '#/components/schemas/ToggleAutoTunePreflight' rollback: $ref: '#/components/schemas/RollbackInfo' partial_failures: anyOf: - items: $ref: '#/components/schemas/CascadePartialFailure' type: array - type: 'null' title: Partial Failures description: Populated only on cascade calls (``scope=all_tasks`` or ``scope=specific_tasks``) when one or more per-task applies raised. ``None`` for single-task toggles or fully-successful cascades. Empty list is never returned — None means no failures occurred. type: object title: ToggleAutoTuneResponse description: 'Response body for the toggle endpoint. Returns the resolved ``auto_tune_mode`` so the FE can re-render the toggle position from the response without a second round-trip (though the FE still invalidates and refetches the list query so the full row state stays consistent).' AIMLEndpointNamesResponse: properties: items: items: type: string type: array title: Items description: Distinct endpoint names on this page page: type: integer title: Page description: Current page number (1-indexed) default: 1 size: type: integer title: Size description: Items per page default: 20 total: type: integer title: Total description: Total number of matching names default: 0 total_pages: type: integer title: Total Pages description: Total number of pages default: 1 type: object title: AIMLEndpointNamesResponse description: 'Paginated, searchable list of distinct endpoint names. Backs the endpoint-name filter dropdown: the full set of names is too large to ship at once, so the FE searches server-side (substring ``search``) and pages through matches. The selected name(s) are then sent back to ``GET /ai-ml-services/endpoints`` as the exact ``endpoint_name`` filter.' SparkSqlFlags: properties: sql_id: type: integer title: Sql Id aqe: type: boolean title: Aqe default: false joins: type: integer title: Joins default: 0 scans: type: integer title: Scans default: 0 exchanges: type: integer title: Exchanges default: 0 collect_to_driver: type: boolean title: Collect To Driver default: false no_partition_pruning: type: boolean title: No Partition Pruning default: false duplicate_scan: type: boolean title: Duplicate Scan default: false excessive_shuffle: type: boolean title: Excessive Shuffle default: false cartesian_join: type: boolean title: Cartesian Join default: false broadcast_nested_loop: type: boolean title: Broadcast Nested Loop default: false global_sort: type: boolean title: Global Sort default: false type: object required: - sql_id title: SparkSqlFlags description: Flags/anti-patterns detected for a SQL execution. AutoTuneHistoryResponse: properties: items: items: $ref: '#/components/schemas/AutoTuneHistoryEvent' type: array title: Items total_count: type: integer title: Total Count default: 0 page: type: integer title: Page default: 1 page_size: type: integer title: Page Size default: 20 total_pages: type: integer title: Total Pages default: 1 type: object required: - items title: AutoTuneHistoryResponse description: 'Paginated response wrapper for the Auto Tune history endpoint. Matches the existing Databricks response convention (``total_count`` / ``page`` / ``page_size`` / ``total_pages``) rather than ``fastapi_pagination.Page[T]`` — none of the other Databricks endpoints in this router use the latter.' ClusterAutoTuneRecommendationsResponse: properties: recommendations: items: $ref: '#/components/schemas/ClusterAutoTuneRecommendationItem' type: array title: Recommendations total_count: type: integer title: Total Count description: Number of active recommendations for this cluster. default: 0 type: object required: - recommendations title: ClusterAutoTuneRecommendationsResponse description: List response for cluster Auto Tune recommendations. WarehousesResponse: properties: warehouses: items: $ref: '#/components/schemas/WarehouseSummary' type: array title: Warehouses total_count: type: integer title: Total Count description: Total number of warehouses page: type: integer title: Page description: Current page number default: 1 page_size: type: integer title: Page Size description: Items per page default: 20 total_pages: type: integer title: Total Pages description: Total number of pages default: 1 type: object required: - warehouses - total_count title: WarehousesResponse description: Response for listing warehouses. ClusterSummary: properties: cluster_id: type: string title: Cluster Id cluster_name: type: string title: Cluster Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name instance_id: anyOf: - type: integer - type: 'null' title: Instance Id driver_node_type: anyOf: - type: string - type: 'null' title: Driver Node Type worker_node_type: anyOf: - type: string - type: 'null' title: Worker Node Type worker_count: anyOf: - type: integer - type: 'null' title: Worker Count min_autoscale_workers: anyOf: - type: integer - type: 'null' title: Min Autoscale Workers max_autoscale_workers: anyOf: - type: integer - type: 'null' title: Max Autoscale Workers cluster_source: anyOf: - type: string - type: 'null' title: Cluster Source compute_type: anyOf: - type: string - type: 'null' title: Compute Type description: 'Derived compute classification: ''all_purpose'', ''jobs'', or ''serverless''.' enable_photon: anyOf: - type: boolean - type: 'null' title: Enable Photon description: Whether the cluster runs a Photon runtime, derived from the runtime version. Null when the version is unknown. state: anyOf: - type: string - type: 'null' title: State last_state_change: anyOf: - type: string format: date-time - type: 'null' title: Last State Change avg_cpu: type: number title: Avg Cpu default: 0 avg_memory: type: number title: Avg Memory default: 0 sample_count: type: integer title: Sample Count default: 0 total_cost: type: number title: Total Cost default: 0 realized_savings: anyOf: - type: number - type: 'null' title: Realized Savings estimated_annualized_savings: anyOf: - type: number - type: 'null' title: Estimated Annualized Savings is_auto_tune_enabled: anyOf: - type: string - type: 'null' title: Is Auto Tune Enabled type: object required: - cluster_id - cluster_name - workspace_id title: ClusterSummary description: Summary information for a cluster. app__schemas__databricks__user__UsersResponse: properties: users: items: $ref: '#/components/schemas/DatabricksUser' type: array title: Users total_count: type: integer title: Total Count description: Total number of users page: type: integer title: Page description: Current page number default: 1 page_size: type: integer title: Page Size description: Items per page default: 20 total_pages: type: integer title: Total Pages description: Total number of pages default: 1 type: object required: - users - total_count title: UsersResponse description: Response for listing users. SparkApplicationInfo: properties: application_id: type: string title: Application Id cluster_id: anyOf: - type: string - type: 'null' title: Cluster Id application_name: anyOf: - type: string - type: 'null' title: Application Name start_time: anyOf: - type: integer - type: 'null' title: Start Time end_time: anyOf: - type: integer - type: 'null' title: End Time duration_ms: anyOf: - type: integer - type: 'null' title: Duration Ms spark_version: anyOf: - type: string - type: 'null' title: Spark Version total_jobs: type: integer title: Total Jobs default: 0 total_stages: type: integer title: Total Stages default: 0 total_tasks: type: integer title: Total Tasks default: 0 total_sql_executions: type: integer title: Total Sql Executions default: 0 run_id: anyOf: - type: string - type: 'null' title: Run Id run_start_time: anyOf: - type: string - type: 'null' title: Run Start Time type: object required: - application_id title: SparkApplicationInfo description: Information about the resolved Spark application. SparkOpportunity: properties: opportunity_id: type: string title: Opportunity Id insight_type: type: string title: Insight Type default: '' name: type: string title: Name default: '' description: type: string title: Description default: '' severity: type: string title: Severity default: medium application_id: type: string title: Application Id default: '' cluster_id: type: string title: Cluster Id default: '' cost_savings_min: type: number title: Cost Savings Min default: 0.0 cost_savings_max: type: number title: Cost Savings Max default: 0.0 time_savings_min: type: number title: Time Savings Min default: 0.0 time_savings_max: type: number title: Time Savings Max default: 0.0 stage_ids: items: type: integer type: array title: Stage Ids default: [] code_links: items: $ref: '#/components/schemas/SparkOpportunityCodeLink' type: array title: Code Links default: [] type: object required: - opportunity_id title: SparkOpportunity description: A single optimization opportunity for a Spark job with code linkage. SparkTasksPaginatedResponse: properties: items: items: $ref: '#/components/schemas/SparkTaskDetail' type: array title: Items default: [] total_count: type: integer title: Total Count default: 0 page: type: integer title: Page default: 1 page_size: type: integer title: Page Size default: 20 total_pages: type: integer title: Total Pages default: 1 type: object title: SparkTasksPaginatedResponse description: Paginated response for individual Spark tasks. TopUsersByDataReadResponse: properties: users: items: $ref: '#/components/schemas/TopUserByDataRead' type: array title: Users type: object required: - users title: TopUsersByDataReadResponse description: Response for top users by data read. ExpensiveQueriesResponse: properties: opportunities: items: $ref: '#/components/schemas/ExpensiveQueryOpportunity' type: array title: Opportunities total_count: type: integer title: Total Count type: object required: - opportunities - total_count title: ExpensiveQueriesResponse description: Response for expensive queries opportunities. JobRunTrendsResponse: properties: trends: items: $ref: '#/components/schemas/JobRunTrendPoint' type: array title: Trends granularity: type: string title: Granularity type: object required: - trends - granularity title: JobRunTrendsResponse description: Response for job run trends. ClusterAutoTuneRecommendationItem: properties: entity_id: type: string title: Entity Id entity_name: anyOf: - type: string - type: 'null' title: Entity Name rec_type: type: string title: Rec Type rec_source: anyOf: - type: string - type: 'null' title: Rec Source status: anyOf: - type: string - type: 'null' title: Status owned_by: anyOf: - type: string - type: 'null' title: Owned By workspace_id: anyOf: - type: string - type: 'null' title: Workspace Id current_config: additionalProperties: true type: object title: Current Config recommended_config: additionalProperties: true type: object title: Recommended Config current_cost_per_hr_dbu: anyOf: - type: number - type: 'null' title: Current Cost Per Hr Dbu recommended_cost_per_hr_dbu: anyOf: - type: number - type: 'null' title: Recommended Cost Per Hr Dbu estimated_savings_pct: anyOf: - type: number - type: 'null' title: Estimated Savings Pct recommendation_summary: anyOf: - type: string - type: 'null' title: Recommendation Summary reasoning: anyOf: - type: string - type: 'null' title: Reasoning inference_start_date: anyOf: - type: string format: date-time - type: 'null' title: Inference Start Date inference_end_date: anyOf: - type: string format: date-time - type: 'null' title: Inference End Date enabled: type: boolean title: Enabled default: false latest_action_event_type: anyOf: - type: string - type: 'null' title: Latest Action Event Type applied_config: anyOf: - additionalProperties: true type: object - type: 'null' title: Applied Config type: object required: - entity_id - rec_type title: ClusterAutoTuneRecommendationItem description: 'A single all-purpose-cluster recommendation from ``databricks_auto_tune_recommendation`` (``entity_type=''all_purpose''``). The FE renders one drawer toggle per ``rec_type``. ``enabled`` is the resolved sub-toggle state — read from the cluster''s ``databricks_auto_tune_configuration.configuration`` JSONB (``resize_enabled`` / ``auto_terminate_enabled``).' IdleClusterOpportunity: properties: cluster_id: type: string title: Cluster Id cluster_name: type: string title: Cluster Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name state: type: string title: State last_state_change: type: string format: date-time title: Last State Change worker_count: anyOf: - type: integer - type: 'null' title: Worker Count driver_node_type: anyOf: - type: string - type: 'null' title: Driver Node Type worker_node_type: anyOf: - type: string - type: 'null' title: Worker Node Type type: object required: - cluster_id - cluster_name - workspace_id - state - last_state_change title: IdleClusterOpportunity description: An idle cluster opportunity. EndpointCallerItem: properties: job_id: anyOf: - type: string - type: 'null' title: Job Id description: Job ID from Lakeflow/Workflows job_name: anyOf: - type: string - type: 'null' title: Job Name description: Job name notebook_id: anyOf: - type: string - type: 'null' title: Notebook Id description: Notebook ID if called from notebook executed_by: anyOf: - type: string - type: 'null' title: Executed By description: User who executed the query (for direct queries) caller_type: type: string title: Caller Type description: 'Type of caller: ''job'', ''notebook'', or ''query''' query_count: type: integer title: Query Count description: Total number of queries/invocations default: 0 unique_queries: type: integer title: Unique Queries description: Number of unique query statements default: 0 first_execution: anyOf: - type: string - type: 'null' title: First Execution description: First execution timestamp last_execution: anyOf: - type: string - type: 'null' title: Last Execution description: Last execution timestamp days_active: type: integer title: Days Active description: Number of days with activity default: 0 avg_queries_per_day: type: number title: Avg Queries Per Day description: Average queries per active day default: 0 cost_per_inference: type: number title: Cost Per Inference description: Estimated cost per inference in the endpoint currency. The endpoint's billed cost is allocated to this caller by its share of tokens, then divided by its invocations; falls back to the flat endpoint rate (endpoint cost / total invocations) when token counts are unavailable. default: 0 type: object required: - caller_type title: EndpointCallerItem description: A job or query that calls the model serving endpoint. UserQueryStats: properties: user_name: type: string title: User Name query_count: type: integer title: Query Count avg_duration_ms: type: number title: Avg Duration Ms total_read_bytes: type: integer title: Total Read Bytes type: object required: - user_name - query_count - avg_duration_ms - total_read_bytes title: UserQueryStats description: Query statistics for a user. SparkPlanNode: properties: id: type: integer title: Id name: type: string title: Name category: type: string title: Category default: other depth: type: integer title: Depth default: 0 parent_id: type: integer title: Parent Id default: -1 detail: anyOf: - type: string - type: 'null' title: Detail type: object required: - id - name title: SparkPlanNode description: A node in the physical execution plan tree. ResourceOpportunitiesResponse: properties: opportunities: items: $ref: '#/components/schemas/ResourceOpportunity' type: array title: Opportunities total_count: type: integer title: Total Count resource_id: type: string title: Resource Id resource_type: type: integer title: Resource Type type: object required: - opportunities - total_count - resource_id - resource_type title: ResourceOpportunitiesResponse description: Response for opportunities by resource. QueryDetailResponse: properties: query: $ref: '#/components/schemas/QueryDetail' type: object required: - query title: QueryDetailResponse description: Response for query detail. UtilizationEfficiencyPoint: properties: period: type: string title: Period utilization: type: number title: Utilization description: Utilization efficiency (0-1 scale) default: 0 type: object required: - period title: UtilizationEfficiencyPoint description: Single data point for utilization efficiency timeseries. UserDetailResponse: properties: user: $ref: '#/components/schemas/UserDetail' type: object required: - user title: UserDetailResponse description: Response for user detail. SparkTaskStats: properties: stage_id: type: integer title: Stage Id task_count: type: integer title: Task Count default: 0 avg_duration_ms: type: number title: Avg Duration Ms default: 0 min_duration_ms: type: number title: Min Duration Ms default: 0 q1_duration_ms: type: number title: Q1 Duration Ms default: 0 p50_duration_ms: type: number title: P50 Duration Ms default: 0 q3_duration_ms: type: number title: Q3 Duration Ms default: 0 p90_duration_ms: type: number title: P90 Duration Ms default: 0 max_duration_ms: type: number title: Max Duration Ms default: 0 gc_ratio_pct: type: number title: Gc Ratio Pct default: 0 shuffle_read_bytes: type: number title: Shuffle Read Bytes default: 0 shuffle_write_bytes: type: number title: Shuffle Write Bytes default: 0 spill_memory_bytes: type: number title: Spill Memory Bytes default: 0 spill_disk_bytes: type: number title: Spill Disk Bytes default: 0 skew_ratio: anyOf: - type: number - type: 'null' title: Skew Ratio type: object required: - stage_id title: SparkTaskStats description: Per-stage task statistics with percentiles. HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError JobsResponse: properties: jobs: items: $ref: '#/components/schemas/JobSummary' type: array title: Jobs total_count: type: integer title: Total Count description: Total number of jobs page: type: integer title: Page description: Current page number default: 1 page_size: type: integer title: Page Size description: Items per page default: 20 total_pages: type: integer title: Total Pages description: Total number of pages default: 1 type: object required: - jobs - total_count title: JobsResponse description: Response for listing jobs. app__schemas__databricks__query__QuerySqlLineageResponse: properties: tableEdges: items: items: {} type: array type: array title: Tableedges description: List of [source, target] table edges details: additionalProperties: true type: object title: Details description: Details about each node (tables/CTEs) in the lineage nodePositions: anyOf: - additionalProperties: true type: object - type: 'null' title: Nodepositions description: Positions for each node in the visualization is_lineage: type: boolean title: Is Lineage description: Whether lineage data is available default: false is_error: type: boolean title: Is Error description: Whether there was an error parsing the SQL default: false type: object title: QuerySqlLineageResponse description: Response for SQL lineage visualization. QueriesResponse: properties: queries: items: $ref: '#/components/schemas/QueryRecord' type: array title: Queries total_count: type: integer title: Total Count description: Total number of queries returned type: object required: - queries - total_count title: QueriesResponse description: Response for listing queries. JobStatsResponse: properties: job_id: type: string title: Job Id stats: $ref: '#/components/schemas/JobRunStats' type: object required: - job_id - stats title: JobStatsResponse description: Response for job run statistics. app__schemas__databricks__filters__FilterOption: properties: id: type: string title: Id name: type: string title: Name type: object required: - id - name title: FilterOption description: Generic id/name pair for filter dropdowns. UserStatementBreakdownResponse: properties: user_name: type: string title: User Name breakdown: items: $ref: '#/components/schemas/UserStatementBreakdown' type: array title: Breakdown type: object required: - user_name - breakdown title: UserStatementBreakdownResponse description: Response for user statement breakdown. DatabricksConnectionCreatePAT: properties: type: type: string title: Type default: databricks server_hostname: type: string maxLength: 256 minLength: 1 pattern: ^(https?://)?[a-zA-Z0-9][a-zA-Z0-9\-]*(\.[a-zA-Z0-9\-]+)*\.(cloud\.databricks\.com|azuredatabricks\.net|gcp\.databricks\.com)/?$ title: Server Hostname description: Databricks workspace hostname. Must end in cloud.databricks.com, azuredatabricks.net, or gcp.databricks.com. http_path: type: string maxLength: 256 minLength: 1 pattern: ^/sql/[0-9.]+/warehouses/[A-Za-z0-9]+$ title: Http Path description: SQL warehouse HTTP path name: type: string maxLength: 64 minLength: 1 title: Name description: anyOf: - type: string maxLength: 512 - type: 'null' title: Description auth_type: type: string const: pat title: Auth Type default: pat access_token: type: string minLength: 1 title: Access Token type: object required: - server_hostname - http_path - name - access_token title: DatabricksConnectionCreatePAT SparkTaskDetail: properties: task_id: type: integer title: Task Id stage_id: type: integer title: Stage Id index: type: integer title: Index default: 0 attempt_id: type: integer title: Attempt Id default: 0 executor_id: anyOf: - type: string - type: 'null' title: Executor Id executor_run_time: type: integer title: Executor Run Time default: 0 duration_ms: type: integer title: Duration Ms default: 0 jvm_gc_time: type: integer title: Jvm Gc Time default: 0 memory_bytes_spilled: type: integer title: Memory Bytes Spilled default: 0 disk_bytes_spilled: type: integer title: Disk Bytes Spilled default: 0 shuffle_read_bytes: type: integer title: Shuffle Read Bytes default: 0 shuffle_write_bytes: type: integer title: Shuffle Write Bytes default: 0 launch_time: anyOf: - type: integer - type: 'null' title: Launch Time finish_time: anyOf: - type: integer - type: 'null' title: Finish Time failed: type: boolean title: Failed default: false killed: type: boolean title: Killed default: false speculative: type: boolean title: Speculative default: false type: object required: - task_id - stage_id title: SparkTaskDetail description: Individual Spark task detail. ProductEstimateItem: properties: date: type: string title: Date description: Period date (ISO format) product: type: string title: Product description: Product name (JOBS, SQL, etc.) category: type: string title: Category description: Category the product belongs to cost: type: number title: Cost description: Actual cost for the period default: 0 cost_estimate: type: number title: Cost Estimate description: Projected cost for the period default: 0 is_estimate: type: boolean title: Is Estimate description: Whether this is a projected period default: false percentage_change: anyOf: - type: number - type: 'null' title: Percentage Change description: Percentage change from previous period type: object required: - date - product - category title: ProductEstimateItem description: Single data point for product-level cost projection. DatabricksUser: properties: user_name: type: string title: User Name user_type: $ref: '#/components/schemas/DatabricksUserType' default: USER total_queries: type: integer title: Total Queries default: 0 successful_queries: type: integer title: Successful Queries default: 0 failed_queries: type: integer title: Failed Queries default: 0 avg_duration_ms: type: number title: Avg Duration Ms default: 0 max_duration_ms: anyOf: - type: integer - type: 'null' title: Max Duration Ms total_duration_ms: type: integer title: Total Duration Ms default: 0 total_read_bytes: type: integer title: Total Read Bytes default: 0 total_spilled_bytes: type: integer title: Total Spilled Bytes default: 0 last_query_time: anyOf: - type: string format: date-time - type: 'null' title: Last Query Time unique_statement_types: type: integer title: Unique Statement Types default: 0 total_dbus: type: number title: Total Dbus default: 0 total_cost: type: number title: Total Cost default: 0 type: object required: - user_name title: DatabricksUser description: User statistics from query history with actual billing data. AccessRuleOptionsResponse: properties: accounts: items: $ref: '#/components/schemas/AccountOption' type: array title: Accounts workspaces: items: $ref: '#/components/schemas/WorkspaceOption' type: array title: Workspaces type: object required: - accounts - workspaces title: AccessRuleOptionsResponse description: Catalog of accounts/workspaces a team's access rules can target. OversizedCluster: properties: cluster_id: type: string title: Cluster Id cluster_name: type: string title: Cluster Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name worker_count: anyOf: - type: integer - type: 'null' title: Worker Count driver_node_type: anyOf: - type: string - type: 'null' title: Driver Node Type worker_node_type: anyOf: - type: string - type: 'null' title: Worker Node Type avg_cpu: type: number title: Avg Cpu avg_memory: type: number title: Avg Memory sample_count: type: integer title: Sample Count type: object required: - cluster_id - cluster_name - workspace_id - avg_cpu - avg_memory - sample_count title: OversizedCluster description: Information about an oversized cluster. SparkSqlStageDagEntry: properties: stg: type: integer title: Stg parents: items: type: integer type: array title: Parents default: [] tasks: type: integer title: Tasks default: 0 ms: type: integer title: Ms default: 0 name: type: string title: Name default: '' type: object required: - stg title: SparkSqlStageDagEntry description: A stage entry in the SQL-to-stage DAG. FullScanQueriesResponse: properties: queries: items: $ref: '#/components/schemas/QueryRecord' type: array title: Queries min_read_bytes: type: integer title: Min Read Bytes total_count: type: integer title: Total Count type: object required: - queries - min_read_bytes - total_count title: FullScanQueriesResponse description: Response for queries with full scans. app__schemas__databricks__user__TopUser: properties: user_name: type: string title: User Name total_queries: type: integer title: Total Queries default: 0 successful_queries: type: integer title: Successful Queries default: 0 failed_queries: type: integer title: Failed Queries default: 0 type: object required: - user_name title: TopUser description: Top user summary. SparkStageMetricsPaginatedResponse: properties: items: items: $ref: '#/components/schemas/SparkStageMetrics' type: array title: Items default: [] total_count: type: integer title: Total Count default: 0 page: type: integer title: Page default: 1 page_size: type: integer title: Page Size default: 20 total_pages: type: integer title: Total Pages default: 1 type: object title: SparkStageMetricsPaginatedResponse description: Paginated response for stage metrics. CategoryName: type: string enum: - total - clusters - sql_warehouse - ai_ml - lakehouse - platform title: CategoryName description: "Spec-group category identifier shared across the cost APIs.\n\nUsed by:\n\n* ``GET /cost/trends/by-product?category=`` — selects which\n products get filtered in and how each row's segment label is computed.\n* ``GET /cost/overview`` — each ``category_breakdown`` item carries one\n of these values.\n\nSee ``CATEGORY_DEFINITIONS`` in ``app.service.databricks.cost_constants``\nfor the per-category filter list, segment label expression, and canonical\nlegend order." OversizedClusterOpportunity: properties: cluster_id: type: string title: Cluster Id cluster_name: type: string title: Cluster Name workspace_id: type: string title: Workspace Id workspace_name: anyOf: - type: string - type: 'null' title: Workspace Name worker_count: anyOf: - type: integer - type: 'null' title: Worker Count driver_node_type: anyOf: - type: string - type: 'null' title: Driver Node Type worker_node_type: anyOf: - type: string - type: 'null' title: Worker Node Type avg_cpu: type: number title: Avg Cpu avg_memory: type: number title: Avg Memory sample_count: type: integer title: Sample Count potential_savings_pct: type: number title: Potential Savings Pct description: Estimated potential savings percentage type: object required: - cluster_id - cluster_name - workspace_id - avg_cpu - avg_memory - sample_count - potential_savings_pct title: OversizedClusterOpportunity description: An oversized cluster opportunity. IdleClustersResponse: properties: opportunities: items: $ref: '#/components/schemas/IdleClusterOpportunity' type: array title: Opportunities total_count: type: integer title: Total Count idle_hours: type: integer title: Idle Hours type: object required: - opportunities - total_count - idle_hours title: IdleClustersResponse description: Response for idle clusters opportunities. EngineTypeTrendItem: properties: period: type: string title: Period description: Period label (date or week/month) engine_type: type: string title: Engine Type description: 'Engine type: photon or standard' total_dbus: type: number title: Total Dbus description: Total DBUs for this period+type estimated_cost: type: number title: Estimated Cost description: Estimated cost for this period+type type: object required: - period - engine_type - total_dbus - estimated_cost title: EngineTypeTrendItem description: Single data point for engine type trends (photon vs standard). QueryCostTrendByUserPoint: properties: period: type: string title: Period user_name: type: string title: User Name estimated_cost_usd: type: number title: Estimated Cost Usd default: 0 type: object required: - period - user_name title: QueryCostTrendByUserPoint description: A single point in query cost trends by user. UserFilterOptions: properties: user_names: items: type: string type: array title: User Names type: object title: UserFilterOptions description: Filter options for users. QuerySummary: properties: total_queries: type: integer title: Total Queries default: 0 unique_statement_types: type: integer title: Unique Statement Types default: 0 successful_queries: type: integer title: Successful Queries default: 0 failed_queries: type: integer title: Failed Queries default: 0 avg_duration_ms: type: number title: Avg Duration Ms default: 0 total_read_bytes: type: integer title: Total Read Bytes default: 0 total_spilled_bytes: type: integer title: Total Spilled Bytes default: 0 total_cost: type: number title: Total Cost default: 0 type: object title: QuerySummary description: Summary metrics for queries. WarehouseQueryMetricsTimelinePoint: properties: bucket_start: type: string title: Bucket Start query_count: type: integer title: Query Count default: 0 latency_p50_ms: anyOf: - type: number - type: 'null' title: Latency P50 Ms latency_p95_ms: anyOf: - type: number - type: 'null' title: Latency P95 Ms exec_time_avg_ms: anyOf: - type: number - type: 'null' title: Exec Time Avg Ms exec_time_p90_ms: anyOf: - type: number - type: 'null' title: Exec Time P90 Ms queue_cold_start_p95_ms: anyOf: - type: number - type: 'null' title: Queue Cold Start P95 Ms queue_at_capacity_p95_ms: anyOf: - type: number - type: 'null' title: Queue At Capacity P95 Ms bytes_scanned: anyOf: - type: number - type: 'null' title: Bytes Scanned result_cache_hit_pct: anyOf: - type: number - type: 'null' title: Result Cache Hit Pct disk_cache_hit_pct: anyOf: - type: number - type: 'null' title: Disk Cache Hit Pct spilled_query_count: type: integer title: Spilled Query Count default: 0 spilled_bytes: anyOf: - type: number - type: 'null' title: Spilled Bytes type: object required: - bucket_start title: WarehouseQueryMetricsTimelinePoint description: 'One time bucket of the SQL warehouse Monitoring page''s charts. Sourced from the query-history timeline only — DBU/cost and config-change (audit) events were both dropped from this endpoint (the Monitoring page''s DBUs chart and config-change markers were removed) so every bucket here comes from exactly one source; there''s no more "billing-only bucket" concept to null-fill.' ClusterCostTrendItem: properties: period: type: string title: Period compute_type: type: string title: Compute Type description: 'Compute type bucket: ''all_purpose'', ''jobs'', or ''serverless''.' total_dbus: type: number title: Total Dbus default: 0 estimated_cost: type: number title: Estimated Cost default: 0 type: object required: - period - compute_type title: ClusterCostTrendItem description: Single data point for cluster cost trends by compute type. CostBreakdownItem: properties: name: type: string title: Name description: Name of the group (SKU, workspace, product) total_dbus: type: number title: Total Dbus description: Total DBUs for this group estimated_cost: type: number title: Estimated Cost description: Estimated cost for this group pct_of_total: type: number title: Pct Of Total description: Percentage of total cost record_count: anyOf: - type: integer - type: 'null' title: Record Count description: Number of billing records type: object required: - name - total_dbus - estimated_cost - pct_of_total title: CostBreakdownItem description: Single item in cost breakdown. ComputeTypeTrendsResponse: properties: trends: items: $ref: '#/components/schemas/ComputeTypeTrendItem' type: array title: Trends description: List of trend data by compute type compute_types: items: type: string type: array title: Compute Types description: Unique compute types for chart legend granularity: type: string title: Granularity description: Time granularity (day/week/month) type: object required: - trends - compute_types - granularity title: ComputeTypeTrendsResponse description: Response model for compute type trends endpoint. AutoTuneSavingsTrendsResponse: properties: actual: items: $ref: '#/components/schemas/AutoTuneSavingsTrendPoint' type: array title: Actual potential: items: $ref: '#/components/schemas/AutoTuneSavingsTrendPoint' type: array title: Potential granularity: type: string title: Granularity type: object required: - actual - potential - granularity title: AutoTuneSavingsTrendsResponse description: 'Per-day auto-tune savings for a job, split into realized and potential. ``actual`` holds savings on runs where an applied recommendation was in effect; ``potential`` holds the savings those runs would have earned from the active recommendation had it been applied. Each series is bucketed by the run window (``period_start_time``).' EstimateSegmentItem: properties: product: type: string title: Product description: Segment label for this category cost: type: number title: Cost description: Actual cost for the period default: 0 cost_estimate: type: number title: Cost Estimate description: Projected cost for the period default: 0 percentage_change: anyOf: - type: number - type: 'null' title: Percentage Change description: Percentage change from the previous period type: object required: - product title: EstimateSegmentItem description: 'One segment''s actual + projected cost at a single point on the estimate graph. The segment is whatever the requested ``category`` resolves to — a spec group (``category=total``), a product (e.g. ``category=clusters``), or a SQL tier (``category=sql_warehouse``). ``product`` carries the same label semantics as ``ProductTrendItem.product``.' AIFunctionUsageBreakdownResponse: properties: usage: items: $ref: '#/components/schemas/AIFunctionUsageItem' type: array title: Usage description: List of usage sources type: object title: AIFunctionUsageBreakdownResponse description: Response for AI function usage breakdown. WarehouseStateHistoryResponse: properties: warehouse_id: type: string title: Warehouse Id history: items: $ref: '#/components/schemas/WarehouseStateChange' type: array title: History type: object required: - warehouse_id - history title: WarehouseStateHistoryResponse description: Response for warehouse state history. SparkPlanFlag: properties: sql_execution_id: anyOf: - type: string - type: 'null' title: Sql Execution Id description: anyOf: - type: string - type: 'null' title: Description flag_name: type: string title: Flag Name type: object required: - flag_name title: SparkPlanFlag description: A single plan analysis flag. SparkStage: properties: stage_id: type: integer title: Stage Id name: anyOf: - type: string - type: 'null' title: Name num_tasks: type: integer title: Num Tasks default: 0 submission_time: anyOf: - type: string format: date-time - type: 'null' title: Submission Time completion_time: anyOf: - type: string format: date-time - type: 'null' title: Completion Time duration_ms: anyOf: - type: number - type: 'null' title: Duration Ms gc_time_ms: type: number title: Gc Time Ms default: 0 shuffle_read_bytes: type: number title: Shuffle Read Bytes default: 0 shuffle_write_bytes: type: number title: Shuffle Write Bytes default: 0 spill_memory_bytes: type: number title: Spill Memory Bytes default: 0 spill_disk_bytes: type: number title: Spill Disk Bytes default: 0 failed_tasks: type: integer title: Failed Tasks default: 0 skew_ratio: anyOf: - type: number - type: 'null' title: Skew Ratio type: object required: - stage_id title: SparkStage description: Stage information with aggregated task metrics. WarehousesTotalSavingsResponse: properties: realised_savings: $ref: '#/components/schemas/SavingsStatValue' estimated_annual_savings: $ref: '#/components/schemas/SavingsStatValue' total_opportunities: $ref: '#/components/schemas/SavingsStatValue' type: object required: - realised_savings - estimated_annual_savings - total_opportunities title: WarehousesTotalSavingsResponse description: 'Response for the SQL warehouses list page''s "Total Savings" section — the Databricks counterpart to Snowflake''s warehouse cost summary cards (Realised Savings / Estimated Annual Savings / Total Opportunities).' ToggleAutoTuneRequest: properties: enabled: type: boolean title: Enabled description: Desired auto-tune state for the recommendation. scope: anyOf: - type: string enum: - all_tasks - specific_tasks - type: 'null' title: Scope description: Optional whole-job cascade. 'all_tasks' cascade-writes the toggle to every (entity_id, task_key) row under this job. 'specific_tasks' enables the recs whose ``task_key`` appears in ``enabled_task_keys`` and DISABLES every other rec on the job — the config row converges to the exact set the user chose. When omitted, the toggle behaves per-task (legacy behavior — only the (job_id, task_key) row from the URL/query is mutated). enabled_task_keys: anyOf: - items: type: string type: array - type: 'null' title: Enabled Task Keys description: Required (and must be non-empty) when ``scope='specific_tasks'``. Rejected for any other scope. The list of task_keys the user has chosen to enable; every other rec on the job is disabled. type: object required: - enabled title: ToggleAutoTuneRequest description: Request body for ``PATCH /databricks/jobs/{id}/auto-tune/toggle``. ComputeTypeTrendItem: properties: period: type: string title: Period description: Period label (date or week/month) compute_type: type: string title: Compute Type description: 'Compute type: jobs, all_purpose, sql, other' total_dbus: type: number title: Total Dbus description: Total DBUs for this period+type estimated_cost: type: number title: Estimated Cost description: Estimated cost for this period+type type: object required: - period - compute_type - total_dbus - estimated_cost title: ComputeTypeTrendItem description: Single data point for compute type trends. securitySchemes: HTTPBearer: type: http scheme: bearer