From 89892b0e6d50dd2e7b531eaf5b7ba51b8d3d7c3a Mon Sep 17 00:00:00 2001 From: "databricks-ci-ghec-1[bot]" <184311507+databricks-ci-ghec-1[bot]@users.noreply.github.com> Date: Thu, 5 Nov 2026 03:58:32 +0000 Subject: [PATCH 1/3] Update Go SDK to v0.194.0 --- .codegen/_openapi_sha | 2 +- .codegen/cli.json | 18326 +++++++++++----- .gitattributes | 1 + .../dependency-updates/go-sdk-v0.194.0.md | 1 + .../validation/generated/enum_fields.go | 4 +- bundle/schema/jsonschema.json | 179 +- cmd/workspace/ai-functions/ai-functions.go | 301 + cmd/workspace/cmd.go | 2 + .../feature-engineering.go | 212 + cmd/workspace/groups.go | 4 + .../instance-pools/instance-pools.go | 6 +- cmd/workspace/lakewatch/lakewatch.go | 1727 ++ go.mod | 2 +- go.sum | 4 +- .../_models/notification_destination.py | 12 +- .../instance_pools/_models/instance_pool.py | 2 + .../jobs/_models/ai_classify_function.py | 26 +- .../ai_classify_function_inline_labels.py | 6 +- .../_models/ai_classify_function_label.py | 10 +- .../jobs/_models/ai_extract_function.py | 26 +- .../jobs/_models/ai_extract_function_mode.py | 2 - .../bundles/jobs/_models/ai_function_task.py | 26 +- .../_models/ai_parse_document_function.py | 18 +- ...ument_function_description_element_type.py | 2 - .../_models/ai_runtime_task_priority_class.py | 3 +- .../jobs/_models/delta_table_source.py | 14 +- .../bundles/jobs/_models/qualified_name.py | 14 +- .../databricks/bundles/jobs/_models/task.py | 4 +- .../bundles/jobs/_models/volume_source.py | 6 +- 29 files changed, 15840 insertions(+), 5102 deletions(-) create mode 100644 .nextchanges/dependency-updates/go-sdk-v0.194.0.md create mode 100644 cmd/workspace/lakewatch/lakewatch.go diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index 7dec683f403..eb4ad7855da 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -e70a22231111e4c68080544b08d28ab7aa0d86b5 \ No newline at end of file +103b5ddd69bf588066452bf5c01cce79c8964687 \ No newline at end of file diff --git a/.codegen/cli.json b/.codegen/cli.json index e9719c6fbc1..8c7db6f6ab3 100644 --- a/.codegen/cli.json +++ b/.codegen/cli.json @@ -1692,6 +1692,158 @@ } } }, + "aifunctions.Batch": { + "description": "An asynchronous run of one AI function over a file of requests.", + "fields": { + "create_time": { + "description": "Output only. Time the batch was created.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "endpoint": { + "description": "The AI function to run for every request, for example `ai_extract`.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "input_ref": { + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "name": { + "description": "ID of the batch, in the form `batch_\u003cid\u003e`. The service assigns it.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "output_ref": { + "description": "Path on a Unity Catalog volume to write the JSONL output to. When it is omitted, the output\nstays on Databricks-managed storage and a finished batch returns a short-lived download URL\nin this field instead.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "params": { + "description": "Function options applied to every request in the batch, for example the extraction schema.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "percent_complete": { + "description": "Output only. Percentage of the requests that finished, from 0 to 100. Returned when one batch\nis read, not when batches are listed.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "request_counts": { + "description": "Output only. Request counts. Returned when one batch is read, not when batches are listed.", + "ref": "aifunctions.BatchRequestCounts", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "status": { + "description": "Output only. Status of the batch.", + "ref": "aifunctions.BatchStatus", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aifunctions.BatchRequestCounts": { + "description": "Counts of the requests in a batch.", + "fields": { + "failed": { + "description": "Output only. Number of requests that failed and will not be retried.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "succeeded": { + "description": "Output only. Number of requests that finished successfully.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "total": { + "description": "Output only. Number of requests in the input file.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aifunctions.BatchStatus": { + "description": "The status of a batch.", + "enum": [ + "PENDING", + "IN_PROGRESS", + "FINALIZING", + "COMPLETED", + "EXPIRED", + "CANCELLING", + "CANCELLED", + "FAILED" + ], + "enum_launch_stages": { + "CANCELLED": "PRIVATE_PREVIEW", + "CANCELLING": "PRIVATE_PREVIEW", + "COMPLETED": "PRIVATE_PREVIEW", + "EXPIRED": "PRIVATE_PREVIEW", + "FAILED": "PRIVATE_PREVIEW", + "FINALIZING": "PRIVATE_PREVIEW", + "IN_PROGRESS": "PRIVATE_PREVIEW", + "PENDING": "PRIVATE_PREVIEW" + } + }, + "aifunctions.CancelBatchRequest": {}, + "aifunctions.CancelBatchResponse": {}, + "aifunctions.CreateBatchRequest": { + "fields": { + "batch": { + "description": "The batch to create.", + "ref": "aifunctions.Batch", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "aifunctions.GetBatchRequest": {}, + "aifunctions.ListBatchesRequest": { + "fields": { + "page_size": { + "description": "Maximum number of batches to return in one page.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "page_token": { + "description": "Page token from an earlier response. Omit it to read the first page.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aifunctions.ListBatchesResponse": { + "fields": { + "batches": { + "description": "The batches in this page.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "next_page_token": { + "description": "Token that reads the next page. It is empty on the last page.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "aisearch.ColumnInfo": { "description": "Column information (name and data type) for an index column. Surfaced on `Index.column_info`.", "fields": { @@ -19035,7 +19187,7 @@ "launch_stage": "GA" }, "node_type_id": { - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "launch_stage": "GA" }, "preloaded_docker_images": { @@ -19544,7 +19696,7 @@ "launch_stage": "GA" }, "node_type_id": { - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "launch_stage": "GA" }, "remote_disk_throughput": { @@ -20294,7 +20446,7 @@ "launch_stage": "GA" }, "node_type_id": { - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "launch_stage": "GA" }, "preloaded_docker_images": { @@ -20747,7 +20899,7 @@ "launch_stage": "GA" }, "node_type_id": { - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "launch_stage": "GA" }, "preloaded_docker_images": { @@ -26831,7 +26983,7 @@ "description": "Destination of the data quality monitoring notification.", "fields": { "destination_ids": { - "description": "The notification-destination IDs (Slack / Teams / webhook) to send the notification to. The\ndestinations must already exist in the workspace; a workspace admin creates them. A maximum of\n25 destination IDs is supported.\nOnly supported on schema monitors, via `anomaly_detection_config`; rejected on table monitors.", + "description": "The notification-destination IDs (Slack / Teams / webhook / Asana / ServiceNow / AWS\nEventBridge) to send the notification to. The destinations must already exist in the\nworkspace; a workspace admin creates them. A maximum of 25 destination IDs is supported.\nOnly supported on schema monitors, via `anomaly_detection_config`; rejected on table monitors.", "launch_stage": "GA", "behaviors": [ "OPTIONAL" @@ -32816,14 +32968,14 @@ "fields": { "enable_confidence_scores": { "description": "When true, includes a per-label confidence score in the response.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "enable_rationales": { "description": "When true, includes a rationale explaining each classification in the response.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -32831,25 +32983,25 @@ "inline_labels": { "description": "Labels listed inline, for a small label set.", "ref": "jobs.AiClassifyFunctionInlineLabels", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "instructions": { "description": "Global description of the task and domain, passed to the model to improve\nclassification quality.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "multilabel": { "description": "When true, more than one label can be returned for each input.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "version": { "description": "The ai_classify function version to invoke (for example, `2.1`).", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -32858,7 +33010,7 @@ "fields": { "labels": { "description": "The labels an input can be classified as. At least two labels are required\nunless `multilabel` is true, which also accepts a single label.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -32867,14 +33019,14 @@ "fields": { "description": { "description": "Guidance describing what belongs under this label.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "name": { "description": "The name returned when an input is classified as this label.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -32883,21 +33035,21 @@ "fields": { "enable_citations": { "description": "When true, includes citation metadata locating each extracted value in the\nsource.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "enable_confidence_scores": { "description": "When true, includes a per-field confidence score in the response.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "instructions": { "description": "Global description of the task and domain, passed to the model to improve\nextraction quality.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -32905,21 +33057,21 @@ "mode": { "description": "The extraction mode. Defaults to standard extraction when unspecified.", "ref": "jobs.AiExtractFunctionMode", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "schema": { "description": "The extraction schema defining the fields to extract, as a JSON string.\nEither an array of field names (e.g. [\"company\", \"valuation\"]) or an object\nmapping each field name to a type and an optional description. Supported\ntypes are string, integer, number, boolean, enum, object, and array; all\nfields are optional.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "version": { "description": "The ai_extract function version to invoke (for example, `2.1`).", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -32929,7 +33081,7 @@ "MODE_PRECISION" ], "enum_launch_stages": { - "MODE_PRECISION": "PRIVATE_PREVIEW" + "MODE_PRECISION": "PUBLIC_BETA" } }, "jobs.AiFunctionTask": { @@ -32938,32 +33090,32 @@ "ai_classify": { "description": "Classifies each input document or row into one or more labels.", "ref": "jobs.AiClassifyFunction", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "ai_extract": { "description": "Extracts structured fields from the input documents or rows.", "ref": "jobs.AiExtractFunction", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "ai_parse_document": { "description": "Parses the input documents into structured text.", "ref": "jobs.AiParseDocumentFunction", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "delta_table": { "description": "A Unity Catalog Delta table. The function is applied to each row.", "ref": "jobs.DeltaTableSource", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "output": { "description": "Output destination table. When `table` is unset the task generates a stable name from the\nfunction and task identity so a downstream task can reference it.", "ref": "jobs.QualifiedName", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "volume": { "description": "A Unity Catalog volume. The function is applied to each file.", "ref": "jobs.VolumeSource", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -32972,24 +33124,24 @@ "fields": { "estimated_time_remaining": { "description": "Coarse estimate of the time left to run the function over the inputs, from the throughput so\nfar. Covers that work only, not the merge into the output table that follows it.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "failed_row_count": { "description": "Inputs permanently failed so far. Each lands in the output table as an error row, and does not\non its own fail the run.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "output_table": { "description": "The table the run writes its results to. Reported even when `output.table` is unset and the\nname is generated, so a client can read the table.", "ref": "jobs.QualifiedName", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "succeeded_row_count": { "description": "Inputs with a result so far. Reported per batch, so it can lag mid-run.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "total_row_count": { "description": "Inputs to process: rows for a Delta table source, files for a volume source. Stays well inside\n2^53, so a JavaScript client can hold it exactly.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -32998,28 +33150,28 @@ "fields": { "description_element_types": { "description": "Element types to generate AI descriptions for. Leave empty to generate no\ndescriptions; use ALL for every supported type, or list specific types to\nrestrict generation to only those.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "image_output_path": { "description": "Unity Catalog volume path where rendered page and element images are written.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "page_range": { "description": "Pages to parse (1-indexed), as a comma-separated list of page numbers or\nranges (e.g. \"1,3,5-10\").", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "version": { "description": "The ai_parse_document output schema version to invoke (for example, `2.0`).", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -33030,8 +33182,8 @@ "DESCRIPTION_ELEMENT_TYPE_FIGURE" ], "enum_launch_stages": { - "DESCRIPTION_ELEMENT_TYPE_ALL": "PRIVATE_PREVIEW", - "DESCRIPTION_ELEMENT_TYPE_FIGURE": "PRIVATE_PREVIEW" + "DESCRIPTION_ELEMENT_TYPE_ALL": "PUBLIC_BETA", + "DESCRIPTION_ELEMENT_TYPE_FIGURE": "PUBLIC_BETA" } }, "jobs.AiRuntimeTask": { @@ -33127,12 +33279,10 @@ "description": "Scheduling priority class for a workload — its priority and preemptability\nwhen the scheduler ranks pending work.", "enum": [ "BEST_EFFORT", - "NORMAL", - "CRITICAL" + "NORMAL" ], "enum_launch_stages": { "BEST_EFFORT": "PRIVATE_PREVIEW", - "CRITICAL": "PRIVATE_PREVIEW", "NORMAL": "PRIVATE_PREVIEW" } }, @@ -34226,18 +34376,18 @@ "fields": { "input_column": { "description": "Name of the column holding the content the function is applied to.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "merge_key_columns": { "description": "Columns that together identify a row across incremental runs, so results can\nbe matched back to their source rows. When unset, the task derives an\nimplicit key from Delta row tracking. If row tracking is also disabled there\nis no stable key, so each run reprocesses the entire source (a full refresh)\nrather than only the changed rows; set a key column or enable row tracking to\nkeep runs incremental.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "table_name": { "description": "Fully qualified three-part name of the source table (catalog.schema.table).", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -35909,15 +36059,15 @@ "fields": { "catalog": { "description": "Unity Catalog catalog.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "schema": { "description": "Unity Catalog schema, within the catalog.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "table": { "description": "Table, within the catalog and schema.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -36700,7 +36850,7 @@ "ai_function_task_output": { "description": "The output of an AI function task, if available", "ref": "jobs.AiFunctionTaskOutput", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "ai_runtime_task_output": { "description": "The output of an AiRuntimeTask, if available — MLflow identifiers,\nartifact paths, and per-replica allocated compute. Run lifecycle /\ntermination status lives on the surrounding framework `RunTask.status`\n(`runs.proto:RunTask.status` of type `RunStatus`), not on this output.\nSee `tasks/genai/ai_runtime_task.proto:AiRuntimeTaskOutput`.", @@ -36912,7 +37062,7 @@ "ai_function_task": { "description": "Applies an AI function to a set of input documents or rows.", "ref": "jobs.AiFunctionTask", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "ai_runtime_task": { "description": "The task runs a multi-gpu compute workload on Databricks AI Runtime. Specify\nthe accelerator type and count, the command to run, and where the workload's\ncode and MLflow output are stored.", @@ -37781,7 +37931,7 @@ "ai_function_task": { "description": "Applies an AI function to a set of input documents or rows.", "ref": "jobs.AiFunctionTask", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "ai_runtime_task": { "description": "The task runs a multi-gpu compute workload on Databricks AI Runtime. Specify\nthe accelerator type and count, the command to run, and where the workload's\ncode and MLflow output are stored.", @@ -38164,7 +38314,7 @@ "ai_function_task": { "description": "Applies an AI function to a set of input documents or rows.", "ref": "jobs.AiFunctionTask", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "ai_runtime_task": { "description": "The task runs a multi-gpu compute workload on Databricks AI Runtime. Specify\nthe accelerator type and count, the command to run, and where the workload's\ncode and MLflow output are stored.", @@ -38889,7 +39039,7 @@ "fields": { "volume_path": { "description": "Unity Catalog volume path to the input files\n(e.g. `/Volumes/\u003ccatalog\u003e/\u003cschema\u003e/\u003cvolume\u003e/...`).", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -39449,969 +39599,2832 @@ } } }, - "marketplace.AddExchangeForListingRequest": { + "lakewatch.AlertConfig": { + "description": "Per-catalog alert-related config. Singleton.\nName format: `catalogs/{catalog}/alertConfig`.", "fields": { - "exchange_id": { - "launch_stage": "GA" + "default_security_alert_collation_window": { + "description": "Window for collating Signals into security alerts. Duration\nstring — compact day/hour/minute/second components, e.g. `1d`, `12h`\n(see `Schedule.at_least_every` in common.proto for the grammar). Reads\nreturn the value as supplied. When unset or empty, the window is `1h`; the window in\neffect is reported in `effective_default_security_alert_collation_window`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "listing_id": { - "launch_stage": "GA" + "default_system_alert_collation_window": { + "description": "Window for collating SystemEvents into system alerts. Duration\nstring — compact day/hour/minute/second components, e.g. `1d`, `12h`\n(see `Schedule.at_least_every` in common.proto for the grammar). Reads\nreturn the value as supplied. When unset or empty, the window is `1d`; the window in\neffect is reported in `effective_default_system_alert_collation_window`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "effective_default_security_alert_collation_window": { + "description": "The security alert collation window in effect:\n`default_security_alert_collation_window` when set, otherwise `1h`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "effective_default_system_alert_collation_window": { + "description": "The system alert collation window in effect:\n`default_system_alert_collation_window` when set, otherwise `1d`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "etag": { + "description": "Opaque entity tag for optimistic concurrency. Returned on every read;\npass it back as the Update request's `etag` to make the update\nconditional on the resource being unchanged.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "name": { + "launch_stage": "PUBLIC_BETA" + }, + "security_alert_export_config": { + "description": "Export destination for security alerts. When unset, export is off and reads\nreturn `{\"enabled\": false}`.", + "ref": "lakewatch.ExportConfig", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "system_alert_export_config": { + "description": "Export destination for system alerts. When unset, export is off and reads\nreturn `{\"enabled\": false}`.", + "ref": "lakewatch.ExportConfig", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "update_time": { + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "updated_by": { + "ref": "lakewatch.Principal", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "version": { + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] } } }, - "marketplace.AddExchangeForListingResponse": { + "lakewatch.AutoLoader": { + "description": "Ingests files from cloud storage with Auto Loader. Mutually exclusive with\n`unity_catalog_connection` and `existing_table`.", "fields": { - "exchange_for_listing": { - "ref": "marketplace.ExchangeListing", - "launch_stage": "GA" + "aws_secret_scope": { + "description": "Name of the workspace secret scope that holds the AWS access key ID and secret access key,\nunder the keys `awsAccessKeyId` and `awsSecretAccessKey`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "effective_include_existing_files": { + "description": "Whether ingestion started with the files already present at `location`. Populated on get,\ncreate, and update responses.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "effective_raw_table": { + "description": "The table that the raw data is written to: `raw_table` in the datasource's catalog and\nschema, under their current Unity Catalog names. Populated on get, create, and update\nresponses.", + "ref": "lakewatch.TableName", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "envelope": { + "description": "How to unwrap a transport envelope around the source records before parsing. Supported only\nfor the JSON and JSONL formats. If unset, each source record is treated as one event.", + "ref": "lakewatch.Envelope", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "format": { + "description": "File format of the source files. Required.", + "ref": "lakewatch.AutoLoaderFormat", + "launch_stage": "PUBLIC_BETA" + }, + "format_options": { + "description": "Format-specific parsing options, passed to Auto Loader. Supported for the CSV, JSON, JSONL,\nand XML formats, each of which accepts a fixed set of options. The XML format requires the\n`rowTag` option.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "include_existing_files": { + "description": "Whether to ingest the files already present at `location` when ingestion\nfirst starts. Set true to ingest the existing files and then every new file.\nSet false, or leave unset, to ingest only files that arrive after the\ndatasource starts. Defaults to false. Cannot be changed after creation.\nReads return the value as supplied; the setting in effect is reported in\n`effective_include_existing_files`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "location": { + "description": "URI of the source files: a path in a Unity Catalog volume or external location, or a\ncloud storage URL such as an Amazon S3 path. Required, including when new files are\ndiscovered through `queue_url`. Cannot be changed after creation.", + "launch_stage": "PUBLIC_BETA" + }, + "override_partition_columns": { + "description": "Hive-style partition columns to derive from the source file paths. If unset, no partition\ncolumns are derived.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "queue_url": { + "description": "URL of a customer-managed Amazon SQS queue that receives file-arrival notifications. Set it\nto discover new files through the queue. If unset, new files are discovered through the\nfile events of the source's Unity Catalog external location when it has them configured,\nand by directory listing otherwise. Cannot be changed after creation.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "raw_table": { + "description": "Table that stores the raw data before parsers schematize it. Every Auto Loader datasource\nwrites its raw rows to this table before any parser reads them. The table must be in the\ndatasource's catalog and schema; an omitted `catalog_name` or `schema_name` defaults to\nthem. Cannot be changed after creation. Reads return the value as supplied; the table the\ndata is written to is reported in `effective_raw_table`.", + "ref": "lakewatch.TableName", + "launch_stage": "PUBLIC_BETA" + }, + "service_credentials": { + "description": "Name of the Unity Catalog service credential to use.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.AssetType": { + "lakewatch.AutoLoaderFormat": { + "description": "File format of the source files that Auto Loader reads.", "enum": [ - "ASSET_TYPE_GIT_REPO", - "ASSET_TYPE_DATA_TABLE", - "ASSET_TYPE_MODEL", - "ASSET_TYPE_NOTEBOOK", - "ASSET_TYPE_MEDIA", - "ASSET_TYPE_PARTNER_INTEGRATION", - "ASSET_TYPE_APP", - "ASSET_TYPE_MCP" + "AUTOLOADER_FORMAT_JSON", + "AUTOLOADER_FORMAT_JSONL", + "AUTOLOADER_FORMAT_CSV", + "AUTOLOADER_FORMAT_PARQUET", + "AUTOLOADER_FORMAT_XML" ], "enum_launch_stages": { - "ASSET_TYPE_APP": "GA", - "ASSET_TYPE_DATA_TABLE": "GA", - "ASSET_TYPE_GIT_REPO": "GA", - "ASSET_TYPE_MCP": "GA", - "ASSET_TYPE_MEDIA": "GA", - "ASSET_TYPE_MODEL": "GA", - "ASSET_TYPE_NOTEBOOK": "GA", - "ASSET_TYPE_PARTNER_INTEGRATION": "GA" + "AUTOLOADER_FORMAT_CSV": "PUBLIC_BETA", + "AUTOLOADER_FORMAT_JSON": "PUBLIC_BETA", + "AUTOLOADER_FORMAT_JSONL": "PUBLIC_BETA", + "AUTOLOADER_FORMAT_PARQUET": "PUBLIC_BETA", + "AUTOLOADER_FORMAT_XML": "PUBLIC_BETA" } }, - "marketplace.BatchGetListingsRequest": { + "lakewatch.CloudWatchLogsEnvelope": { + "description": "Unwraps an AWS CloudWatch Logs delivery envelope: each element of `logEvents`\nbecomes its own row, with the element's `message` parsed as the event body.", "fields": { - "ids": { - "launch_stage": "GA" + "header_retention": { + "description": "Whether to keep the envelope's `owner`, `logGroup`, and `logStream` values in\nthe `data.lw_header` field of each unwrapped row. Must be set explicitly to\n`true` or `false`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.BatchGetListingsResponse": { + "lakewatch.CommonConfig": { + "description": "Catch-all per-catalog config — settings that don't belong to any one\nresource family. Singleton. Name format: `catalogs/{catalog}/commonConfig`.", "fields": { - "listings": { - "launch_stage": "GA" + "custom_content_pack_path": { + "description": "UC volume path holding user-authored custom content packs, e.g.\n`/Volumes/{catalog}/{schema}/{volume}`. User-provided with no default:\nwhen unset, custom content packs are unavailable (referencing one is\nrejected) and only built-in content packs apply.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "custom_presets_path": { + "description": "UC volume path holding user-authored custom presets, e.g.\n`/Volumes/{catalog}/{schema}/{volume}`. User-provided with no default:\nwhen unset, custom presets are unavailable and only built-in presets apply.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "etag": { + "description": "Opaque entity tag for optimistic concurrency. Returned on every read;\npass it back as the Update request's `etag` to make the update\nconditional on the resource being unchanged.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "name": { + "launch_stage": "PUBLIC_BETA" + }, + "per_resource_permissions_enabled": { + "description": "Whether users may grant permissions on individual resources rather than\nonly at the Folder level.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "update_time": { + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "updated_by": { + "ref": "lakewatch.Principal", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "version": { + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] } } }, - "marketplace.BatchGetProvidersRequest": { + "lakewatch.ContentPackReference": { + "description": "Reference to the ContentPack (and pack version) a resource was originally\ninstalled from.", "fields": { - "ids": { - "launch_stage": "GA" + "uuid": { + "description": "UUID of the content pack.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "version": { + "description": "Pack version the resource was installed from.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] } } }, - "marketplace.BatchGetProvidersResponse": { + "lakewatch.CreateDatasourceRequest": { "fields": { - "providers": { - "launch_stage": "GA" + "datasource": { + "ref": "lakewatch.Datasource", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.Category": { - "enum": [ - "ADVERTISING_AND_MARKETING", - "CLIMATE_AND_ENVIRONMENT", - "COMMERCE", - "DEMOGRAPHICS", - "ECONOMICS", - "EDUCATION", - "ENERGY", - "FINANCIAL", - "GAMING", - "GEOSPATIAL", - "HEALTH", - "LOOKUP_TABLES", - "MANUFACTURING", - "MEDIA", - "OTHER", - "PUBLIC_SECTOR", - "RETAIL", - "SECURITY", - "SCIENCE_AND_RESEARCH", - "SPORTS", - "TRANSPORTATION_AND_LOGISTICS", - "TRAVEL_AND_TOURISM" - ], - "enum_launch_stages": { - "ADVERTISING_AND_MARKETING": "GA", - "CLIMATE_AND_ENVIRONMENT": "GA", - "COMMERCE": "GA", - "DEMOGRAPHICS": "GA", - "ECONOMICS": "GA", - "EDUCATION": "GA", - "ENERGY": "GA", - "FINANCIAL": "GA", - "GAMING": "GA", - "GEOSPATIAL": "GA", - "HEALTH": "GA", - "LOOKUP_TABLES": "GA", - "MANUFACTURING": "GA", - "MEDIA": "GA", - "OTHER": "GA", - "PUBLIC_SECTOR": "GA", - "RETAIL": "GA", - "SCIENCE_AND_RESEARCH": "GA", - "SECURITY": "GA", - "SPORTS": "GA", - "TRANSPORTATION_AND_LOGISTICS": "GA", - "TRAVEL_AND_TOURISM": "GA" - } - }, - "marketplace.ConsumerTerms": { + "lakewatch.CreateRuleRequest": { "fields": { - "version": { - "launch_stage": "GA" + "rule": { + "description": "The rule to create. Server-assigned fields (`name`, `rule_id`, timestamps,\n`etag`, …) are ignored on the request.", + "ref": "lakewatch.Rule", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.ContactInfo": { - "description": "contact info for the consumer requesting data or performing a listing installation", + "lakewatch.Datasource": { + "description": "A Lakewatch datasource: a pipeline that ingests security data and writes it to Unity\nCatalog tables.\n\nWhat a datasource ingests is defined by its ingestion method (`autoloader`,\n`unity_catalog_connection`, or `existing_table`), which sets how the data arrives,\ntogether with its `parsers`, which define the schemas that the arriving data is matched\nagainst and written as.", "fields": { - "company": { - "launch_stage": "GA" + "annotations": { + "description": "Free-form key-value annotations on the datasource, managed by the client.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "email": { - "launch_stage": "GA" + "autoloader": { + "ref": "lakewatch.AutoLoader", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "first_name": { - "launch_stage": "GA" + "catalog_name": { + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "IMMUTABLE" + ] }, - "last_name": { - "launch_stage": "GA" + "compute_mode": { + "description": "Compute mode for the datasource's ingestion job. If unset, the `default_compute_mode` of\nthe catalog's datasource configuration applies, or `DS_COMPUTE_PERFORMANCE_OPTIMIZED` if\nthe catalog has none.", + "ref": "lakewatch.DatasourceComputeMode", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "compute_workspace_id": { + "description": "ID of the workspace whose compute runs this datasource's ingestion job and\nowns its associated resources, such as the storage the ingested data lands\nin. Server-assigned.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "create_time": { + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "created_by": { + "ref": "lakewatch.Principal", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "datasource_id": { + "description": "Unity Catalog securable ID (a UUID) of the datasource. It never changes, including when the\ndatasource is renamed in Unity Catalog, and is the final segment of `name`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "datasource_name": { + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "IMMUTABLE" + ] + }, + "description": { + "description": "Free-form description of the datasource.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "effective_catalog_name": { + "description": "Current name of the Unity Catalog catalog that contains the datasource, which reflects\ncatalog renames without a change to `catalog_name`. Populated on get, create, and update\nresponses; list responses omit it.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "effective_datasource_name": { + "description": "Current UC leaf name of the datasource (server-owned). Tracks UC renames so\ncallers can observe the live name without having to update the client-owned\n`datasource_name`; unset until resolved.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "effective_run_as_principal": { + "description": "The identity the datasource runs as: the resolved `run_as_principal`, or the requester's\nidentity if `run_as_principal` was omitted on create or cleared on update. Given as a user\nemail or service principal application ID, or as the numeric principal ID if the identity\ncan no longer be resolved. Populated on get, create, and update responses; list responses\nomit it.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "effective_schema_name": { + "description": "Current name of the Unity Catalog schema that contains the datasource, which reflects\nschema renames without a change to `schema_name`. Populated on get, create, and update\nresponses; list responses omit it.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "etag": { + "description": "Opaque entity tag for optimistic concurrency control. Returned by get, create, and update\nresponses and by list responses in the `DATASOURCE_VIEW_FULL` view. To make an update\nconditional on the datasource not having changed since it was read, pass this value as the\nupdate request's `etag`. Changes to `status` do not change the etag.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "existing_table": { + "ref": "lakewatch.ExistingTable", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "name": { + "description": "Resource name of the datasource, in the format `datasources/{datasource_id}`. Unlike the\ndatasource's Unity Catalog location (`catalog_name`, `schema_name`, and `datasource_name`),\nthe name does not change when the datasource or its catalog or schema is renamed in Unity\nCatalog.", + "launch_stage": "PUBLIC_BETA" + }, + "owner": { + "description": "Unity Catalog owner of the datasource, assigned by the server. Create responses omit it.", + "ref": "lakewatch.Principal", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "parsers": { + "description": "Parsers that schematize the ingested data. Each record is matched against the parsers in\norder and written to the parsed table of the first parser that it matches. Existing-table\nand Unity Catalog connection datasources require at least one parser; an Auto Loader\ndatasource with no parsers writes only its raw table.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "run_as_principal": { + "description": "The user or service principal that the datasource runs as, given as a user email or\nservice principal application ID. When it is supplied on create or update, the requester\nmust be authorized to run the datasource as that principal, or the request is rejected.\nWhen it is omitted on create, the datasource runs as the requester. On update, a mask that\nincludes `run_as_principal` without a value clears it, so the datasource runs as the\nrequester; a mask that omits it keeps the current identity. Reads return the value as\nsupplied; the identity the datasource runs as is reported in `effective_run_as_principal`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "schedule": { + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "ref": "lakewatch.Schedule", + "launch_stage": "PUBLIC_BETA" + }, + "schema_name": { + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "IMMUTABLE" + ] + }, + "status": { + "description": "Runtime status of the jobs and pipelines that run this datasource.", + "ref": "lakewatch.DatasourceStatus", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "unity_catalog_connection": { + "ref": "lakewatch.UnityCatalogConnection", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "update_time": { + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "updated_by": { + "ref": "lakewatch.Principal", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "version": { + "description": "Version number of the datasource, incremented on each update. Informational only; use\n`etag` for optimistic concurrency control.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "warehouse_id": { + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "INPUT_ONLY" + ] } } }, - "marketplace.Cost": { + "lakewatch.DatasourceComputeMode": { + "description": "Compute mode for the datasource's ingestion job.", "enum": [ - "FREE", - "PAID" + "DS_COMPUTE_STANDARD", + "DS_COMPUTE_PERFORMANCE_OPTIMIZED" ], "enum_launch_stages": { - "FREE": "GA", - "PAID": "GA" + "DS_COMPUTE_PERFORMANCE_OPTIMIZED": "PUBLIC_BETA", + "DS_COMPUTE_STANDARD": "PUBLIC_BETA" } }, - "marketplace.CreateExchangeFilterRequest": { + "lakewatch.DatasourceConfig": { + "description": "Per-catalog datasource-related config. Singleton.\nName format: `catalogs/{catalog}/datasourceConfig`.", "fields": { - "filter": { - "ref": "marketplace.ExchangeFilter", - "launch_stage": "GA" + "default_compute_mode": { + "description": "Default compute mode applied to datasource ingestion jobs when the\nindividual datasource doesn't override it. v1\n`datasources.defaultComputeMode`.", + "ref": "lakewatch.DatasourceComputeMode", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "default_folder": { + "description": "Schema name of the registered folder (in this catalog) that a new datasource\nis placed in when the request does not specify a schema. Must name a schema\nregistered as a folder. Omit to clear. Reads return the value as supplied; the\nfolder's current schema name is reported in `effective_default_folder`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "effective_default_folder": { + "description": "The current schema name of the `default_folder` folder. Tracks UC schema\nrenames. Unset when no default is configured, or when the folder's schema no\nlonger exists or is not visible to the caller.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "etag": { + "description": "Opaque entity tag for optimistic concurrency. Returned on every read;\npass it back as the Update request's `etag` to make the update\nconditional on the resource being unchanged.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "name": { + "launch_stage": "PUBLIC_BETA" + }, + "update_time": { + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "updated_by": { + "ref": "lakewatch.Principal", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "version": { + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] } } }, - "marketplace.CreateExchangeFilterResponse": { + "lakewatch.DatasourceStatus": { + "description": "Read-only runtime status of a datasource, with the status of each job and pipeline that\nruns it.", "fields": { - "filter_id": { - "launch_stage": "GA" + "ingestion_job": { + "description": "Status of the datasource's ingestion job.", + "ref": "lakewatch.ResourceStatus", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "ingestion_pipeline": { + "description": "Status of the managed ingestion pipeline. Populated only when `unity_catalog_connection`\nis set, with `pipeline_id` identifying the pipeline.", + "ref": "lakewatch.ResourceStatus", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] } } }, - "marketplace.CreateExchangeRequest": { - "fields": { - "exchange": { - "ref": "marketplace.Exchange", - "launch_stage": "GA" - } + "lakewatch.DatasourceView": { + "description": "Which fields list responses return for each datasource.", + "enum": [ + "DATASOURCE_VIEW_BASIC", + "DATASOURCE_VIEW_FULL" + ], + "enum_launch_stages": { + "DATASOURCE_VIEW_BASIC": "PUBLIC_BETA", + "DATASOURCE_VIEW_FULL": "PUBLIC_BETA" } }, - "marketplace.CreateExchangeResponse": { + "lakewatch.DeleteDatasourceRequest": {}, + "lakewatch.DeleteRuleRequest": {}, + "lakewatch.Envelope": { + "description": "Unwraps a transport envelope from the source data so that each contained event becomes\nits own row. Applied when the source data is read, before parsing.", "fields": { - "exchange_id": { - "launch_stage": "GA" + "cloud_watch_logs": { + "ref": "lakewatch.CloudWatchLogsEnvelope", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "json_array": { + "ref": "lakewatch.JsonArrayEnvelope", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.CreateFileRequest": { + "lakewatch.ExistingTable": { + "description": "Uses an existing Unity Catalog Delta table or view as the datasource's source. Mutually\nexclusive with `autoloader` and `unity_catalog_connection`.", "fields": { - "display_name": { - "launch_stage": "GA" + "catalog": { + "description": "Name of the catalog the existing table lives in. Optional on create and\ndefaults to the datasource's own catalog. Cannot be changed. Reads return\nthe value as supplied; the catalog in use is reported in `effective_catalog`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "file_parent": { - "ref": "marketplace.FileParent", - "launch_stage": "GA" + "effective_catalog": { + "description": "Current Unity Catalog catalog name of the source table, resolved from its\nstable table ID, so a rename of the source table is reported here without\nchanging `catalog`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "marketplace_file_type": { - "ref": "marketplace.MarketplaceFileType", - "launch_stage": "GA" + "effective_name": { + "description": "Current Unity Catalog name of the source table, resolved from its stable\ntable ID.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "mime_type": { - "launch_stage": "GA" - } - } - }, - "marketplace.CreateFileResponse": { - "fields": { - "file_info": { - "ref": "marketplace.FileInfo", - "launch_stage": "GA" + "effective_schema": { + "description": "Current Unity Catalog schema name of the source table, resolved from its\nstable table ID.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "upload_url": { - "description": "Pre-signed POST URL to blob storage", - "launch_stage": "GA" + "include_existing_rows": { + "description": "Whether to ingest the rows already present in the source table when\ningestion first starts. Set true to ingest the existing rows and then every\nnew commit. Set false, or leave unset, to ingest only rows written after the\ndatasource starts. Defaults to false, and must be true for a Delta Sharing\nsource table. Takes effect only at first start and cannot be changed. Reads\nreturn the value as supplied.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "name": { + "description": "Name of the source table or view. Required on create and cannot be changed.\nReads return the value as supplied; the table's current name is reported in\n`effective_name`.", + "launch_stage": "PUBLIC_BETA" + }, + "schema": { + "description": "Name of the schema the existing table lives in. Optional, but required when\n`catalog` is set; supplying `catalog` without `schema` is rejected. Defaults\nto the datasource's own schema. Cannot be changed. Reads return the value as\nsupplied; the schema in use is reported in `effective_schema`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.CreateInstallationRequest": { + "lakewatch.ExportConfig": { + "description": "Configuration for delivering events / alerts to an external destination.\n\nExactly one of the destination variants is set; the server picks it via\nthe `oneof`.", "fields": { - "accepted_consumer_terms": { - "ref": "marketplace.ConsumerTerms", - "launch_stage": "GA" + "enabled": { + "description": "Whether export is currently active.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "catalog_name": { - "launch_stage": "GA" + "jira": { + "ref": "lakewatch.JiraExportConfig", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "recipient_type": { - "ref": "marketplace.DeltaSharingRecipientType", - "launch_stage": "GA" + "service_now": { + "ref": "lakewatch.ServiceNowExportConfig", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "repo_detail": { - "description": "for git repo installations", - "ref": "marketplace.RepoInstallation", - "launch_stage": "GA" + "slack": { + "ref": "lakewatch.SlackExportConfig", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "share_name": { - "launch_stage": "GA" + "tines": { + "ref": "lakewatch.TinesExportConfig", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "webhook": { + "ref": "lakewatch.WebhookExportConfig", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "workspace_id": { + "description": "Deprecated and ignored: exports always egress through the request's own\nworkspace. Kept so configs stored by older builds still round-trip.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.CreateListingRequest": { + "lakewatch.GetAlertConfigRequest": {}, + "lakewatch.GetCommonConfigRequest": {}, + "lakewatch.GetDatasourceConfigRequest": {}, + "lakewatch.GetDatasourceRequest": {}, + "lakewatch.GetRuleConfigRequest": {}, + "lakewatch.GetRuleRequest": {}, + "lakewatch.JiraExportConfig": { "fields": { - "listing": { - "ref": "marketplace.Listing", - "launch_stage": "GA" + "api_token_uc_secret": { + "description": "Three-level Unity Catalog name (`catalog.schema.secret`) of the secret holding\nthe Jira API token, paired with `user_email` as the Jira Cloud basic-auth\ncredential (`email:token`). Only the name is stored; the token is read when an\nalert is exported, so rotating the secret takes effect without editing this config.", + "launch_stage": "PUBLIC_BETA" + }, + "default_issue_type": { + "description": "Default issue type for created tickets (e.g. `Task`, `Incident`). Jira issue creation\nrequires an issue type, so it is validated at config-save time rather than failing the\nexport at Jira later.", + "launch_stage": "PUBLIC_BETA" + }, + "instance_url": { + "description": "Jira instance URL (e.g. `https://acme.atlassian.net`).", + "launch_stage": "PUBLIC_BETA" + }, + "project_key": { + "description": "Jira project key the exported issues are created under.", + "launch_stage": "PUBLIC_BETA" + }, + "user_email": { + "description": "User email paired with the API token for Jira Cloud basic auth.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.CreateListingResponse": { + "lakewatch.JsonArrayEnvelope": { + "description": "Unwraps a JSON array of events into one row per array element.", "fields": { - "listing_id": { - "launch_stage": "GA" + "path": { + "description": "Name of the root-level key that holds the array of events, for example\n`Records`. Nested paths are not supported.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.CreatePersonalizationRequest": { - "description": "Data request messages\nalso creates a lead (maybe)", + "lakewatch.ListDatasourcesRequest": { "fields": { - "accepted_consumer_terms": { - "ref": "marketplace.ConsumerTerms", - "launch_stage": "GA" - }, - "comment": { - "launch_stage": "GA" - }, - "company": { - "launch_stage": "GA" + "catalog_name": { + "description": "Name of the Unity Catalog catalog to list datasources from. Required; each request lists the\ndatasources of a single catalog.", + "launch_stage": "PUBLIC_BETA" }, - "first_name": { - "launch_stage": "GA" + "filter": { + "description": "Filter expression that restricts the results to datasources with a given name, for example\n`datasource_name = \"my_source\"`. Only a single exact-match comparison on `datasource_name`\nis supported, and it matches the datasource's current Unity Catalog name, which reads report\nin `effective_datasource_name`. Filtered results are returned in a single page.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "intended_use": { - "launch_stage": "GA" + "page_size": { + "description": "Maximum number of results to return in one page. This is a best-effort upper\nbound, not a guarantee: the server may return fewer items than requested (even\nzero) while more results still exist. If unset or 0, the server picks a default.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "is_from_lighthouse": { - "launch_stage": "GA" + "page_token": { + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "last_name": { - "launch_stage": "GA" + "schema_name": { + "description": "Name of a Unity Catalog schema in `catalog_name`. Optional; if set, only the datasources in\nthis schema are returned, and if omitted, the datasources in all schemas of the catalog are\nreturned.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "recipient_type": { - "ref": "marketplace.DeltaSharingRecipientType", - "launch_stage": "GA" + "view": { + "description": "Which fields to return for each datasource. Defaults to `DATASOURCE_VIEW_FULL`.\n`DATASOURCE_VIEW_BASIC` returns only the identity and Unity Catalog location fields.", + "ref": "lakewatch.DatasourceView", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.CreatePersonalizationRequestResponse": { + "lakewatch.ListDatasourcesResponse": { "fields": { - "id": { - "launch_stage": "GA" + "datasources": { + "launch_stage": "PUBLIC_BETA" + }, + "next_page_token": { + "description": "Opaque token for fetching the next page; pass it as `page_token` on the next\ncall. It is empty only when there are no more results. Page size is best-effort,\nso a short or even empty page does not mean the end; keep paging until this\ntoken is empty, which is the only reliable end-of-results signal.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.CreateProviderAnalyticsDashboardRequest": {}, - "marketplace.CreateProviderRequest": { + "lakewatch.ListRulesRequest": { "fields": { - "provider": { - "ref": "marketplace.ProviderInfo", - "launch_stage": "GA" + "catalog_name": { + "description": "Name of the Unity Catalog catalog to list rules from. Required.", + "launch_stage": "PUBLIC_BETA" + }, + "filter": { + "description": "Filter expression that restricts the results, such as `rule_name = \"my_rule\"` to return\nonly the rule with that name. The name is matched against the current UC name, which\nreads report in `effective_rule_name`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "page_size": { + "description": "Maximum number of rules to return. The server may return fewer. If unset\nor 0, the server picks a default page size.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "page_token": { + "description": "Page token from a previous `ListRules` response, used to fetch the next\npage of results.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "schema_name": { + "description": "Name of a Unity Catalog schema in `catalog_name`. If set, only rules in this schema are\nreturned. If unset, rules in all schemas of the catalog are returned.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "view": { + "description": "How much of each rule to return. Defaults to `RULE_VIEW_FULL`. `RULE_VIEW_BASIC` returns\nonly each rule's identity and Unity Catalog location.", + "ref": "lakewatch.RuleView", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.CreateProviderResponse": { + "lakewatch.ListRulesResponse": { "fields": { - "id": { - "launch_stage": "GA" + "next_page_token": { + "description": "Token to pass as `page_token` in a subsequent `ListRules` call to fetch the\nnext page, or empty when there are no more results.", + "launch_stage": "PUBLIC_BETA" + }, + "rules": { + "description": "The rules in this page of results.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.DataRefresh": { - "enum": [ - "NONE", - "SECOND", - "MINUTE", - "HOURLY", - "DAILY", - "WEEKLY", - "MONTHLY", - "QUARTERLY", - "YEARLY" - ], - "enum_launch_stages": { - "DAILY": "GA", - "HOURLY": "GA", - "MINUTE": "GA", - "MONTHLY": "GA", - "NONE": "GA", - "QUARTERLY": "GA", - "SECOND": "GA", - "WEEKLY": "GA", - "YEARLY": "GA" + "lakewatch.ParserRef": { + "description": "Reference to a parser that the datasource uses. Each parser defines the schema of the\nparsed table that it writes.", + "fields": { + "effective_target_table": { + "description": "The table this parser's data is written to: `target_table` when supplied, otherwise the\ntable derived from the datasource's catalog and schema and the parser name. Fixed once\nresolved, so a later parser rename does not move it. Populated on get, create, and update\nresponses with the resolved table.", + "ref": "lakewatch.TableName", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "id": { + "description": "Identifier of the parser. Stable across renames, unlike a parser name.", + "launch_stage": "PUBLIC_BETA" + }, + "target_table": { + "description": "Table that this parser's data is written to. The table must be in the datasource's catalog\nand schema. If unset, the table name is derived from the parser name. Reads return the value\nas supplied; the table the data is written to is reported in `effective_target_table`.", + "ref": "lakewatch.TableName", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "version": { + "description": "Version of the parser to use, given as an explicit version number.", + "launch_stage": "PUBLIC_BETA" + } } }, - "marketplace.DataRefreshInfo": { + "lakewatch.Principal": { + "description": "A principal — user or service-principal — used as the value type for\n`created_by` / `updated_by` / `assignee` etc. across v2 resources.", "fields": { - "interval": { - "launch_stage": "GA" + "display_name": { + "description": "Display name (user or SP name).", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "unit": { - "ref": "marketplace.DataRefresh", - "launch_stage": "GA" + "email": { + "description": "Email (regular users only).", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "id": { + "description": "User / service-principal ID.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "principal_type": { + "description": "Whether this principal is a regular user, service principal, or system principal.", + "ref": "lakewatch.PrincipalType", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.DeleteExchangeFilterRequest": {}, - "marketplace.DeleteExchangeFilterResponse": {}, - "marketplace.DeleteExchangeRequest": {}, - "marketplace.DeleteExchangeResponse": {}, - "marketplace.DeleteFileRequest": {}, - "marketplace.DeleteFileResponse": {}, - "marketplace.DeleteInstallationRequest": {}, - "marketplace.DeleteInstallationResponse": {}, - "marketplace.DeleteListingRequest": {}, - "marketplace.DeleteListingResponse": {}, - "marketplace.DeleteProviderRequest": {}, - "marketplace.DeleteProviderResponse": {}, - "marketplace.DeltaSharingRecipientType": { + "lakewatch.PrincipalType": { + "description": "Type of a principal (user / SP / system).", "enum": [ - "DELTA_SHARING_RECIPIENT_TYPE_DATABRICKS", - "DELTA_SHARING_RECIPIENT_TYPE_OPEN" + "REGULAR_USER", + "SERVICE_PRINCIPAL", + "SYSTEM_USER" ], "enum_launch_stages": { - "DELTA_SHARING_RECIPIENT_TYPE_DATABRICKS": "GA", - "DELTA_SHARING_RECIPIENT_TYPE_OPEN": "GA" + "REGULAR_USER": "PUBLIC_BETA", + "SERVICE_PRINCIPAL": "PUBLIC_BETA", + "SYSTEM_USER": "PUBLIC_BETA" } }, - "marketplace.Exchange": { + "lakewatch.ResourceStatus": { + "description": "Read-only runtime status of one job or pipeline backing a resource.\n\nShared across resources: a Rule's single job, a Datasource's main / health /\nhistorical-ingestion jobs, and a Datasource's ingestion pipeline (the\n`pipeline_id` field is set only for the pipeline). For a datasource's\nhistorical ingestion, the shard count is simply the number of\n`historical_job_statuses` entries — there is no separate count field.\n\nTwo orthogonal axes are modeled separately (v1 conflated them into a single\n`jobStatus` enum): `lifecycle` (is it configured / does it still exist) and\n`run_state` (what the most recent or in-flight run did).\n\nEvery field that holds a `ResourceStatus` is OUTPUT_ONLY at its use site\n(Datasource ingest/health/historical/pipeline statuses, Rule status), so the\ninner fields don't repeat the annotation.", "fields": { - "comment": { - "launch_stage": "GA" - }, - "created_at": { - "launch_stage": "GA" + "create_time": { + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "created_by": { - "launch_stage": "GA" + "job_id": { + "description": "Databricks Jobs API job ID. Unset for a pure ingestion pipeline.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "filters": { - "launch_stage": "GA" + "last_complete_time": { + "description": "When the most recent run completed. Pairs with `run_state = SUCCEEDED`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "id": { - "launch_stage": "GA" + "last_error_message": { + "description": "Most recent error message, if any. Pairs with `run_state = FAILED`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "linked_listings": { - "launch_stage": "GA" + "last_start_time": { + "description": "When the most recent run started. Pairs with `run_state = RUNNING`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "name": { - "launch_stage": "GA" + "last_status_change_time": { + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "updated_at": { - "launch_stage": "GA" + "lifecycle_state": { + "description": "Scheduling lifecycle of the resource's underlying job/pipeline: whether it\nis unscheduled, scheduled, stopped, or deleted. Distinct from `run_state`,\nwhich reports the outcome of the most recent run.", + "ref": "lakewatch.ResourceStatusLifecycle", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "updated_by": { - "launch_stage": "GA" + "pipeline_id": { + "description": "DLT ingestion-pipeline ID. Set only when this status represents the\ndatasource's ingestion pipeline (unset for job statuses).", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "run_state": { + "ref": "lakewatch.ResourceStatusRunState", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] } } }, - "marketplace.ExchangeFilter": { + "lakewatch.ResourceStatusLifecycle": { + "description": "Configured scheduling / existence of the job or pipeline.", + "enum": [ + "UNSCHEDULED", + "SCHEDULED", + "STOPPED", + "DELETED" + ], + "enum_launch_stages": { + "DELETED": "PUBLIC_BETA", + "SCHEDULED": "PUBLIC_BETA", + "STOPPED": "PUBLIC_BETA", + "UNSCHEDULED": "PUBLIC_BETA" + } + }, + "lakewatch.ResourceStatusRunState": { + "description": "Outcome / progress of the most recent (or in-flight) run.", + "enum": [ + "RUNNING", + "SUCCEEDED", + "FAILED", + "CANCELED" + ], + "enum_launch_stages": { + "CANCELED": "PUBLIC_BETA", + "FAILED": "PUBLIC_BETA", + "RUNNING": "PUBLIC_BETA", + "SUCCEEDED": "PUBLIC_BETA" + } + }, + "lakewatch.Rule": { + "description": "A Lakewatch detection rule: a query that evaluates ingested data and generates a signal for\neach match. Each rule is a securable in a Unity Catalog schema.", "fields": { - "created_at": { - "launch_stage": "GA" + "annotations": { + "description": "Free-form client-managed key/value annotations.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "batch": { + "description": "Batch SQL rule input.", + "ref": "lakewatch.RuleInputBatch", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "catalog_name": { + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "IMMUTABLE" + ] + }, + "category": { + "description": "Free-form rule category.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "compute_workspace_id": { + "description": "ID of the workspace whose compute runs this rule's jobs and owns its\nassociated resources, such as the SQL warehouse a scheduled rule runs on.\nServer-assigned; a rule's warehouse can only be changed from this workspace.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "content_resource_id": { + "description": "Immutable UUIDv4 identifying the authored content resource installed as this rule.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "IMMUTABLE", + "OPTIONAL" + ] + }, + "create_time": { + "description": "Time the rule was created.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, "created_by": { - "launch_stage": "GA" + "description": "Principal that created the rule.", + "ref": "lakewatch.Principal", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "exchange_id": { - "launch_stage": "GA" + "deduplication": { + "description": "Signal deduplication mode.", + "ref": "lakewatch.RuleDeduplication", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "filter_type": { - "ref": "marketplace.ExchangeFilterType", - "launch_stage": "GA" + "deduplication_time_window": { + "description": "Time window for deduplication, such as `1h`, `24h`, `7d`, or `automatic`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "filter_value": { - "launch_stage": "GA" + "description": { + "description": "Free-form description.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "id": { - "launch_stage": "GA" + "effective_catalog_name": { + "description": "Current name of the Unity Catalog catalog that contains the rule. Reflects catalog renames,\nwhich do not change `catalog_name`. Unset until resolved.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "name": { - "launch_stage": "GA" + "effective_rule_name": { + "description": "Current UC leaf name of the rule (server-owned). Tracks UC renames so callers\ncan observe the live name without having to update the client-owned\n`rule_name`; unset until resolved.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "updated_at": { - "launch_stage": "GA" + "effective_run_as_principal": { + "description": "The identity this rule's job runs as: the resolved `run_as_principal`, or the\nrequester's identity when it was omitted on create or cleared on update. The value is a user\nemail or service-principal application ID, falling back to the numeric principal ID if that\nidentity can no longer be resolved. Populated on single-rule reads (get/create/update); list\nresponses omit it.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "updated_by": { - "launch_stage": "GA" - } - } - }, - "marketplace.ExchangeFilterType": { - "enum": [ - "GLOBAL_METASTORE_ID" - ], - "enum_launch_stages": { - "GLOBAL_METASTORE_ID": "GA" - } - }, - "marketplace.ExchangeListing": { - "fields": { - "created_at": { - "launch_stage": "GA" + "effective_schema_name": { + "description": "Current name of the Unity Catalog schema that contains the rule. Reflects schema renames,\nwhich do not change `schema_name`. Unset until resolved.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "created_by": { - "launch_stage": "GA" + "etag": { + "description": "Opaque entity tag for optimistic concurrency. Content-version ETags change on\nuser edits and remain stable across runtime status updates.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "exchange_id": { - "launch_stage": "GA" + "fidelity": { + "description": "Signal quality for this rule.", + "ref": "lakewatch.RuleFidelity", + "launch_stage": "PUBLIC_BETA" }, - "exchange_name": { - "launch_stage": "GA" + "mitre": { + "description": "Up to 64 MITRE ATT\u0026CK mappings, producing at most 192 flattened alert tags.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "id": { - "launch_stage": "GA" + "name": { + "description": "Resource name, in the form `rules/{rule_id}`. Assigned by the server on create; required\non update.", + "launch_stage": "PUBLIC_BETA" }, - "listing_id": { - "launch_stage": "GA" + "objective": { + "description": "Long-form description of what this rule detects.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "listing_name": { - "launch_stage": "GA" - } - } - }, - "marketplace.FileInfo": { - "fields": { - "created_at": { - "launch_stage": "GA" + "original_content_pack": { + "description": "Reference to the content pack this rule was originally installed from.", + "ref": "lakewatch.ContentPackReference", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "display_name": { - "description": "Name displayed to users for applicable files, e.g. embedded notebooks", - "launch_stage": "GA" + "output": { + "description": "What to record in each signal.", + "ref": "lakewatch.RuleOutput", + "launch_stage": "PUBLIC_BETA" }, - "download_link": { - "launch_stage": "GA" + "owner": { + "description": "Unity Catalog owner of the rule. Assigned by the server. Populated by `GetRule`.", + "ref": "lakewatch.Principal", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "file_parent": { - "ref": "marketplace.FileParent", - "launch_stage": "GA" + "references": { + "description": "Ordered reference URLs carried from the authored rule metadata. A maximum of three references\nof up to 512 characters each is supported. Requests exceeding these limits are rejected.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "id": { - "launch_stage": "GA" + "rule_id": { + "description": "Unity Catalog securable UUID of the rule, and the last segment of `name`. Never changes,\nincluding when the rule's catalog or schema is renamed.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "marketplace_file_type": { - "ref": "marketplace.MarketplaceFileType", - "launch_stage": "GA" + "rule_name": { + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "IMMUTABLE" + ] }, - "mime_type": { - "launch_stage": "GA" + "run_as_principal": { + "description": "The principal whose identity this rule's job runs as, given as a\nuser email or service-principal application ID. When supplied on\ncreate/update, Lakewatch resolves the principal, records it on the rule, and\ncreates the delegation to run as that principal — the requester must be\nauthorized to delegate to it, or the request is rejected. When omitted on\ncreate, the requester's own identity is used. An update whose mask does not\ninclude `run_as_principal` keeps the current identity, and the requester must\nstill be authorized to delegate to it; an editor who is not must supply a\nrun_as_principal they can delegate to (for example, their own identity), or\nclear it, either of which reassigns the rule. An update whose mask includes\n`run_as_principal` but supplies no value clears it: the rule then runs as the\nrequester, exactly as when it is omitted on create. Reads return the value as\nsupplied; the identity the rule runs as is reported in\n`effective_run_as_principal`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "runbook": { + "description": "Long-form operational guidance carried from the authored rule metadata. Supports up to 4096\ncharacters. Requests exceeding this limit are rejected.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "schedule": { + "description": "When the rule executes.", + "ref": "lakewatch.RuleSchedule", + "launch_stage": "PUBLIC_BETA" + }, + "schema_name": { + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "IMMUTABLE" + ] + }, + "severity": { + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "launch_stage": "PUBLIC_BETA" }, "status": { - "ref": "marketplace.FileStatus", - "launch_stage": "GA" + "description": "Read-only lifecycle status.", + "ref": "lakewatch.ResourceStatus", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "status_message": { - "description": "Populated if status is in a failed state with more information on reason for the failure.", - "launch_stage": "GA" + "suppress_until_time": { + "description": "If set, this rule's signals do not open new alerts until the given time.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "updated_at": { - "launch_stage": "GA" + "timerange": { + "description": "Time-range configuration for batch rules. If unset, the execution time range is extended by\na fixed `15m` lookback.", + "ref": "lakewatch.RuleTimeRange", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "update_time": { + "description": "Time the rule was last updated.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "updated_by": { + "description": "Principal that last updated the rule.", + "ref": "lakewatch.Principal", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "version": { + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] } } }, - "marketplace.FileParent": { + "lakewatch.RuleConfig": { + "description": "Per-catalog rule-related config. Singleton.\nName format: `catalogs/{catalog}/ruleConfig`.", "fields": { - "file_parent_type": { - "ref": "marketplace.FileParentType", - "launch_stage": "GA" + "default_folder": { + "description": "Schema name of the registered folder (in this catalog) that a new rule is\nplaced in when the request does not specify a schema. Must name a schema\nregistered as a folder. Omit to clear. Reads return the value as supplied; the\nfolder's current schema name is reported in `effective_default_folder`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "parent_id": { - "launch_stage": "GA" + "default_schedule": { + "description": "Default schedule for rules that don't specify one.", + "ref": "lakewatch.RuleSchedule", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "default_signal_collation_window": { + "description": "Default duration string for signal deduplication when a rule\ndoesn't override it — compact day/hour/minute/second components, e.g.\n`5d`, `1h`. Reads return the value as supplied; there is no server default,\nso it is unset until set. An empty value clears it.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "detection_categories": { + "description": "Available detection categories a rule can be tagged with. Reads return the\nvalue as supplied. When empty, rules can be tagged with the default categories:\n`Static Signature`, `Fuzzy Signature`, `Behavioral`, `Statistical`, and\n`Learning (AI/ML)`. The categories in effect are reported in\n`effective_detection_categories`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "effective_default_folder": { + "description": "The current schema name of the `default_folder` folder. Tracks UC schema\nrenames. Unset when no default is configured, or when the folder's schema no\nlonger exists or is not visible to the caller.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "effective_detection_categories": { + "description": "The detection categories in effect: `detection_categories` when set,\notherwise the default categories.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "etag": { + "description": "Opaque entity tag for optimistic concurrency. Returned on every read;\npass it back as the Update request's `etag` to make the update\nconditional on the resource being unchanged.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "name": { + "launch_stage": "PUBLIC_BETA" + }, + "update_time": { + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "updated_by": { + "ref": "lakewatch.Principal", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "version": { + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] } } }, - "marketplace.FileParentType": { + "lakewatch.RuleDeduplication": { + "description": "Signal deduplication mode for a detection rule.", "enum": [ - "PROVIDER", - "LISTING", - "LISTING_RESOURCE" + "DEDUPLICATION_DEFAULT", + "DEDUPLICATION_ENABLED", + "DEDUPLICATION_DISABLED" ], "enum_launch_stages": { - "LISTING": "GA", - "LISTING_RESOURCE": "GA", - "PROVIDER": "GA" + "DEDUPLICATION_DEFAULT": "PUBLIC_BETA", + "DEDUPLICATION_DISABLED": "PUBLIC_BETA", + "DEDUPLICATION_ENABLED": "PUBLIC_BETA" } }, - "marketplace.FileStatus": { + "lakewatch.RuleFidelity": { + "description": "Maturity of a detection rule.", "enum": [ - "FILE_STATUS_PUBLISHED", - "FILE_STATUS_STAGING", - "FILE_STATUS_SANITIZING", - "FILE_STATUS_SANITIZATION_FAILED" + "FIDELITY_DEVELOPMENT", + "FIDELITY_INVESTIGATIVE", + "FIDELITY_MEDIUM", + "FIDELITY_HIGH" ], "enum_launch_stages": { - "FILE_STATUS_PUBLISHED": "GA", - "FILE_STATUS_SANITIZATION_FAILED": "GA", - "FILE_STATUS_SANITIZING": "GA", - "FILE_STATUS_STAGING": "GA" + "FIDELITY_DEVELOPMENT": "PUBLIC_BETA", + "FIDELITY_HIGH": "PUBLIC_BETA", + "FIDELITY_INVESTIGATIVE": "PUBLIC_BETA", + "FIDELITY_MEDIUM": "PUBLIC_BETA" } }, - "marketplace.FulfillmentType": { - "enum": [ - "REQUEST_ACCESS", - "INSTALL" - ], - "enum_launch_stages": { - "INSTALL": "GA", - "REQUEST_ACCESS": "GA" + "lakewatch.RuleInputBatch": { + "description": "Batch input for a detection rule.", + "fields": { + "custom": { + "description": "Custom-notebook user function. The output is used as input data for the\nrule.", + "ref": "lakewatch.RuleInputCustomNotebook", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "sql": { + "description": "SQL query evaluated as the rule input.", + "ref": "lakewatch.RuleInputBatchSql", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "warehouse_id": { + "description": "SQL warehouse used to run this batch rule.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + } } }, - "marketplace.GetExchangeRequest": {}, - "marketplace.GetExchangeResponse": { + "lakewatch.RuleInputBatchSql": { + "description": "Batch SQL input for a detection rule.", "fields": { - "exchange": { - "ref": "marketplace.Exchange", - "launch_stage": "GA" + "default_catalog_name": { + "description": "Default catalog used to resolve unqualified identifiers in `query`. If\nunset, the rule's `catalog_name` is used.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "default_schema_name": { + "description": "Default schema used to resolve unqualified identifiers in `query`. If\nunset, the rule's `schema_name` is used.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "query": { + "description": "SQL query evaluated as the rule input.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.GetFileRequest": {}, - "marketplace.GetFileResponse": { + "lakewatch.RuleInputCustomNotebook": { + "description": "Reference to a custom-user-function notebook for stream or batch input.", "fields": { - "file_info": { - "ref": "marketplace.FileInfo", - "launch_stage": "GA" + "notebook": { + "description": "Fully-qualified notebook path, or a path relative to the configured base\nnotebook directory.", + "launch_stage": "PUBLIC_BETA" + }, + "options": { + "description": "Optional arguments supplied when invoking the custom function.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.GetLatestVersionProviderAnalyticsDashboardRequest": {}, - "marketplace.GetLatestVersionProviderAnalyticsDashboardResponse": { + "lakewatch.RuleMitreMapping": { + "description": "MITRE ATT\u0026CK mapping for a detection rule.", "fields": { - "version": { - "description": "version here is latest logical version of the dashboard template", - "launch_stage": "GA" + "sub_technique": { + "description": "Human-readable MITRE sub-technique name.", + "launch_stage": "PUBLIC_BETA" + }, + "sub_technique_id": { + "description": "MITRE sub-technique ID, such as `T1078.001`.", + "launch_stage": "PUBLIC_BETA" + }, + "tactic": { + "description": "Adversary objective during this attack, such as `Command and Control`.", + "launch_stage": "PUBLIC_BETA" + }, + "taxonomy": { + "description": "Structured framework that organizes adversary behaviors, such as\n`mitre-attack`.", + "launch_stage": "PUBLIC_BETA" + }, + "technique": { + "description": "Human-readable MITRE technique name.", + "launch_stage": "PUBLIC_BETA" + }, + "technique_id": { + "description": "MITRE technique ID, such as `T1078`.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.GetListingContentMetadataRequest": { + "lakewatch.RuleOutput": { + "description": "What to record in each signal that this rule generates.", "fields": { - "page_size": { - "launch_stage": "GA" + "context": { + "description": "Key/value context to record from the input row. Values may contain SQL\nexpressions in braces.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "page_token": { - "launch_stage": "GA" + "default_context": { + "description": "If true, also record every column of the triggering input row. Custom\ncontext wins on key collision.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "event_time_column": { + "description": "Column in the rule output that holds the event timestamp.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "summary": { + "description": "Signal summary. May contain SQL expressions in braces that the\nserver substitutes from the input row.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.GetListingContentMetadataResponse": { + "lakewatch.RuleSchedule": { + "description": "Defines when a detection rule executes.\n\nA batch rule sets exactly one of `at_least_every` or `cron_expression`. A streaming rule runs\ncontinuously and sets no timing; it accepts only `enabled`, and an omitted schedule means\nenabled. The server rejects any other combination. `enabled` is orthogonal to the timing.", "fields": { - "next_page_token": { - "launch_stage": "GA" + "at_least_every": { + "description": "Defines the minimum cadence as a duration string. It may contain components\nfor days, hours, minutes, and seconds (e.g. `5d`, `5d3h`, `3d2h5m12s`,\n`12m16s`).", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "shared_data_objects": { - "launch_stage": "GA" + "continuous": { + "description": "Runs the rule continuously. Detection rules do not accept it: batch rules reject it, and\nstreaming rules run continuously without it.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "cron_expression": { + "description": "Defines the schedule using a Quartz cron expression.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "enabled": { + "description": "Sets whether the job is scheduled to run. Defaults to true.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.GetListingRequest": {}, - "marketplace.GetListingResponse": { + "lakewatch.RuleTimeRange": { + "description": "Time-range configuration for a batch detection rule.", "fields": { - "listing": { - "ref": "marketplace.Listing", - "launch_stage": "GA" + "extend_lookback": { + "description": "Extends the start of the execution time range by a compact duration with integer\ndays, hours, minutes, and seconds in that order, such as `1h30m` or `15m`.\nZero duration disables extension. Unset or empty uses a fixed `15m` at execution\ntime. Only the start moves; the end is unchanged. Has no effect on batch SQL\nthat does not use `IN_TIMERANGE`. Values must fit signed 64-bit microseconds.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.GetListingsRequest": { + "lakewatch.RuleView": { + "description": "Selects how much of each rule a list response returns.", + "enum": [ + "RULE_VIEW_BASIC", + "RULE_VIEW_FULL" + ], + "enum_launch_stages": { + "RULE_VIEW_BASIC": "PUBLIC_BETA", + "RULE_VIEW_FULL": "PUBLIC_BETA" + } + }, + "lakewatch.Schedule": { + "description": "Defines when a recurring job executes.\n\nExactly one of the timing modes (`at_least_every`, `cron_expression`,\n`continuous`) must be set; combining them or setting none is rejected by the\nserver. `compute_group` and `enabled` are orthogonal to the timing.", "fields": { - "page_size": { - "launch_stage": "GA" + "at_least_every": { + "description": "Duration string defining the minimum cadence. May contain components\nfor days, hours, minutes, seconds (e.g. `5d`, `5d3h`, `3d2h5m12s`,\n`12m16s`).", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "page_token": { - "launch_stage": "GA" + "compute_group": { + "description": "`dedicated`, `inherited`, `automatic`, or a custom group name. Reads return\nthe value as supplied. A rule whose schedule omits it runs on `dedicated`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "continuous": { + "description": "Run continuously (sentinel — must be `true` when set in this branch).", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "cron_expression": { + "description": "Quartz cron expression.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "enabled": { + "description": "Whether the job is scheduled to run. Defaults to true.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.GetListingsResponse": { + "lakewatch.ServiceNowExportConfig": { + "description": "ServiceNow destination. Alerts are delivered to the instance's Table API,\nauthorized by an OAuth 2.0 client-credentials token minted from the registered\napplication's client ID and secret.", "fields": { - "listings": { - "launch_stage": "GA" + "client_id": { + "description": "OAuth client ID of the registered ServiceNow application. An identifier rather\nthan secret material — ServiceNow shows it on the application record — so it\nis stored and read back verbatim.", + "launch_stage": "PUBLIC_BETA" }, - "next_page_token": { - "launch_stage": "GA" + "client_secret_uc_secret": { + "description": "Three-level Unity Catalog name (`catalog.schema.secret`) of the secret holding\nthe OAuth client secret. Only the name is stored; the secret is read when an alert\nis exported, so rotating it takes effect without editing this config.", + "launch_stage": "PUBLIC_BETA" + }, + "instance_id": { + "description": "ServiceNow instance ID — the host label only, not the full URL. For an\ninstance reachable at `https://acme.service-now.com`, this is `acme`.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.GetPersonalizationRequestRequest": {}, - "marketplace.GetPersonalizationRequestResponse": { + "lakewatch.SlackExportConfig": { "fields": { - "personalization_requests": { - "launch_stage": "GA" + "bot_token_uc_secret": { + "description": "Three-level Unity Catalog name (`catalog.schema.secret`) of the secret holding\nthe Slack bot token. Only the name is stored; the token is read when an alert is\nexported, so rotating the secret takes effect without editing this config.", + "launch_stage": "PUBLIC_BETA" + }, + "channel": { + "description": "Channel the alert is posted to: a channel ID (e.g. `C0123456789`) or a channel\nname without the leading `#` (e.g. `soc-alerts`). The value is stored as sent, so\na leading `#`, surrounding whitespace, or a value naming more than one channel is\nrejected. For private channels, prefer the channel ID — Slack does not guarantee\nname resolution for those.\n\nThe Slack app must be a member of the channel and hold the `chat:write` scope.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.GetProviderRequest": {}, - "marketplace.GetProviderResponse": { + "lakewatch.TableName": { + "description": "A fully-qualified Unity Catalog table reference by catalog / schema / table\nname.", "fields": { - "provider": { - "ref": "marketplace.ProviderInfo", - "launch_stage": "GA" + "catalog_name": { + "description": "Name of the parent Unity Catalog catalog.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "schema_name": { + "description": "Name of the parent Unity Catalog schema.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "table_name": { + "description": "Unity Catalog table name.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.Installation": { + "lakewatch.TinesExportConfig": { + "description": "Tines destination. Alerts are delivered to a Tines webhook action, authorized\nby a secret sent in the `Authorization` header.", "fields": { - "installation": { - "ref": "marketplace.InstallationDetail", - "launch_stage": "GA" + "export_updates": { + "description": "Whether a later change to an already-exported alert is delivered too, as a second\n`lakewatch.alert.updated` event to the same webhook action (a close is such an update,\ncarrying a terminal `alert_state`). Creation export is unaffected either way.\n\nOpt-in, and unset means off: Tines is an event transport rather than a system whose record is\nedited in place, so an update is an extra event the receiving story has to correlate to the\nalert it already handled. A destination configured before this event existed must not start\nreceiving more without its owner asking.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "webhook_secret_uc_secret": { + "description": "Three-level Unity Catalog name (`catalog.schema.secret`) of the secret holding the Tines\nwebhook secret. Only the name is stored; the secret is read when an alert is exported, so\nrotating it takes effect without editing this config. Required: without it the destination\nwould be an unauthenticated endpoint.", + "launch_stage": "PUBLIC_BETA" + }, + "webhook_uri": { + "description": "Tines webhook action URL, typically of the form\n`https://\u003ctenant\u003e.tines.com/webhook/\u003cpath\u003e`. Any HTTPS host is accepted, so\nthat a Tines tenant on a custom domain works.\n\nThe secret is sent as a header, so it must not be embedded in the URL: a\ntrailing secret path segment (`/webhook/\u003cpath\u003e/\u003csecret\u003e`) and a `secret`\nquery parameter are both rejected. API-path-prefix URLs (`/api/public/...`)\nare not supported.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.InstallationDetail": { + "lakewatch.UnityCatalogConnection": { + "description": "Ingests data through a managed connector that uses a Unity Catalog connection. Mutually\nexclusive with `autoloader` and `existing_table`.", "fields": { - "catalog_name": { - "launch_stage": "GA" - }, - "error_message": { - "launch_stage": "GA" - }, - "id": { - "launch_stage": "GA" - }, - "installed_on": { - "launch_stage": "GA" - }, - "listing_id": { - "launch_stage": "GA" - }, - "listing_name": { - "launch_stage": "GA" - }, - "recipient_type": { - "ref": "marketplace.DeltaSharingRecipientType", - "launch_stage": "GA" + "configuration": { + "description": "Free-form key-value configuration for the managed ingestion pipeline.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "repo_name": { - "launch_stage": "GA" + "connection_name": { + "description": "Name of the Unity Catalog connection to ingest through.", + "launch_stage": "PUBLIC_BETA" }, - "repo_path": { - "launch_stage": "GA" + "connector": { + "description": "Connector type of the connection, such as `SLACK_AUDIT_LOGS`. Resolved by the server from\n`connection_name` through Unity Catalog; not accepted as input.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "share_name": { - "launch_stage": "GA" + "effective_start_time": { + "description": "The start time ingestion uses: the supplied `start_time`, or the creation time when it was\nomitted. Always populated.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] }, - "status": { - "ref": "marketplace.InstallationStatus", - "launch_stage": "GA" + "start_time": { + "description": "Earliest source event time to ingest. Leave unset to start at creation time, with no\nhistory backfilled. Rejected if in the future, beyond the connector's history window, or\nfor a connector without start-time support. Takes effect only at first start and cannot\nbe changed. Reads return the value as supplied; the start time ingestion uses is reported\nin `effective_start_time`.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "lakewatch.UpdateAlertConfigRequest": { + "fields": { + "alert_config": { + "ref": "lakewatch.AlertConfig", + "launch_stage": "PUBLIC_BETA" }, - "token_detail": { - "ref": "marketplace.TokenDetail", - "launch_stage": "GA" + "etag": { + "description": "Optimistic-concurrency precondition: if set and it does not match the\nresource's current `etag`, the update is rejected as a conflict (HTTP 409).", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "tokens": { - "launch_stage": "GA" + "update_mask": { + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.InstallationStatus": { - "enum": [ - "INSTALLED", - "FAILED" - ], - "enum_launch_stages": { - "FAILED": "GA", - "INSTALLED": "GA" + "lakewatch.UpdateCommonConfigRequest": { + "fields": { + "common_config": { + "ref": "lakewatch.CommonConfig", + "launch_stage": "PUBLIC_BETA" + }, + "etag": { + "description": "Optimistic-concurrency precondition: if set and it does not match the\nresource's current `etag`, the update is rejected as a conflict (HTTP 409).", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "update_mask": { + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "launch_stage": "PUBLIC_BETA" + } } }, - "marketplace.ListAllInstallationsRequest": { + "lakewatch.UpdateDatasourceConfigRequest": { "fields": { - "page_size": { - "launch_stage": "GA" + "datasource_config": { + "ref": "lakewatch.DatasourceConfig", + "launch_stage": "PUBLIC_BETA" }, - "page_token": { - "launch_stage": "GA" + "etag": { + "description": "Optimistic-concurrency precondition: if set and it does not match the\nresource's current `etag`, the update is rejected as a conflict (HTTP 409).", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "update_mask": { + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.ListAllInstallationsResponse": { + "lakewatch.UpdateDatasourceRequest": { "fields": { - "installations": { - "launch_stage": "GA" + "datasource": { + "ref": "lakewatch.Datasource", + "launch_stage": "PUBLIC_BETA" }, - "next_page_token": { - "launch_stage": "GA" + "etag": { + "description": "Optimistic-concurrency precondition: if set to a non-empty value that does\nnot match the resource's current `etag`, the update is rejected as a\nconflict (HTTP 409). Omit this field or send an empty string to update\nunconditionally.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "update_mask": { + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.ListAllPersonalizationRequestsRequest": { + "lakewatch.UpdateRuleConfigRequest": { "fields": { - "page_size": { - "launch_stage": "GA" + "etag": { + "description": "Optimistic-concurrency precondition: if set and it does not match the\nresource's current `etag`, the update is rejected as a conflict (HTTP 409).", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "page_token": { - "launch_stage": "GA" + "rule_config": { + "ref": "lakewatch.RuleConfig", + "launch_stage": "PUBLIC_BETA" + }, + "update_mask": { + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.ListAllPersonalizationRequestsResponse": { + "lakewatch.UpdateRuleRequest": { "fields": { - "next_page_token": { - "launch_stage": "GA" + "etag": { + "description": "Optimistic-concurrency token from the latest read. A non-empty token that\ndoes not match the current `etag` rejects the update as a conflict (HTTP 409).\nOmit this field or provide an empty string to update unconditionally.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "personalization_requests": { - "launch_stage": "GA" + "rule": { + "description": "The rule with its new field values. `rule.name` identifies the rule to\nupdate.", + "ref": "lakewatch.Rule", + "launch_stage": "PUBLIC_BETA" + }, + "update_mask": { + "description": "The set of fields to update. Only fields named in the mask are modified.", + "launch_stage": "PUBLIC_BETA" } } }, - "marketplace.ListConsumerProvidersRequest": { + "lakewatch.WebhookExportConfig": { "fields": { - "is_featured": { - "launch_stage": "GA" - }, - "page_size": { - "launch_stage": "GA" + "export_updates": { + "description": "Whether a later change to an already-exported alert is delivered too, as a second\n`lakewatch.alert.updated` event to the same webhook URL (a close is such an update, carrying a\nterminal `alert_state`). Creation export is unaffected either way.\n\nOpt-in, and unset means off: a webhook is an event transport rather than a system whose record\nis edited in place, so an update is an extra event the receiving consumer has to correlate to\nthe alert it already handled. A destination configured before this event existed must not start\nreceiving more without its owner asking.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] }, - "page_token": { - "launch_stage": "GA" + "url": { + "description": "Webhook destination the server POSTs payloads to, in plaintext. Userinfo\n(`user:password@`) is sent as HTTP Basic auth.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, - "marketplace.ListExchangeFiltersRequest": { + "marketplace.AddExchangeForListingRequest": { "fields": { "exchange_id": { "launch_stage": "GA" }, - "page_size": { - "launch_stage": "GA" - }, - "page_token": { + "listing_id": { "launch_stage": "GA" } } }, - "marketplace.ListExchangeFiltersResponse": { + "marketplace.AddExchangeForListingResponse": { "fields": { - "filters": { - "launch_stage": "GA" - }, - "next_page_token": { + "exchange_for_listing": { + "ref": "marketplace.ExchangeListing", "launch_stage": "GA" } } }, - "marketplace.ListExchangesForListingRequest": { + "marketplace.AssetType": { + "enum": [ + "ASSET_TYPE_GIT_REPO", + "ASSET_TYPE_DATA_TABLE", + "ASSET_TYPE_MODEL", + "ASSET_TYPE_NOTEBOOK", + "ASSET_TYPE_MEDIA", + "ASSET_TYPE_PARTNER_INTEGRATION", + "ASSET_TYPE_APP", + "ASSET_TYPE_MCP" + ], + "enum_launch_stages": { + "ASSET_TYPE_APP": "GA", + "ASSET_TYPE_DATA_TABLE": "GA", + "ASSET_TYPE_GIT_REPO": "GA", + "ASSET_TYPE_MCP": "GA", + "ASSET_TYPE_MEDIA": "GA", + "ASSET_TYPE_MODEL": "GA", + "ASSET_TYPE_NOTEBOOK": "GA", + "ASSET_TYPE_PARTNER_INTEGRATION": "GA" + } + }, + "marketplace.BatchGetListingsRequest": { "fields": { - "listing_id": { - "launch_stage": "GA" - }, - "page_size": { - "launch_stage": "GA" - }, - "page_token": { + "ids": { "launch_stage": "GA" } } }, - "marketplace.ListExchangesForListingResponse": { + "marketplace.BatchGetListingsResponse": { "fields": { - "exchange_listing": { - "launch_stage": "GA" - }, - "next_page_token": { + "listings": { "launch_stage": "GA" } } }, - "marketplace.ListExchangesRequest": { + "marketplace.BatchGetProvidersRequest": { "fields": { - "page_size": { - "launch_stage": "GA" - }, - "page_token": { + "ids": { "launch_stage": "GA" } } }, - "marketplace.ListExchangesResponse": { + "marketplace.BatchGetProvidersResponse": { "fields": { - "exchanges": { + "providers": { "launch_stage": "GA" - }, - "next_page_token": { + } + } + }, + "marketplace.Category": { + "enum": [ + "ADVERTISING_AND_MARKETING", + "CLIMATE_AND_ENVIRONMENT", + "COMMERCE", + "DEMOGRAPHICS", + "ECONOMICS", + "EDUCATION", + "ENERGY", + "FINANCIAL", + "GAMING", + "GEOSPATIAL", + "HEALTH", + "LOOKUP_TABLES", + "MANUFACTURING", + "MEDIA", + "OTHER", + "PUBLIC_SECTOR", + "RETAIL", + "SECURITY", + "SCIENCE_AND_RESEARCH", + "SPORTS", + "TRANSPORTATION_AND_LOGISTICS", + "TRAVEL_AND_TOURISM" + ], + "enum_launch_stages": { + "ADVERTISING_AND_MARKETING": "GA", + "CLIMATE_AND_ENVIRONMENT": "GA", + "COMMERCE": "GA", + "DEMOGRAPHICS": "GA", + "ECONOMICS": "GA", + "EDUCATION": "GA", + "ENERGY": "GA", + "FINANCIAL": "GA", + "GAMING": "GA", + "GEOSPATIAL": "GA", + "HEALTH": "GA", + "LOOKUP_TABLES": "GA", + "MANUFACTURING": "GA", + "MEDIA": "GA", + "OTHER": "GA", + "PUBLIC_SECTOR": "GA", + "RETAIL": "GA", + "SCIENCE_AND_RESEARCH": "GA", + "SECURITY": "GA", + "SPORTS": "GA", + "TRANSPORTATION_AND_LOGISTICS": "GA", + "TRAVEL_AND_TOURISM": "GA" + } + }, + "marketplace.ConsumerTerms": { + "fields": { + "version": { "launch_stage": "GA" } } }, - "marketplace.ListFilesRequest": { + "marketplace.ContactInfo": { + "description": "contact info for the consumer requesting data or performing a listing installation", "fields": { - "file_parent": { - "ref": "marketplace.FileParent", + "company": { "launch_stage": "GA" }, - "page_size": { + "email": { "launch_stage": "GA" }, - "page_token": { + "first_name": { + "launch_stage": "GA" + }, + "last_name": { "launch_stage": "GA" } } }, - "marketplace.ListFilesResponse": { + "marketplace.Cost": { + "enum": [ + "FREE", + "PAID" + ], + "enum_launch_stages": { + "FREE": "GA", + "PAID": "GA" + } + }, + "marketplace.CreateExchangeFilterRequest": { "fields": { - "file_infos": { - "launch_stage": "GA" - }, - "next_page_token": { + "filter": { + "ref": "marketplace.ExchangeFilter", "launch_stage": "GA" } } }, - "marketplace.ListFulfillmentsRequest": { + "marketplace.CreateExchangeFilterResponse": { "fields": { - "page_size": { - "launch_stage": "GA" - }, - "page_token": { + "filter_id": { "launch_stage": "GA" } } }, - "marketplace.ListFulfillmentsResponse": { + "marketplace.CreateExchangeRequest": { "fields": { - "fulfillments": { + "exchange": { + "ref": "marketplace.Exchange", "launch_stage": "GA" - }, - "next_page_token": { + } + } + }, + "marketplace.CreateExchangeResponse": { + "fields": { + "exchange_id": { "launch_stage": "GA" } } }, - "marketplace.ListInstallationsRequest": { + "marketplace.CreateFileRequest": { "fields": { - "page_size": { + "display_name": { "launch_stage": "GA" }, - "page_token": { + "file_parent": { + "ref": "marketplace.FileParent", + "launch_stage": "GA" + }, + "marketplace_file_type": { + "ref": "marketplace.MarketplaceFileType", + "launch_stage": "GA" + }, + "mime_type": { "launch_stage": "GA" } } }, - "marketplace.ListInstallationsResponse": { + "marketplace.CreateFileResponse": { "fields": { - "installations": { + "file_info": { + "ref": "marketplace.FileInfo", "launch_stage": "GA" }, - "next_page_token": { + "upload_url": { + "description": "Pre-signed POST URL to blob storage", "launch_stage": "GA" } } }, - "marketplace.ListListingsForExchangeRequest": { + "marketplace.CreateInstallationRequest": { "fields": { - "exchange_id": { + "accepted_consumer_terms": { + "ref": "marketplace.ConsumerTerms", "launch_stage": "GA" }, - "page_size": { + "catalog_name": { "launch_stage": "GA" }, - "page_token": { + "recipient_type": { + "ref": "marketplace.DeltaSharingRecipientType", + "launch_stage": "GA" + }, + "repo_detail": { + "description": "for git repo installations", + "ref": "marketplace.RepoInstallation", + "launch_stage": "GA" + }, + "share_name": { "launch_stage": "GA" } } }, - "marketplace.ListListingsForExchangeResponse": { + "marketplace.CreateListingRequest": { "fields": { - "exchange_listings": { - "launch_stage": "GA" - }, - "next_page_token": { + "listing": { + "ref": "marketplace.Listing", "launch_stage": "GA" } } }, - "marketplace.ListListingsRequest": { + "marketplace.CreateListingResponse": { "fields": { - "assets": { - "description": "Matches any of the following asset types", + "listing_id": { "launch_stage": "GA" - }, - "categories": { - "description": "Matches any of the following categories", + } + } + }, + "marketplace.CreatePersonalizationRequest": { + "description": "Data request messages\nalso creates a lead (maybe)", + "fields": { + "accepted_consumer_terms": { + "ref": "marketplace.ConsumerTerms", "launch_stage": "GA" }, - "is_free": { - "description": "Filters each listing based on if it is free.", + "comment": { "launch_stage": "GA" }, - "is_private_exchange": { - "description": "Filters each listing based on if it is a private exchange.", + "company": { "launch_stage": "GA" }, - "is_staff_pick": { - "description": "Filters each listing based on whether it is a staff pick.", + "first_name": { "launch_stage": "GA" }, - "page_size": { + "intended_use": { "launch_stage": "GA" }, - "page_token": { + "is_from_lighthouse": { "launch_stage": "GA" }, - "provider_ids": { - "description": "Matches any of the following provider ids", + "last_name": { "launch_stage": "GA" }, - "tags": { - "description": "Matches listings with this tag", - "ref": "marketplace.ListingTag", + "recipient_type": { + "ref": "marketplace.DeltaSharingRecipientType", "launch_stage": "GA" } } }, - "marketplace.ListListingsResponse": { + "marketplace.CreatePersonalizationRequestResponse": { "fields": { - "listings": { - "launch_stage": "GA" - }, - "next_page_token": { + "id": { "launch_stage": "GA" } } }, - "marketplace.ListProviderAnalyticsDashboardRequest": {}, - "marketplace.ListProviderAnalyticsDashboardResponse": { + "marketplace.CreateProviderAnalyticsDashboardRequest": {}, + "marketplace.CreateProviderRequest": { "fields": { - "dashboard_id": { - "description": "dashboard_id will be used to open Lakeview dashboard.", - "launch_stage": "GA" - }, - "id": { + "provider": { + "ref": "marketplace.ProviderInfo", + "launch_stage": "GA" + } + } + }, + "marketplace.CreateProviderResponse": { + "fields": { + "id": { + "launch_stage": "GA" + } + } + }, + "marketplace.DataRefresh": { + "enum": [ + "NONE", + "SECOND", + "MINUTE", + "HOURLY", + "DAILY", + "WEEKLY", + "MONTHLY", + "QUARTERLY", + "YEARLY" + ], + "enum_launch_stages": { + "DAILY": "GA", + "HOURLY": "GA", + "MINUTE": "GA", + "MONTHLY": "GA", + "NONE": "GA", + "QUARTERLY": "GA", + "SECOND": "GA", + "WEEKLY": "GA", + "YEARLY": "GA" + } + }, + "marketplace.DataRefreshInfo": { + "fields": { + "interval": { + "launch_stage": "GA" + }, + "unit": { + "ref": "marketplace.DataRefresh", + "launch_stage": "GA" + } + } + }, + "marketplace.DeleteExchangeFilterRequest": {}, + "marketplace.DeleteExchangeFilterResponse": {}, + "marketplace.DeleteExchangeRequest": {}, + "marketplace.DeleteExchangeResponse": {}, + "marketplace.DeleteFileRequest": {}, + "marketplace.DeleteFileResponse": {}, + "marketplace.DeleteInstallationRequest": {}, + "marketplace.DeleteInstallationResponse": {}, + "marketplace.DeleteListingRequest": {}, + "marketplace.DeleteListingResponse": {}, + "marketplace.DeleteProviderRequest": {}, + "marketplace.DeleteProviderResponse": {}, + "marketplace.DeltaSharingRecipientType": { + "enum": [ + "DELTA_SHARING_RECIPIENT_TYPE_DATABRICKS", + "DELTA_SHARING_RECIPIENT_TYPE_OPEN" + ], + "enum_launch_stages": { + "DELTA_SHARING_RECIPIENT_TYPE_DATABRICKS": "GA", + "DELTA_SHARING_RECIPIENT_TYPE_OPEN": "GA" + } + }, + "marketplace.Exchange": { + "fields": { + "comment": { + "launch_stage": "GA" + }, + "created_at": { + "launch_stage": "GA" + }, + "created_by": { + "launch_stage": "GA" + }, + "filters": { + "launch_stage": "GA" + }, + "id": { + "launch_stage": "GA" + }, + "linked_listings": { + "launch_stage": "GA" + }, + "name": { + "launch_stage": "GA" + }, + "updated_at": { + "launch_stage": "GA" + }, + "updated_by": { + "launch_stage": "GA" + } + } + }, + "marketplace.ExchangeFilter": { + "fields": { + "created_at": { + "launch_stage": "GA" + }, + "created_by": { + "launch_stage": "GA" + }, + "exchange_id": { + "launch_stage": "GA" + }, + "filter_type": { + "ref": "marketplace.ExchangeFilterType", + "launch_stage": "GA" + }, + "filter_value": { + "launch_stage": "GA" + }, + "id": { + "launch_stage": "GA" + }, + "name": { + "launch_stage": "GA" + }, + "updated_at": { + "launch_stage": "GA" + }, + "updated_by": { + "launch_stage": "GA" + } + } + }, + "marketplace.ExchangeFilterType": { + "enum": [ + "GLOBAL_METASTORE_ID" + ], + "enum_launch_stages": { + "GLOBAL_METASTORE_ID": "GA" + } + }, + "marketplace.ExchangeListing": { + "fields": { + "created_at": { + "launch_stage": "GA" + }, + "created_by": { + "launch_stage": "GA" + }, + "exchange_id": { + "launch_stage": "GA" + }, + "exchange_name": { + "launch_stage": "GA" + }, + "id": { + "launch_stage": "GA" + }, + "listing_id": { + "launch_stage": "GA" + }, + "listing_name": { + "launch_stage": "GA" + } + } + }, + "marketplace.FileInfo": { + "fields": { + "created_at": { + "launch_stage": "GA" + }, + "display_name": { + "description": "Name displayed to users for applicable files, e.g. embedded notebooks", + "launch_stage": "GA" + }, + "download_link": { + "launch_stage": "GA" + }, + "file_parent": { + "ref": "marketplace.FileParent", + "launch_stage": "GA" + }, + "id": { + "launch_stage": "GA" + }, + "marketplace_file_type": { + "ref": "marketplace.MarketplaceFileType", + "launch_stage": "GA" + }, + "mime_type": { + "launch_stage": "GA" + }, + "status": { + "ref": "marketplace.FileStatus", + "launch_stage": "GA" + }, + "status_message": { + "description": "Populated if status is in a failed state with more information on reason for the failure.", + "launch_stage": "GA" + }, + "updated_at": { + "launch_stage": "GA" + } + } + }, + "marketplace.FileParent": { + "fields": { + "file_parent_type": { + "ref": "marketplace.FileParentType", + "launch_stage": "GA" + }, + "parent_id": { + "launch_stage": "GA" + } + } + }, + "marketplace.FileParentType": { + "enum": [ + "PROVIDER", + "LISTING", + "LISTING_RESOURCE" + ], + "enum_launch_stages": { + "LISTING": "GA", + "LISTING_RESOURCE": "GA", + "PROVIDER": "GA" + } + }, + "marketplace.FileStatus": { + "enum": [ + "FILE_STATUS_PUBLISHED", + "FILE_STATUS_STAGING", + "FILE_STATUS_SANITIZING", + "FILE_STATUS_SANITIZATION_FAILED" + ], + "enum_launch_stages": { + "FILE_STATUS_PUBLISHED": "GA", + "FILE_STATUS_SANITIZATION_FAILED": "GA", + "FILE_STATUS_SANITIZING": "GA", + "FILE_STATUS_STAGING": "GA" + } + }, + "marketplace.FulfillmentType": { + "enum": [ + "REQUEST_ACCESS", + "INSTALL" + ], + "enum_launch_stages": { + "INSTALL": "GA", + "REQUEST_ACCESS": "GA" + } + }, + "marketplace.GetExchangeRequest": {}, + "marketplace.GetExchangeResponse": { + "fields": { + "exchange": { + "ref": "marketplace.Exchange", + "launch_stage": "GA" + } + } + }, + "marketplace.GetFileRequest": {}, + "marketplace.GetFileResponse": { + "fields": { + "file_info": { + "ref": "marketplace.FileInfo", + "launch_stage": "GA" + } + } + }, + "marketplace.GetLatestVersionProviderAnalyticsDashboardRequest": {}, + "marketplace.GetLatestVersionProviderAnalyticsDashboardResponse": { + "fields": { + "version": { + "description": "version here is latest logical version of the dashboard template", + "launch_stage": "GA" + } + } + }, + "marketplace.GetListingContentMetadataRequest": { + "fields": { + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.GetListingContentMetadataResponse": { + "fields": { + "next_page_token": { + "launch_stage": "GA" + }, + "shared_data_objects": { + "launch_stage": "GA" + } + } + }, + "marketplace.GetListingRequest": {}, + "marketplace.GetListingResponse": { + "fields": { + "listing": { + "ref": "marketplace.Listing", + "launch_stage": "GA" + } + } + }, + "marketplace.GetListingsRequest": { + "fields": { + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.GetListingsResponse": { + "fields": { + "listings": { + "launch_stage": "GA" + }, + "next_page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.GetPersonalizationRequestRequest": {}, + "marketplace.GetPersonalizationRequestResponse": { + "fields": { + "personalization_requests": { + "launch_stage": "GA" + } + } + }, + "marketplace.GetProviderRequest": {}, + "marketplace.GetProviderResponse": { + "fields": { + "provider": { + "ref": "marketplace.ProviderInfo", + "launch_stage": "GA" + } + } + }, + "marketplace.Installation": { + "fields": { + "installation": { + "ref": "marketplace.InstallationDetail", + "launch_stage": "GA" + } + } + }, + "marketplace.InstallationDetail": { + "fields": { + "catalog_name": { + "launch_stage": "GA" + }, + "error_message": { + "launch_stage": "GA" + }, + "id": { + "launch_stage": "GA" + }, + "installed_on": { + "launch_stage": "GA" + }, + "listing_id": { + "launch_stage": "GA" + }, + "listing_name": { + "launch_stage": "GA" + }, + "recipient_type": { + "ref": "marketplace.DeltaSharingRecipientType", + "launch_stage": "GA" + }, + "repo_name": { + "launch_stage": "GA" + }, + "repo_path": { + "launch_stage": "GA" + }, + "share_name": { + "launch_stage": "GA" + }, + "status": { + "ref": "marketplace.InstallationStatus", + "launch_stage": "GA" + }, + "token_detail": { + "ref": "marketplace.TokenDetail", + "launch_stage": "GA" + }, + "tokens": { + "launch_stage": "GA" + } + } + }, + "marketplace.InstallationStatus": { + "enum": [ + "INSTALLED", + "FAILED" + ], + "enum_launch_stages": { + "FAILED": "GA", + "INSTALLED": "GA" + } + }, + "marketplace.ListAllInstallationsRequest": { + "fields": { + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListAllInstallationsResponse": { + "fields": { + "installations": { + "launch_stage": "GA" + }, + "next_page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListAllPersonalizationRequestsRequest": { + "fields": { + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListAllPersonalizationRequestsResponse": { + "fields": { + "next_page_token": { + "launch_stage": "GA" + }, + "personalization_requests": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListConsumerProvidersRequest": { + "fields": { + "is_featured": { + "launch_stage": "GA" + }, + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListExchangeFiltersRequest": { + "fields": { + "exchange_id": { + "launch_stage": "GA" + }, + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListExchangeFiltersResponse": { + "fields": { + "filters": { + "launch_stage": "GA" + }, + "next_page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListExchangesForListingRequest": { + "fields": { + "listing_id": { + "launch_stage": "GA" + }, + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListExchangesForListingResponse": { + "fields": { + "exchange_listing": { + "launch_stage": "GA" + }, + "next_page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListExchangesRequest": { + "fields": { + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListExchangesResponse": { + "fields": { + "exchanges": { + "launch_stage": "GA" + }, + "next_page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListFilesRequest": { + "fields": { + "file_parent": { + "ref": "marketplace.FileParent", + "launch_stage": "GA" + }, + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListFilesResponse": { + "fields": { + "file_infos": { + "launch_stage": "GA" + }, + "next_page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListFulfillmentsRequest": { + "fields": { + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListFulfillmentsResponse": { + "fields": { + "fulfillments": { + "launch_stage": "GA" + }, + "next_page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListInstallationsRequest": { + "fields": { + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListInstallationsResponse": { + "fields": { + "installations": { + "launch_stage": "GA" + }, + "next_page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListListingsForExchangeRequest": { + "fields": { + "exchange_id": { + "launch_stage": "GA" + }, + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListListingsForExchangeResponse": { + "fields": { + "exchange_listings": { + "launch_stage": "GA" + }, + "next_page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListListingsRequest": { + "fields": { + "assets": { + "description": "Matches any of the following asset types", + "launch_stage": "GA" + }, + "categories": { + "description": "Matches any of the following categories", + "launch_stage": "GA" + }, + "is_free": { + "description": "Filters each listing based on if it is free.", + "launch_stage": "GA" + }, + "is_private_exchange": { + "description": "Filters each listing based on if it is a private exchange.", + "launch_stage": "GA" + }, + "is_staff_pick": { + "description": "Filters each listing based on whether it is a staff pick.", + "launch_stage": "GA" + }, + "page_size": { + "launch_stage": "GA" + }, + "page_token": { + "launch_stage": "GA" + }, + "provider_ids": { + "description": "Matches any of the following provider ids", + "launch_stage": "GA" + }, + "tags": { + "description": "Matches listings with this tag", + "ref": "marketplace.ListingTag", + "launch_stage": "GA" + } + } + }, + "marketplace.ListListingsResponse": { + "fields": { + "listings": { + "launch_stage": "GA" + }, + "next_page_token": { + "launch_stage": "GA" + } + } + }, + "marketplace.ListProviderAnalyticsDashboardRequest": {}, + "marketplace.ListProviderAnalyticsDashboardResponse": { + "fields": { + "dashboard_id": { + "description": "dashboard_id will be used to open Lakeview dashboard.", + "launch_stage": "GA" + }, + "id": { "launch_stage": "GA" }, "version": { @@ -41748,6 +43761,15 @@ } } }, + "ml.CreateFeatureSpecRequest": { + "fields": { + "feature_spec": { + "description": "The feature spec to create.", + "ref": "ml.FeatureSpec", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "ml.CreateFeatureTagRequest": { "fields": { "feature_tag": { @@ -42281,6 +44303,31 @@ } } }, + "ml.DeclarativeFeature": { + "description": "A reference to a Feature.", + "fields": { + "feature": { + "description": "Three-part Unity Catalog name (catalog.schema.feature) of the Feature.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "ml.DefaultValue": { + "description": "A default value for a looked-up feature.", + "fields": { + "default_value": { + "description": "Default value for the feature.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "feature": { + "description": "Name of the feature: its output name if it is renamed, otherwise its name in the feature table.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "ml.DeleteCommentRequest": { "fields": { "id": { @@ -42300,6 +44347,7 @@ }, "ml.DeleteExperimentResponse": {}, "ml.DeleteFeatureRequest": {}, + "ml.DeleteFeatureSpecRequest": {}, "ml.DeleteFeatureTagRequest": {}, "ml.DeleteKafkaConfigRequest": {}, "ml.DeleteLoggedModelRequest": {}, @@ -43005,6 +45053,42 @@ } } }, + "ml.FeatureFunction": { + "description": "A Python UDF that computes a feature.", + "fields": { + "input_bindings": { + "description": "Bindings of the UDF's parameters to features.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "output": { + "description": "Output name of the feature that the UDF computes.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "udf": { + "description": "Three-part name of the Python UDF.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "ml.FeatureFunctionInputBinding": { + "description": "Binds one parameter of the UDF to a feature.", + "fields": { + "bound_feature": { + "description": "Name of the feature bound to the parameter.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "parameter": { + "description": "Name of the UDF parameter.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "ml.FeatureLineage": { "fields": { "feature_specs": { @@ -43061,6 +45145,54 @@ } } }, + "ml.FeatureLookup": { + "description": "Features to look up from a feature table.", + "fields": { + "default_values": { + "description": "Default values for features.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "feature_names": { + "description": "Names of the features to look up, or empty to look up every feature in the table.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "lookback_window": { + "description": "Lookback window to use when performing point-in-time lookup.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "lookup_keys": { + "description": "Keys to use when joining with the feature table.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "rename_outputs": { + "description": "Output names for features, in place of their names in the feature table.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "table": { + "description": "Three-part name of the feature table.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "timestamp_lookup_keys": { + "description": "Keys to use when performing point-in-time lookup.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, "ml.FeatureReference": { "description": "A reference to one registered upstream Feature. A message rather than a bare name so an\nupstream can later be pinned more precisely (e.g. by version) without a breaking type change.", "fields": { @@ -43070,6 +45202,40 @@ } } }, + "ml.FeatureSpec": { + "description": "A named set of features to serve, stored as a Unity Catalog function.", + "fields": { + "exclude_columns": { + "description": "Output names of columns to leave out of the feature spec.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE" + ] + }, + "extra_pip_requirements": { + "description": "Extra pip requirements to install in the serving container, in addition to the defaults and\nthose resolved from the features.", + "ref": "ml.PipRequirements", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE" + ] + }, + "features": { + "description": "The Features (either a declarative one, or a lookup from a feature table, or a feature\nfunction) to serve. A declarative feature (`DeclarativeFeature`) cannot be combined with\nlookups (`FeatureLookup`) and functions (`FeatureFunction`) in one feature spec.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE" + ] + }, + "name": { + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE" + ] + } + } + }, "ml.FeatureTag": { "description": "Represents a tag on a feature in a feature table.", "fields": { @@ -43096,6 +45262,26 @@ } } }, + "ml.Features": { + "description": "One entry of a feature spec: a Feature, a feature table lookup, or a feature function.", + "fields": { + "declarative_feature": { + "description": "A Feature, referenced by its three-part Unity Catalog name.", + "ref": "ml.DeclarativeFeature", + "launch_stage": "PRIVATE_PREVIEW" + }, + "feature_function": { + "description": "A feature function.", + "ref": "ml.FeatureFunction", + "launch_stage": "PRIVATE_PREVIEW" + }, + "feature_lookup": { + "description": "A feature table lookup.", + "ref": "ml.FeatureLookup", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "ml.FieldDefinition": { "description": "A single field definition within a FlatSchema, specifying the field name and its scalar data type.\nDoes not support nested or complex types (arrays, maps, structs).", "fields": { @@ -43358,6 +45544,7 @@ }, "ml.GetFeatureLineageRequest": {}, "ml.GetFeatureRequest": {}, + "ml.GetFeatureSpecRequest": {}, "ml.GetFeatureTagRequest": {}, "ml.GetForecastingExperimentRequest": {}, "ml.GetHistoryRequest": { @@ -44795,7 +46982,7 @@ } }, "ml.MaterializationSetOperationMetadata": { - "description": "Progress of a materialization set operation. Shared by create, update and delete, because\ndatabricks.longrunning freezes a method's metadata type once it ships.", + "description": "Progress of a materialization set operation.", "fields": { "create_time": { "description": "Time at which the operation was requested.", @@ -44805,7 +46992,7 @@ ] }, "deletion_progress": { - "description": "Set by a DeleteMaterializationSet operation.", + "description": "Set by a `DeleteMaterializationSet` operation.", "ref": "ml.MaterializationSetDeletionProgress", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ @@ -44835,7 +47022,7 @@ ] }, "update_progress": { - "description": "Set by an UpdateMaterializationSet operation.", + "description": "Set by an `UpdateMaterializationSet` operation.", "ref": "ml.MaterializationSetUpdateProgress", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ @@ -45602,6 +47789,15 @@ "CAN_READ": "GA" } }, + "ml.PipRequirements": { + "description": "Pip requirements to install in a serving container.", + "fields": { + "requirements": { + "description": "Pip requirement strings (PEP 508) or UC Volume whl paths (/Volumes/...).", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "ml.ProtoSchemaSpec": { "description": "A Protocol Buffer schema paired with the name of the message within it that describes the\nKafka payload. A .proto file may declare multiple messages; message_name disambiguates.", "fields": { @@ -45748,13 +47944,21 @@ "RUNNING", "SUCCEEDED", "FAILED", - "CANCELLED" + "CANCELLED", + "PENDING_PURGE", + "RUNNING_PURGE", + "PENDING_CLEANUP", + "RUNNING_CLEANUP" ], "enum_launch_stages": { "CANCELLED": "PRIVATE_PREVIEW", "FAILED": "PRIVATE_PREVIEW", "PENDING": "PRIVATE_PREVIEW", + "PENDING_CLEANUP": "PRIVATE_PREVIEW", + "PENDING_PURGE": "PRIVATE_PREVIEW", "RUNNING": "PRIVATE_PREVIEW", + "RUNNING_CLEANUP": "PRIVATE_PREVIEW", + "RUNNING_PURGE": "PRIVATE_PREVIEW", "SUCCEEDED": "PRIVATE_PREVIEW" } }, @@ -46142,6 +48346,19 @@ } } }, + "ml.RenameOutput": { + "description": "An output name for a looked-up feature.", + "fields": { + "feature": { + "description": "Name of the feature in the feature table.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "output": { + "description": "Output name for the feature.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "ml.RequestSource": { "description": "A request-time data source whose value is provided at inference time: offline batch scoring or online serving endpoint", "fields": { @@ -80132,6 +82349,11 @@ "docs_group": "aifunctions", "launch_stage": "GA", "cli_launch_stage_display": "GA", + "list": { + "request": { + "pascal_name": "ListBatchesRequest" + } + }, "methods": [ { "name": "AiClassify", @@ -80438,6 +82660,537 @@ } } ] + }, + { + "name": "CancelBatch", + "description": "Cancel a batch. Cancellation is asynchronous: requests in flight drain first, so read the batch to observe the `CANCELLING` and `CANCELLED` statuses.", + "summary": "Cancel a batch.", + "path": "/api/2.0/ai-functions/batches/{name}/cancel", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "CancelBatchRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "ID of the batch, in the form `batch_\u003cid\u003e`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "ID of the batch, in the form `batch_\u003cid\u003e`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "CancelBatchResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "ID of the batch, in the form `batch_\u003cid\u003e`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "ID of the batch, in the form `batch_\u003cid\u003e`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "CreateBatch", + "description": "Run an AI function over every request in a file on a Unity Catalog volume. The batch runs asynchronously; read it to follow its progress.", + "summary": "Create a batch.", + "path": "/api/2.0/ai-functions/batches", + "can_use_json": true, + "is_crud_create": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "CreateBatchRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "batch", + "description": "The batch to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Batch", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "batch", + "description": "The batch to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Batch", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "batch", + "description": "The batch to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Batch", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "endpoint", + "description": "The AI function to run for every request, for example `ai_extract`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "input_ref", + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "endpoint", + "description": "The AI function to run for every request, for example `ai_extract`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "input_ref", + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + "response": { + "pascal_name": "Batch", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "endpoint", + "description": "The AI function to run for every request, for example `ai_extract`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "input_ref", + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "endpoint", + "description": "The AI function to run for every request, for example `ai_extract`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "input_ref", + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "all_fields": [ + { + "name": "batch", + "description": "The batch to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Batch", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "endpoint", + "description": "The AI function to run for every request, for example `ai_extract`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "input_ref", + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "endpoint", + "description": "The AI function to run for every request, for example `ai_extract`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "input_ref", + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + { + "name": "create_time", + "description": "Output only. Time the batch was created.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "endpoint", + "description": "The AI function to run for every request, for example `ai_extract`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "input_ref", + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "name", + "description": "ID of the batch, in the form `batch_\u003cid\u003e`. The service assigns it.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "output_ref", + "description": "Path on a Unity Catalog volume to write the JSONL output to. When it is omitted, the output\nstays on Databricks-managed storage and a finished batch returns a short-lived download URL\nin this field instead.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "params", + "description": "Function options applied to every request in the batch, for example the extraction schema.", + "is_request_body_field": true, + "entity": { + "map_value": {} + } + }, + { + "name": "percent_complete", + "description": "Output only. Percentage of the requests that finished, from 0 to 100. Returned when one batch\nis read, not when batches are listed.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_float64": true + } + }, + { + "name": "request_counts", + "description": "Output only. Request counts. Returned when one batch is read, not when batches are listed.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "BatchRequestCounts", + "is_object": true + } + }, + { + "name": "status", + "description": "Output only. Status of the batch.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "BatchStatus", + "enum": [ + { + "content": "CANCELLED" + }, + { + "content": "CANCELLING" + }, + { + "content": "COMPLETED" + }, + { + "content": "EXPIRED" + }, + { + "content": "FAILED" + }, + { + "content": "FINALIZING" + }, + { + "content": "IN_PROGRESS" + }, + { + "content": "PENDING" + } + ] + } + } + ], + "required_positional_arguments": [ + { + "name": "endpoint", + "description": "The AI function to run for every request, for example `ai_extract`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "input_ref", + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "GetBatch", + "description": "Read one batch, with its status and progress.", + "summary": "Get a batch.", + "path": "/api/2.0/ai-functions/batches/{name}", + "is_crud_read": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "GetBatchRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "ID of the batch, in the form `batch_\u003cid\u003e`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "ID of the batch, in the form `batch_\u003cid\u003e`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "Batch", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "endpoint", + "description": "The AI function to run for every request, for example `ai_extract`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "input_ref", + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "endpoint", + "description": "The AI function to run for every request, for example `ai_extract`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "input_ref", + "description": "Path of the JSONL input file on a Unity Catalog volume. Each line is one request.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "all_fields": [ + { + "name": "name", + "description": "ID of the batch, in the form `batch_\u003cid\u003e`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "ID of the batch, in the form `batch_\u003cid\u003e`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "ListBatches", + "description": "List the batches the caller created in this workspace.", + "summary": "List batches.", + "path": "/api/2.0/ai-functions/batches", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "ListBatchesRequest", + "is_object": true + }, + "response": { + "pascal_name": "ListBatchesResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "page_size", + "description": "Maximum number of batches to return in one page.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "Page token from an earlier response. Omit it to read the first page.", + "is_query": true, + "entity": { + "is_string": true + } + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "Page token from an earlier response. Omit it to read the first page.", + "is_query": true, + "entity": { + "is_string": true + } + } + } + } } ] }, @@ -138862,6 +141615,195 @@ } ] }, + { + "name": "CreateFeatureSpec", + "description": "Create a feature spec.", + "summary": "Create a feature spec.", + "path": "/api/2.0/feature-engineering/feature-specs", + "can_use_json": true, + "is_crud_create": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "CreateFeatureSpecRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "feature_spec", + "description": "The feature spec to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "FeatureSpec", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "feature_spec", + "description": "The feature spec to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "FeatureSpec", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "feature_spec", + "description": "The feature spec to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "FeatureSpec", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + "response": { + "pascal_name": "FeatureSpec", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "all_fields": [ + { + "name": "feature_spec", + "description": "The feature spec to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "FeatureSpec", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + { + "name": "exclude_columns", + "description": "Output names of columns to leave out of the feature spec.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "extra_pip_requirements", + "description": "Extra pip requirements to install in the serving container, in addition to the defaults and\nthose resolved from the features.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "PipRequirements", + "is_object": true + } + }, + { + "name": "features", + "description": "The Features (either a declarative one, or a lookup from a feature table, or a feature\nfunction) to serve. A declarative feature (`DeclarativeFeature`) cannot be combined with\nlookups (`FeatureLookup`) and functions (`FeatureFunction`) in one feature spec.", + "is_request_body_field": true, + "entity": { + "pascal_name": "FeaturesList", + "array_value": { + "pascal_name": "Features", + "is_object": true + } + } + }, + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "CreateKafkaConfig", "description": "Create a Kafka config.\nDuring PrPr, Kafka configs can be read and used when creating features under the entire metastore.\nOnly the creator of the Kafka config can delete it.", @@ -140351,6 +143293,67 @@ } ] }, + { + "name": "DeleteFeatureSpec", + "description": "Delete a feature spec.", + "summary": "Delete a feature spec.", + "path": "/api/2.0/feature-engineering/feature-specs/{name}", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "DeleteFeatureSpecRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec to delete.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec to delete.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "is_empty_response": true + }, + "all_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec to delete.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec to delete.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "DeleteKafkaConfig", "description": "Delete a Kafka config.\nDuring PrPr, Kafka configs can be read and used when creating features under the entire metastore.\nOnly the creator of the Kafka config can delete it.", @@ -140747,6 +143750,92 @@ } ] }, + { + "name": "GetFeatureSpec", + "description": "Get a feature spec.", + "summary": "Get a feature spec.", + "path": "/api/2.0/feature-engineering/feature-specs/{name}", + "is_crud_read": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "GetFeatureSpecRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec to get.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec to get.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "FeatureSpec", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "all_fields": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec to get.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Three-part name (catalog.schema.feature_spec) of the feature spec to get.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "GetKafkaConfig", "description": "Get a Kafka config.\nDuring PrPr, Kafka configs can be read and used when creating features under the entire metastore.\nOnly the creator of the Kafka config can delete it.", @@ -161569,7 +164658,7 @@ }, { "name": "node_type_id", - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "required": true, "is_request_body_field": true, "entity": { @@ -161589,7 +164678,7 @@ }, { "name": "node_type_id", - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "required": true, "is_request_body_field": true, "entity": { @@ -161706,7 +164795,7 @@ }, { "name": "node_type_id", - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "required": true, "is_request_body_field": true, "entity": { @@ -161765,7 +164854,7 @@ }, { "name": "node_type_id", - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "required": true, "is_request_body_field": true, "entity": { @@ -161872,7 +164961,7 @@ }, { "name": "node_type_id", - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "required": true, "is_request_body_field": true, "entity": { @@ -161901,7 +164990,7 @@ }, { "name": "node_type_id", - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "required": true, "is_request_body_field": true, "entity": { @@ -161970,7 +165059,7 @@ }, { "name": "node_type_id", - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "required": true, "is_request_body_field": true, "entity": { @@ -162015,7 +165104,7 @@ }, { "name": "node_type_id", - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "required": true, "is_request_body_field": true, "entity": { @@ -164226,193 +167315,2978 @@ } }, { - "name": "name", - "description": "An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding.", - "is_request_body_field": true, + "name": "name", + "description": "An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "notification_settings", + "description": "Optional notification settings that are used when sending notifications to each of the `email_notifications` and `webhook_notifications` for this job.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "JobNotificationSettings", + "is_object": true + } + }, + { + "name": "parameters", + "description": "Job-level parameter definitions", + "is_request_body_field": true, + "entity": { + "pascal_name": "JobParameterDefinitionList", + "array_value": { + "pascal_name": "JobParameterDefinition", + "is_object": true + } + } + }, + { + "name": "parent_path", + "description": "Path of the job parent folder in workspace file tree. If absent, the job doesn't have a workspace object.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "performance_target", + "description": "The performance mode on a serverless job. This field determines the level of compute performance or cost-efficiency for the run.\nThe performance target does not apply to tasks that run on Serverless GPU compute.\n\n* `PERFORMANCE_OPTIMIZED`: Prioritizes fast startup and execution times through rapid scaling and optimized cluster performance.\n* `STANDARD`: Enables cost-efficient execution of serverless workloads.\n* `COST_OPTIMIZED`: Enables lower job costs by optimizing compute for your selected target duration time. Must provide a duration target.", + "is_request_body_field": true, + "entity": { + "pascal_name": "PerformanceTarget", + "enum": [ + { + "content": "PERFORMANCE_OPTIMIZED" + }, + { + "content": "STANDARD" + } + ] + } + }, + { + "name": "queue", + "description": "The queue settings of the job.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "QueueSettings", + "is_object": true + } + }, + { + "name": "run_as", + "description": "The user or service principal that the job runs as, if specified in the request.\nThis field indicates the explicit configuration of `run_as` for the job.\nTo find the value in all cases, explicit or implicit, use `run_as_user_name`.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "JobRunAs", + "is_object": true + } + }, + { + "name": "schedule", + "description": "An optional periodic schedule for this job. The default behavior is that the job only runs when triggered by clicking “Run Now” in the Jobs UI or sending an API request to `runNow`.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } + }, + { + "name": "tags", + "description": "A map of tags associated with the job. These are forwarded to the cluster as cluster tags for jobs clusters, and are subject to the same limitations as cluster tags. A maximum of 25 tags can be added to the job.", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + }, + { + "name": "tasks", + "description": "A list of task specifications to be executed by this job.\nIt supports up to 1000 elements in write endpoints (:method:jobs/create, :method:jobs/reset, :method:jobs/update, :method:jobs/submit).\nRead endpoints return only 100 tasks. If more than 100 tasks are available, you can paginate through them using :method:jobs/get. Use the `next_page_token` field at the object root to determine if more results are available.", + "is_request_body_field": true, + "entity": { + "pascal_name": "TaskList", + "array_value": { + "pascal_name": "Task", + "is_object": true + } + } + }, + { + "name": "timeout_seconds", + "description": "An optional timeout applied to each run of this job. A value of `0` means no timeout.", + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, + { + "name": "trigger", + "description": "A configuration to trigger a run when certain conditions are met. The default behavior is that the job runs only when triggered by clicking “Run Now” in the Jobs UI or sending an API request to `runNow`.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "TriggerSettings", + "is_object": true + } + }, + { + "name": "triggers", + "description": "List of triggers attached to this job. A run starts when any active trigger evaluates to true. Cannot be set in\nthe same request as the legacy `schedule`, `trigger`, or `continuous` fields. Gated behind the \"Multiple Triggers\" feature preview.", + "is_request_body_field": true, + "entity": { + "pascal_name": "TriggerConfigurationList", + "array_value": { + "pascal_name": "TriggerConfiguration", + "is_object": true + } + } + }, + { + "name": "usage_policy_id", + "description": "The id of the user specified usage policy to use for this job.\nIf not specified, a default usage policy may be applied when creating or modifying the job.\nSee `effective_usage_policy_id` for the usage policy used by this workload.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "webhook_notifications", + "description": "A collection of system notification IDs to notify when runs of this job begin or complete.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "WebhookNotifications", + "is_object": true + } + } + ] + }, + { + "name": "Delete", + "description": "Deletes a job.", + "summary": "Delete a job.", + "path": "/api/2.2/jobs/delete", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "DeleteJob", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to delete. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ], + "required_request_body_fields": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to delete. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ] + }, + "response": { + "is_empty_response": true + }, + "all_fields": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to delete. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ], + "required_positional_arguments": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to delete. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ] + }, + { + "name": "DeleteRun", + "description": "Deletes a non-active run. Returns an error if the run is active.", + "summary": "Delete a job run.", + "path": "/api/2.2/jobs/runs/delete", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "DeleteRun", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "run_id", + "description": "ID of the run to delete.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ], + "required_request_body_fields": [ + { + "name": "run_id", + "description": "ID of the run to delete.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ] + }, + "response": { + "is_empty_response": true + }, + "all_fields": [ + { + "name": "run_id", + "description": "ID of the run to delete.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ], + "required_positional_arguments": [ + { + "name": "run_id", + "description": "ID of the run to delete.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ] + }, + { + "name": "ExportRun", + "description": "Export and retrieve the job run task.", + "summary": "Export and retrieve a job run.", + "path": "/api/2.2/jobs/runs/export", + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "ExportRunRequest", + "is_object": true, + "required_fields": [ + { + "name": "run_id", + "description": "The canonical identifier for the run. This field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ], + "required_in_url_fields": [ + { + "name": "run_id", + "description": "The canonical identifier for the run. This field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ] + }, + "response": { + "pascal_name": "ExportRunOutput", + "is_object": true + }, + "all_fields": [ + { + "name": "run_id", + "description": "The canonical identifier for the run. This field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + }, + { + "name": "views_to_export", + "description": "Which views to export (CODE, DASHBOARDS, or ALL). Defaults to CODE.", + "is_query": true, + "entity": { + "pascal_name": "ViewsToExport", + "enum": [ + { + "content": "ALL" + }, + { + "content": "CODE" + }, + { + "content": "DASHBOARDS" + } + ] + } + } + ], + "required_positional_arguments": [ + { + "name": "run_id", + "description": "The canonical identifier for the run. This field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ] + }, + { + "name": "Get", + "description": "Retrieves the details for a single job.\n\nLarge arrays in the results will be paginated when they exceed 100 elements.\nA request for a single job will return all properties for that job, and the first 100 elements of array properties (`tasks`, `job_clusters`, `environments` and `parameters`).\nUse the `next_page_token` field to check for more results and pass its value as the `page_token` in subsequent requests.\nIf any array properties have more than 100 elements, additional results will be returned on subsequent requests. Arrays without additional results will be empty on later pages.", + "summary": "Get a single job.", + "path": "/api/2.2/jobs/get", + "is_crud_read": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "GetJobRequest", + "is_object": true, + "required_fields": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to retrieve information about. This field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ], + "required_in_url_fields": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to retrieve information about. This field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ] + }, + "response": { + "pascal_name": "Job", + "is_object": true + }, + "all_fields": [ + { + "name": "include_trigger_state", + "description": "Flag that indicates that trigger state should be included in the response.", + "is_query": true, + "entity": { + "is_bool": true + } + }, + { + "name": "job_id", + "description": "The canonical identifier of the job to retrieve information about. This field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + }, + { + "name": "page_token", + "description": "Use `next_page_token` returned from the previous GetJob response to request the next page of the job's array properties.", + "is_query": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to retrieve information about. This field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ] + }, + { + "name": "GetPermissionLevels", + "description": "Gets the permission levels that a user can have on an object.", + "summary": "Get job permission levels.", + "path": "/api/2.0/permissions/jobs/{job_id}/permissionLevels", + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "GetJobPermissionLevelsRequest", + "is_object": true, + "required_fields": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "GetJobPermissionLevelsResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "GetPermissions", + "description": "Gets the permissions of a job. Jobs can inherit permissions from their root object.", + "summary": "Get job permissions.", + "path": "/api/2.0/permissions/jobs/{job_id}", + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "GetJobPermissionsRequest", + "is_object": true, + "required_fields": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "JobPermissions", + "is_object": true + }, + "all_fields": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "GetRun", + "description": "Retrieves the metadata of a run.\n\nLarge arrays in the results will be paginated when they exceed 100 elements.\nA request for a single run will return all properties for that run, and the first 100 elements of array properties (`tasks`, `job_clusters`, `job_parameters` and `repair_history`).\nUse the next_page_token field to check for more results and pass its value as the page_token in subsequent requests.\nIf any array properties have more than 100 elements, additional results will be returned on subsequent requests. Arrays without additional results will be empty on later pages.", + "summary": "Get a single job run.", + "path": "/api/2.2/jobs/runs/get", + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "GetRunRequest", + "is_object": true, + "required_fields": [ + { + "name": "run_id", + "description": "The canonical identifier of the run for which to retrieve the metadata.\nThis field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ], + "required_in_url_fields": [ + { + "name": "run_id", + "description": "The canonical identifier of the run for which to retrieve the metadata.\nThis field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ] + }, + "response": { + "pascal_name": "Run", + "is_object": true + }, + "all_fields": [ + { + "name": "include_history", + "description": "Whether to include the repair history in the response.", + "is_query": true, + "entity": { + "is_bool": true + } + }, + { + "name": "include_resolved_values", + "description": "Whether to include resolved parameter values in the response.", + "is_query": true, + "entity": { + "is_bool": true + } + }, + { + "name": "page_token", + "description": "Use `next_page_token` returned from the previous GetRun response to request the next page of the run's array properties.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "run_id", + "description": "The canonical identifier of the run for which to retrieve the metadata.\nThis field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ], + "required_positional_arguments": [ + { + "name": "run_id", + "description": "The canonical identifier of the run for which to retrieve the metadata.\nThis field is required.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ] + }, + { + "name": "GetRunOutput", + "description": "Retrieve the output and metadata of a single task run. When a notebook task returns\na value through the `dbutils.notebook.exit()` call, you can use this endpoint to retrieve\nthat value. Databricks restricts this API to returning the first 5 MB of the output.\nTo return a larger result, you can store job results in a cloud storage service.\n\nThis endpoint validates that the __run_id__ parameter is valid and returns an HTTP status\ncode 400 if the __run_id__ parameter is invalid. Runs are automatically removed after\n60 days. If you to want to reference them beyond 60 days, you must save old run results\nbefore they expire.", + "summary": "Get the output for a single run.", + "path": "/api/2.2/jobs/runs/get-output", + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "GetRunOutputRequest", + "is_object": true, + "required_fields": [ + { + "name": "run_id", + "description": "The canonical identifier for the run.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ], + "required_in_url_fields": [ + { + "name": "run_id", + "description": "The canonical identifier for the run.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ] + }, + "response": { + "pascal_name": "RunOutput", + "is_object": true + }, + "all_fields": [ + { + "name": "run_id", + "description": "The canonical identifier for the run.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ], + "required_positional_arguments": [ + { + "name": "run_id", + "description": "The canonical identifier for the run.", + "required": true, + "is_query": true, + "entity": { + "is_int64": true + } + } + ] + }, + { + "name": "List", + "description": "Retrieves a list of jobs.", + "summary": "List jobs.", + "path": "/api/2.2/jobs/list", + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "ListJobsRequest", + "is_object": true + }, + "response": { + "pascal_name": "ListJobsResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "expand_tasks", + "description": "Whether to include task and cluster details in the response. Note that only the first 100 elements will be shown.\nUse :method:jobs/get to paginate through all tasks and clusters.", + "is_query": true, + "entity": { + "is_bool": true + } + }, + { + "name": "limit", + "description": "The number of jobs to return. This value must be greater than 0 and less or equal to 100. The default value is 20.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "name", + "description": "A filter on the list based on the exact (case insensitive) job name.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "offset", + "description": "The offset of the first job to return, relative to the most recently created job.\nDeprecated since June 2023. Use `page_token` to iterate through the pages instead.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "Use `next_page_token` or `prev_page_token` returned from the previous request to list the next or previous page of jobs respectively.", + "is_query": true, + "entity": { + "is_string": true + } + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "Use `next_page_token` or `prev_page_token` returned from the previous request to list the next or previous page of jobs respectively.", + "is_query": true, + "entity": { + "is_string": true + } + } + } + } + }, + { + "name": "ListRuns", + "description": "List runs in descending order by start time.", + "summary": "List job runs.", + "path": "/api/2.2/jobs/runs/list", + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "ListRunsRequest", + "is_object": true + }, + "response": { + "pascal_name": "ListRunsResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "active_only", + "description": "If active_only is `true`, only active runs are included in the results; otherwise,\nlists both active and completed runs. An active run is a run in the `QUEUED`, `PENDING`,\n`RUNNING`, or `TERMINATING`. This field cannot be `true` when completed_only is `true`.", + "is_query": true, + "entity": { + "is_bool": true + } + }, + { + "name": "completed_only", + "description": "If completed_only is `true`, only completed runs are included in the results;\notherwise, lists both active and completed runs. This field cannot be `true` when\nactive_only is `true`.", + "is_query": true, + "entity": { + "is_bool": true + } + }, + { + "name": "expand_tasks", + "description": "Whether to include task and cluster details in the response. Note that only the first 100 elements will be shown.\nUse :method:jobs/getrun to paginate through all tasks and clusters.", + "is_query": true, + "entity": { + "is_bool": true + } + }, + { + "name": "job_id", + "description": "The job for which to list runs. If omitted, the Jobs service lists runs from all jobs.", + "is_query": true, + "entity": { + "is_int64": true + } + }, + { + "name": "limit", + "description": "The number of runs to return. This value must be greater than 0 and less than 25.\nThe default value is 20. If a request specifies a limit of 0, the service instead\nuses the maximum limit.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "offset", + "description": "The offset of the first run to return, relative to the most recent run.\nDeprecated since June 2023. Use `page_token` to iterate through the pages instead.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "Use `next_page_token` or `prev_page_token` returned from the previous request to list the next or previous page of runs respectively.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "run_type", + "description": "The type of runs to return. For a description of run types, see :method:jobs/getRun.", + "is_query": true, + "entity": { + "pascal_name": "RunType", + "enum": [ + { + "content": "JOB_RUN" + }, + { + "content": "SUBMIT_RUN" + }, + { + "content": "WORKFLOW_RUN" + } + ] + } + }, + { + "name": "start_time_from", + "description": "Show runs that started _at or after_ this value. The value must be a UTC timestamp\nin milliseconds. Can be combined with _start_time_to_ to filter by a time range.", + "is_query": true, + "entity": { + "is_int64": true + } + }, + { + "name": "start_time_to", + "description": "Show runs that started _at or before_ this value. The value must be a UTC timestamp\nin milliseconds. Can be combined with _start_time_from_ to filter by a time range.", + "is_query": true, + "entity": { + "is_int64": true + } + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "Use `next_page_token` or `prev_page_token` returned from the previous request to list the next or previous page of runs respectively.", + "is_query": true, + "entity": { + "is_string": true + } + } + } + } + }, + { + "name": "RepairRun", + "description": "Re-run one or more tasks. Tasks are re-run as part of the original job run.\nThey use the current job and task settings, and can be viewed in the history for the\noriginal job run.", + "summary": "Repair a job run.", + "path": "/api/2.2/jobs/runs/repair", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "RepairRun", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "run_id", + "description": "The job run ID of the run to repair. The run must not be in progress.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ], + "required_request_body_fields": [ + { + "name": "run_id", + "description": "The job run ID of the run to repair. The run must not be in progress.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ] + }, + "response": { + "pascal_name": "RepairRunResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "dbt_commands", + "description": "An array of commands to execute for jobs with the dbt task, for example `\"dbt_commands\": [\"dbt deps\", \"dbt seed\", \"dbt deps\", \"dbt seed\", \"dbt run\"]`\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "duration_target", + "description": "The window the run aims to finish within, in hours, for a Cost-optimized serverless run.\nRequired only when `performance_target` is `COST_OPTIMIZED`. Must be one of the\nsupported values: `NO_FLEXIBILITY`, `4h`, `12h`, `24h`, `72h`. `NO_FLEXIBILITY` means the run\nuses the default cost-optimized performance level without additional cost-saving optimizations.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "jar_params", + "description": "A list of parameters for jobs with Spark JAR tasks, for example `\"jar_params\": [\"john doe\", \"35\"]`.\nThe parameters are used to invoke the main function of the main class specified in the Spark JAR task.\nIf not specified upon `run-now`, it defaults to an empty list.\njar_params cannot be specified in conjunction with notebook_params.\nThe JSON representation of this field (for example `{\"jar_params\":[\"john doe\",\"35\"]}`) cannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "job_parameters", + "description": "Job-level parameters used in the run. for example `\"param\": \"overriding_val\"`", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + }, + { + "name": "latest_repair_id", + "description": "The ID of the latest repair. This parameter is not required when repairing a run for the first time, but must be provided on subsequent requests to repair the same run.", + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, + { + "name": "notebook_params", + "description": "A map from keys to values for jobs with notebook task, for example `\"notebook_params\": {\"name\": \"john doe\", \"age\": \"35\"}`.\nThe map is passed to the notebook and is accessible through the [dbutils.widgets.get](https://docs.databricks.com/dev-tools/databricks-utils.html) function.\n\nIf not specified upon `run-now`, the triggered run uses the job’s base parameters.\n\nnotebook_params cannot be specified in conjunction with jar_params.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nThe JSON representation of this field (for example `{\"notebook_params\":{\"name\":\"john doe\",\"age\":\"35\"}}`) cannot exceed 10,000 bytes.", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + }, + { + "name": "performance_target", + "description": "The performance mode on a serverless job. The performance target determines the level of compute performance or cost-efficiency for the run. This field overrides the performance target defined on the job level.\n\n* `PERFORMANCE_OPTIMIZED`: Prioritizes fast startup and execution times through rapid scaling and optimized cluster performance.\n* `STANDARD`: Enables cost-efficient execution of serverless workloads.\n* `COST_OPTIMIZED`: Enables lower job costs by optimizing compute for your selected target duration time. Must provide a duration target.", + "is_request_body_field": true, + "entity": { + "pascal_name": "PerformanceTarget", + "enum": [ + { + "content": "PERFORMANCE_OPTIMIZED" + }, + { + "content": "STANDARD" + } + ] + } + }, + { + "name": "pipeline_params", + "description": "Controls whether the pipeline should perform a full refresh", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "PipelineParams", + "is_object": true + } + }, + { + "name": "python_named_params", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + }, + { + "name": "python_params", + "description": "A list of parameters for jobs with Python tasks, for example `\"python_params\": [\"john doe\", \"35\"]`.\nThe parameters are passed to Python file as command-line parameters. If specified upon `run-now`, it would overwrite\nthe parameters specified in job setting. The JSON representation of this field (for example `{\"python_params\":[\"john doe\",\"35\"]}`)\ncannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nImportant\n\nThese parameters accept only Latin characters (ASCII character set). Using non-ASCII characters returns an error.\nExamples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "rerun_all_failed_tasks", + "description": "If true, repair all failed tasks. Only one of `rerun_tasks` or `rerun_all_failed_tasks` can be used.", + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, + { + "name": "rerun_dependent_tasks", + "description": "If true, repair all tasks that depend on the tasks in `rerun_tasks`, even if they were previously successful. Can be also used in combination with `rerun_all_failed_tasks`.", + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, + { + "name": "rerun_tasks", + "description": "The task keys of the task runs to repair.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "run_id", + "description": "The job run ID of the run to repair. The run must not be in progress.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, + { + "name": "spark_submit_params", + "description": "A list of parameters for jobs with spark submit task, for example `\"spark_submit_params\": [\"--class\", \"org.apache.spark.examples.SparkPi\"]`.\nThe parameters are passed to spark-submit script as command-line parameters. If specified upon `run-now`, it would overwrite the\nparameters specified in job setting. The JSON representation of this field (for example `{\"python_params\":[\"john doe\",\"35\"]}`)\ncannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nImportant\n\nThese parameters accept only Latin characters (ASCII character set). Using non-ASCII characters returns an error.\nExamples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "sql_params", + "description": "A map from keys to values for jobs with SQL task, for example `\"sql_params\": {\"name\": \"john doe\", \"age\": \"35\"}`. The SQL alert task does not support custom parameters.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + } + ], + "required_positional_arguments": [ + { + "name": "run_id", + "description": "The job run ID of the run to repair. The run must not be in progress.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ], + "wait": { + "success": [ + { + "content": "TERMINATED" + }, + { + "content": "SKIPPED" + } + ], + "timeout": 20, + "complex_message_path": true, + "poll": { + "response": { + "pascal_name": "Run" + } + }, + "status_path": [ + { + "pascal_name": "State" + }, + { + "pascal_name": "LifeCycleState" + } + ], + "message_path": [ + { + "pascal_name": "State" + }, + { + "pascal_name": "StateMessage" + } + ], + "message_path_head": { + "pascal_name": "State" + } + } + }, + { + "name": "Reset", + "description": "Overwrite all settings for the given job. Use the [_Update_ endpoint](:method:jobs/update) to update job settings partially.", + "summary": "Update all job settings (reset).", + "path": "/api/2.2/jobs/reset", + "can_use_json": true, + "must_use_json": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "ResetJob", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to reset. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, + { + "name": "new_settings", + "description": "The new settings of the job. These settings completely replace the old settings.\n\nChanges to the field `JobBaseSettings.timeout_seconds` are applied to active runs. Changes to other fields are applied to future runs only.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "JobSettings", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to reset. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, + { + "name": "new_settings", + "description": "The new settings of the job. These settings completely replace the old settings.\n\nChanges to the field `JobBaseSettings.timeout_seconds` are applied to active runs. Changes to other fields are applied to future runs only.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "JobSettings", + "is_object": true + } + } + ] + }, + "response": { + "is_empty_response": true + }, + "all_fields": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to reset. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, + { + "name": "new_settings", + "description": "The new settings of the job. These settings completely replace the old settings.\n\nChanges to the field `JobBaseSettings.timeout_seconds` are applied to active runs. Changes to other fields are applied to future runs only.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "JobSettings", + "is_object": true + } + } + ] + }, + { + "name": "RunNow", + "description": "Run a job and return the `run_id` of the triggered run.", + "summary": "Trigger a new job run.", + "path": "/api/2.2/jobs/run-now", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "RunNow", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "job_id", + "description": "The ID of the job to be executed", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ], + "required_request_body_fields": [ + { + "name": "job_id", + "description": "The ID of the job to be executed", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ] + }, + "response": { + "pascal_name": "RunNowResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "dbt_commands", + "description": "An array of commands to execute for jobs with the dbt task, for example `\"dbt_commands\": [\"dbt deps\", \"dbt seed\", \"dbt deps\", \"dbt seed\", \"dbt run\"]`\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "duration_target", + "description": "The window the run aims to finish within, in hours, for a Cost-optimized serverless run.\nRequired only when `performance_target` is `COST_OPTIMIZED`. Must be one of the\nsupported values: `NO_FLEXIBILITY`, `4h`, `12h`, `24h`, `72h`. `NO_FLEXIBILITY` means the run\nuses the default cost-optimized performance level without additional cost-saving optimizations.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "idempotency_token", + "description": "An optional token to guarantee the idempotency of job run requests. If a run with the provided token already exists,\nthe request does not create a new run but returns the ID of the existing run instead. If a run with the provided token is deleted,\nan error is returned.\n\nIf you specify the idempotency token, upon failure you can retry until the request succeeds. Databricks guarantees that exactly one run\nis launched with that idempotency token.\n\nThis token must have at most 64 characters.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "jar_params", + "description": "A list of parameters for jobs with Spark JAR tasks, for example `\"jar_params\": [\"john doe\", \"35\"]`.\nThe parameters are used to invoke the main function of the main class specified in the Spark JAR task.\nIf not specified upon `run-now`, it defaults to an empty list.\njar_params cannot be specified in conjunction with notebook_params.\nThe JSON representation of this field (for example `{\"jar_params\":[\"john doe\",\"35\"]}`) cannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "job_id", + "description": "The ID of the job to be executed", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, + { + "name": "job_parameters", + "description": "Job-level parameters used in the run. for example `\"param\": \"overriding_val\"`", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + }, + { + "name": "notebook_params", + "description": "A map from keys to values for jobs with notebook task, for example `\"notebook_params\": {\"name\": \"john doe\", \"age\": \"35\"}`.\nThe map is passed to the notebook and is accessible through the [dbutils.widgets.get](https://docs.databricks.com/dev-tools/databricks-utils.html) function.\n\nIf not specified upon `run-now`, the triggered run uses the job’s base parameters.\n\nnotebook_params cannot be specified in conjunction with jar_params.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nThe JSON representation of this field (for example `{\"notebook_params\":{\"name\":\"john doe\",\"age\":\"35\"}}`) cannot exceed 10,000 bytes.", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + }, + { + "name": "only", + "description": "A list of task keys to run inside of the job. If this field is not provided, all tasks in the job will be run.\n\nPrefix a task key with `+` to also run its upstream tasks, or suffix it with `+` to also run its downstream tasks.\nFor example, `+my_task` runs `my_task` and everything upstream of it, `my_task+` runs `my_task` and everything\ndownstream of it, and `+my_task+` runs both. A task key with no `+` runs only that task.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "performance_target", + "description": "The performance mode on a serverless job. The performance target determines the level of compute performance or cost-efficiency for the run. This field overrides the performance target defined on the job level.\n\n* `PERFORMANCE_OPTIMIZED`: Prioritizes fast startup and execution times through rapid scaling and optimized cluster performance.\n* `STANDARD`: Enables cost-efficient execution of serverless workloads.\n* `COST_OPTIMIZED`: Enables lower job costs by optimizing compute for your selected target duration time. Must provide a duration target.", + "is_request_body_field": true, + "entity": { + "pascal_name": "PerformanceTarget", + "enum": [ + { + "content": "PERFORMANCE_OPTIMIZED" + }, + { + "content": "STANDARD" + } + ] + } + }, + { + "name": "pipeline_params", + "description": "Controls whether the pipeline should perform a full refresh", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "PipelineParams", + "is_object": true + } + }, + { + "name": "python_named_params", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + }, + { + "name": "python_params", + "description": "A list of parameters for jobs with Python tasks, for example `\"python_params\": [\"john doe\", \"35\"]`.\nThe parameters are passed to Python file as command-line parameters. If specified upon `run-now`, it would overwrite\nthe parameters specified in job setting. The JSON representation of this field (for example `{\"python_params\":[\"john doe\",\"35\"]}`)\ncannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nImportant\n\nThese parameters accept only Latin characters (ASCII character set). Using non-ASCII characters returns an error.\nExamples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "queue", + "description": "The queue settings of the run.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "QueueSettings", + "is_object": true + } + }, + { + "name": "spark_submit_params", + "description": "A list of parameters for jobs with spark submit task, for example `\"spark_submit_params\": [\"--class\", \"org.apache.spark.examples.SparkPi\"]`.\nThe parameters are passed to spark-submit script as command-line parameters. If specified upon `run-now`, it would overwrite the\nparameters specified in job setting. The JSON representation of this field (for example `{\"python_params\":[\"john doe\",\"35\"]}`)\ncannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nImportant\n\nThese parameters accept only Latin characters (ASCII character set). Using non-ASCII characters returns an error.\nExamples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "sql_params", + "description": "A map from keys to values for jobs with SQL task, for example `\"sql_params\": {\"name\": \"john doe\", \"age\": \"35\"}`. The SQL alert task does not support custom parameters.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + } + ], + "required_positional_arguments": [ + { + "name": "job_id", + "description": "The ID of the job to be executed", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ], + "wait": { + "success": [ + { + "content": "TERMINATED" + }, + { + "content": "SKIPPED" + } + ], + "timeout": 20, + "complex_message_path": true, + "poll": { + "response": { + "pascal_name": "Run" + } + }, + "status_path": [ + { + "pascal_name": "State" + }, + { + "pascal_name": "LifeCycleState" + } + ], + "message_path": [ + { + "pascal_name": "State" + }, + { + "pascal_name": "StateMessage" + } + ], + "message_path_head": { + "pascal_name": "State" + } + } + }, + { + "name": "SetPermissions", + "description": "Sets permissions on an object, replacing existing permissions if they exist. Deletes all direct permissions if none are specified. Objects can inherit permissions from their root object.", + "summary": "Set job permissions.", + "path": "/api/2.0/permissions/jobs/{job_id}", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "JobPermissionsRequest", + "is_object": true, + "required_fields": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "JobPermissions", + "is_object": true + }, + "all_fields": [ + { + "name": "access_control_list", + "is_request_body_field": true, + "entity": { + "pascal_name": "JobAccessControlRequestList", + "array_value": { + "pascal_name": "JobAccessControlRequest", + "is_object": true + } + } + }, + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "Submit", + "description": "Submit a one-time run. This endpoint allows you to submit a workload directly\nwithout creating a job. Runs submitted using this endpoint don’t display in\nthe UI. Use the `jobs/runs/get` API to check the run state after the job is\nsubmitted.\n\n**Important:** Jobs submitted using this endpoint are not saved as a job.\nThey do not show up in the Jobs UI, and do not retry when they fail. Because\nthey are not saved, Databricks cannot auto-optimize serverless compute in case\nof failure. If your job fails, you may want to use classic compute to specify\nthe compute needs for the job. Alternatively, use the `POST /jobs/create` and\n`POST /jobs/run-now` endpoints to create and run a saved job.", + "summary": "Create and trigger a one-time run.", + "path": "/api/2.2/jobs/runs/submit", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "SubmitRun", + "is_object": true + }, + "response": { + "pascal_name": "SubmitRunResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "access_control_list", + "description": "List of permissions to set on the job.", + "is_request_body_field": true, + "entity": { + "pascal_name": "JobAccessControlRequestList", + "array_value": { + "pascal_name": "JobAccessControlRequest", + "is_object": true + } + } + }, + { + "name": "budget_policy_id", + "description": "The user specified id of the budget policy to use for this one-time run.\nIf not specified, the run will be not be attributed to any budget policy.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "duration_target", + "description": "The window the run aims to finish within, in hours, for a Cost-optimized serverless run.\nRequired only when `performance_target` is `COST_OPTIMIZED`. Must be one of the\nsupported values: `NO_FLEXIBILITY`, `4h`, `12h`, `24h`, `72h`. `NO_FLEXIBILITY` means the run\nuses the default cost-optimized performance level without additional cost-saving optimizations.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "email_notifications", + "description": "An optional set of email addresses notified when the run begins or completes.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "JobEmailNotifications", + "is_object": true + } + }, + { + "name": "environment_variables", + "description": "Named environment-variable entries that tasks of this one-time run can\nreference by key from `RunTaskSettings.environment_variables_key`. Each\nentry's `spec` holds inline `variables` and optional `.env` `files`.\nHandled identically to `JobSettings.environment_variables`. Maximum 10 entries.\nEntries are independent of one another — there is no cross-entry merging.", + "is_request_body_field": true, + "entity": { + "pascal_name": "JobEnvironmentVariablesList", + "array_value": { + "pascal_name": "JobEnvironmentVariables", + "is_object": true + } + } + }, + { + "name": "environments", + "description": "A list of task execution environment specifications that can be referenced by tasks of this run.", + "is_request_body_field": true, + "entity": { + "pascal_name": "JobEnvironmentList", + "array_value": { + "pascal_name": "JobEnvironment", + "is_object": true + } + } + }, + { + "name": "git_source", + "description": "An optional specification for a remote Git repository containing the source code used by tasks. Version-controlled source code is supported by notebook, dbt, Python script, and SQL File tasks.\n\nIf `git_source` is set, these tasks retrieve the file from the remote repository by default. However, this behavior can be overridden by setting `source` to `WORKSPACE` on the task.\n\nNote: dbt and SQL File tasks support only version-controlled sources. If dbt or SQL File tasks are used, `git_source` must be defined on the job.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "GitSource", + "is_object": true + } + }, + { + "name": "health", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "JobsHealthRules", + "is_object": true + } + }, + { + "name": "idempotency_token", + "description": "An optional token that can be used to guarantee the idempotency of job run requests. If a run with the provided token already exists,\nthe request does not create a new run but returns the ID of the existing run instead. If a run with the provided token is deleted,\nan error is returned.\n\nIf you specify the idempotency token, upon failure you can retry until the request succeeds. Databricks guarantees that exactly\none run is launched with that idempotency token.\n\nThis token must have at most 64 characters.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "notification_settings", + "description": "Optional notification settings that are used when sending notifications to each of the `email_notifications` and `webhook_notifications` for this run.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "JobNotificationSettings", + "is_object": true + } + }, + { + "name": "performance_target", + "description": "The performance mode on a serverless one-time run. This field determines the level of compute performance or cost-efficiency for the run.\nThe performance target does not apply to tasks that run on Serverless GPU compute.\n\n* `PERFORMANCE_OPTIMIZED`: Prioritizes fast startup and execution times through rapid scaling and optimized cluster performance.\n* `STANDARD`: Enables cost-efficient execution of serverless workloads.\n* `COST_OPTIMIZED`: Enables lower job costs by optimizing compute for your selected target duration time. Must provide a duration target.", + "is_request_body_field": true, + "entity": { + "pascal_name": "PerformanceTarget", + "enum": [ + { + "content": "PERFORMANCE_OPTIMIZED" + }, + { + "content": "STANDARD" + } + ] + } + }, + { + "name": "queue", + "description": "The queue settings of the one-time run.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "QueueSettings", + "is_object": true + } + }, + { + "name": "run_as", + "description": "Specifies the user or service principal that the job runs as. If not specified, the job runs as the user who submits the request.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "JobRunAs", + "is_object": true + } + }, + { + "name": "run_name", + "description": "An optional name for the run. The default value is `Untitled`.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "tasks", + "is_request_body_field": true, + "entity": { + "pascal_name": "SubmitTaskList", + "array_value": { + "pascal_name": "SubmitTask", + "is_object": true + } + } + }, + { + "name": "timeout_seconds", + "description": "An optional timeout applied to each run of this job. A value of `0` means no timeout.", + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, + { + "name": "usage_policy_id", + "description": "The user specified id of the usage policy to use for this one-time run.\nIf not specified, a default usage policy may be applied when creating or modifying the job.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "webhook_notifications", + "description": "A collection of system notification IDs to notify when the run begins or completes.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "WebhookNotifications", + "is_object": true + } + } + ], + "wait": { + "success": [ + { + "content": "TERMINATED" + }, + { + "content": "SKIPPED" + } + ], + "timeout": 20, + "complex_message_path": true, + "poll": { + "response": { + "pascal_name": "Run" + } + }, + "status_path": [ + { + "pascal_name": "State" + }, + { + "pascal_name": "LifeCycleState" + } + ], + "message_path": [ + { + "pascal_name": "State" + }, + { + "pascal_name": "StateMessage" + } + ], + "message_path_head": { + "pascal_name": "State" + } + } + }, + { + "name": "Update", + "description": "Add, update, or remove specific settings of an existing job. Use the [_Reset_ endpoint](:method:jobs/reset) to overwrite all job settings.", + "summary": "Update job settings partially.", + "path": "/api/2.2/jobs/update", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "UpdateJob", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to update. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ], + "required_request_body_fields": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to update. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ] + }, + "response": { + "is_empty_response": true + }, + "all_fields": [ + { + "name": "fields_to_remove", + "description": "Remove top-level fields in the job settings. Removing nested fields is not supported, except for tasks and job clusters (`tasks/task_1`). This field is optional.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "job_id", + "description": "The canonical identifier of the job to update. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, + { + "name": "new_settings", + "description": "The new settings for the job.\n\nTop-level fields specified in `new_settings` are completely replaced, except for arrays which are merged. That is, new and existing entries are completely replaced based on the respective key fields, i.e. `task_key` or `job_cluster_key`, while previous entries are kept.\n\nPartially updating nested fields is not supported.\n\nChanges to the field `JobSettings.timeout_seconds` are applied to active runs. Changes to other fields are applied to future runs only.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "JobSettings", + "is_object": true + } + } + ], + "required_positional_arguments": [ + { + "name": "job_id", + "description": "The canonical identifier of the job to update. This field is required.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ] + }, + { + "name": "UpdatePermissions", + "description": "Updates the permissions on a job. Jobs can inherit permissions from their root object.", + "summary": "Update job permissions.", + "path": "/api/2.0/permissions/jobs/{job_id}", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "JobPermissionsRequest", + "is_object": true, + "required_fields": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "JobPermissions", + "is_object": true + }, + "all_fields": [ + { + "name": "access_control_list", + "is_request_body_field": true, + "entity": { + "pascal_name": "JobAccessControlRequestList", + "array_value": { + "pascal_name": "JobAccessControlRequest", + "is_object": true + } + } + }, + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "job_id", + "description": "The job for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + } + ] + }, + { + "id": "knowledgeassistants.KnowledgeAssistants", + "name": "KnowledgeAssistants", + "description": "Manage legacy Knowledge Assistants and related resources.", + "package": { + "name": "knowledgeassistants" + }, + "docs_group": "agentbricks", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "list": { + "request": { + "pascal_name": "ListExamplesRequest" + } + }, + "methods": [ + { + "name": "CreateExample", + "description": "Creates an example for a Knowledge Assistant.", + "summary": "Create an example for a Knowledge Assistant.", + "path": "/api/2.1/{parent=knowledge-assistants/*}/examples", + "can_use_json": true, + "is_crud_create": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "CreateExampleRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "parent", + "description": "Parent resource where this example will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "example", + "description": "The example to create under the parent Knowledge Assistant.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Example", + "is_object": true + } + } + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "Parent resource where this example will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "example", + "description": "The example to create under the parent Knowledge Assistant.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Example", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "example", + "description": "The example to create under the parent Knowledge Assistant.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Example", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + "response": { + "pascal_name": "Example", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "all_fields": [ + { + "name": "example", + "description": "The example to create under the parent Knowledge Assistant.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Example", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + { + "name": "parent", + "description": "Parent resource where this example will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "create_time", + "description": "Timestamp when this example was created.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "example_id", + "description": "The universally unique identifier (UUID) of the example.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "guidelines", + "description": "Guidelines for answering the question. Optional — examples may be created\nwith just a question; the front-end form does not require guidelines.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "name", + "description": "Full resource name:\nknowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_time", + "description": "Timestamp when this example was last updated.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + } + ], + "required_positional_arguments": [ + { + "name": "parent", + "description": "Parent resource where this example will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "CreateKnowledgeAssistant", + "description": "Creates a Knowledge Assistant.", + "summary": "Create a Knowledge Assistant.", + "path": "/api/2.1/knowledge-assistants", + "can_use_json": true, + "is_crud_create": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "CreateKnowledgeAssistantRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "knowledge_assistant", + "description": "The Knowledge Assistant to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeAssistant", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "knowledge_assistant", + "description": "The Knowledge Assistant to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeAssistant", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "knowledge_assistant", + "description": "The Knowledge Assistant to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeAssistant", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + "response": { + "pascal_name": "KnowledgeAssistant", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "all_fields": [ + { + "name": "knowledge_assistant", + "description": "The Knowledge Assistant to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeAssistant", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + { + "name": "create_time", + "description": "Creation timestamp.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "creator", + "description": "The creator of the Knowledge Assistant.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "endpoint_name", + "description": "The name of the knowledge assistant agent endpoint.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "error_info", + "description": "Error details when the Knowledge Assistant is in FAILED state.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "experiment_id", + "description": "The MLflow experiment ID.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "id", + "description": "Deprecated: use knowledge_assistant_id instead.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "instructions", + "description": "Additional global instructions on how the agent should generate answers.\nOptional on create and update.\nWhen updating a Knowledge Assistant, include this field in update_mask to\nmodify it.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "name", + "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "state", + "description": "State of the Knowledge Assistant. Not returned in List responses.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeAssistantState", + "enum": [ + { + "content": "ACTIVE" + }, + { + "content": "CREATING" + }, + { + "content": "FAILED" + } + ] + } + } + ], + "required_positional_arguments": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "CreateKnowledgeSource", + "description": "Creates a Knowledge Source under a Knowledge Assistant.", + "summary": "Create a Knowledge Source.", + "path": "/api/2.1/{parent=knowledge-assistants/*}/knowledge-sources", + "can_use_json": true, + "is_crud_create": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "CreateKnowledgeSourceRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "parent", + "description": "Parent resource where this source will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "knowledge_source", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeSource", + "is_object": true + } + } + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "Parent resource where this source will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "knowledge_source", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeSource", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "knowledge_source", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeSource", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + "response": { + "pascal_name": "KnowledgeSource", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "all_fields": [ + { + "name": "knowledge_source", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeSource", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + { + "name": "parent", + "description": "Parent resource where this source will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "notification_settings", - "description": "Optional notification settings that are used when sending notifications to each of the `email_notifications` and `webhook_notifications` for this job.", + "name": "create_time", + "description": "Timestamp when this knowledge source was created.", + "is_output_only": true, "is_request_body_field": true, "is_optional_object": true, "entity": { - "pascal_name": "JobNotificationSettings", - "is_object": true + "is_timestamp": true } }, { - "name": "parameters", - "description": "Job-level parameter definitions", + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "JobParameterDefinitionList", - "array_value": { - "pascal_name": "JobParameterDefinition", - "is_object": true - } + "is_string": true } }, { - "name": "parent_path", - "description": "Path of the job parent folder in workspace file tree. If absent, the job doesn't have a workspace object.", + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "performance_target", - "description": "The performance mode on a serverless job. This field determines the level of compute performance or cost-efficiency for the run.\nThe performance target does not apply to tasks that run on Serverless GPU compute.\n\n* `PERFORMANCE_OPTIMIZED`: Prioritizes fast startup and execution times through rapid scaling and optimized cluster performance.\n* `STANDARD`: Enables cost-efficient execution of serverless workloads.\n* `COST_OPTIMIZED`: Enables lower job costs by optimizing compute for your selected target duration time. Must provide a duration target.", + "name": "file_table", "is_request_body_field": true, + "is_optional_object": true, "entity": { - "pascal_name": "PerformanceTarget", - "enum": [ - { - "content": "PERFORMANCE_OPTIMIZED" - }, - { - "content": "STANDARD" - } - ] + "pascal_name": "FileTableSpec", + "is_object": true } }, { - "name": "queue", - "description": "The queue settings of the job.", + "name": "files", "is_request_body_field": true, "is_optional_object": true, "entity": { - "pascal_name": "QueueSettings", + "pascal_name": "FilesSpec", "is_object": true } }, { - "name": "run_as", - "description": "The user or service principal that the job runs as, if specified in the request.\nThis field indicates the explicit configuration of `run_as` for the job.\nTo find the value in all cases, explicit or implicit, use `run_as_user_name`.", + "name": "id", + "is_output_only": true, "is_request_body_field": true, - "is_optional_object": true, "entity": { - "pascal_name": "JobRunAs", - "is_object": true + "is_string": true } }, { - "name": "schedule", - "description": "An optional periodic schedule for this job. The default behavior is that the job only runs when triggered by clicking “Run Now” in the Jobs UI or sending an API request to `runNow`.", + "name": "index", "is_request_body_field": true, "is_optional_object": true, "entity": { - "pascal_name": "CronSchedule", + "pascal_name": "IndexSpec", "is_object": true } }, { - "name": "tags", - "description": "A map of tags associated with the job. These are forwarded to the cluster as cluster tags for jobs clusters, and are subject to the same limitations as cluster tags. A maximum of 25 tags can be added to the job.", + "name": "knowledge_cutoff_time", + "description": "Timestamp representing the cutoff before which content in this knowledge source is being ingested.", + "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "map_value": { - "is_string": true - } + "is_timestamp": true } }, { - "name": "tasks", - "description": "A list of task specifications to be executed by this job.\nIt supports up to 1000 elements in write endpoints (:method:jobs/create, :method:jobs/reset, :method:jobs/update, :method:jobs/submit).\nRead endpoints return only 100 tasks. If more than 100 tasks are available, you can paginate through them using :method:jobs/get. Use the `next_page_token` field at the object root to determine if more results are available.", + "name": "name", + "description": "Full resource name:\nknowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "is_request_body_field": true, "entity": { - "pascal_name": "TaskList", - "array_value": { - "pascal_name": "Task", - "is_object": true - } + "is_string": true } }, { - "name": "timeout_seconds", - "description": "An optional timeout applied to each run of this job. A value of `0` means no timeout.", + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, "is_request_body_field": true, "entity": { - "is_int": true + "is_string": true } }, { - "name": "trigger", - "description": "A configuration to trigger a run when certain conditions are met. The default behavior is that the job runs only when triggered by clicking “Run Now” in the Jobs UI or sending an API request to `runNow`.", + "name": "state", + "is_output_only": true, "is_request_body_field": true, - "is_optional_object": true, "entity": { - "pascal_name": "TriggerSettings", - "is_object": true + "pascal_name": "KnowledgeSourceState", + "enum": [ + { + "content": "FAILED_UPDATE" + }, + { + "content": "UPDATED" + }, + { + "content": "UPDATING" + } + ] + } + } + ], + "required_positional_arguments": [ + { + "name": "parent", + "description": "Parent resource where this source will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true } }, { - "name": "triggers", - "description": "List of triggers attached to this job. A run starts when any active trigger evaluates to true. Cannot be set in\nthe same request as the legacy `schedule`, `trigger`, or `continuous` fields. Gated behind the \"Multiple Triggers\" feature preview.", + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "TriggerConfigurationList", - "array_value": { - "pascal_name": "TriggerConfiguration", - "is_object": true - } + "is_string": true } }, { - "name": "usage_policy_id", - "description": "The id of the user specified usage policy to use for this job.\nIf not specified, a default usage policy may be applied when creating or modifying the job.\nSee `effective_usage_policy_id` for the usage policy used by this workload.", + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "webhook_notifications", - "description": "A collection of system notification IDs to notify when runs of this job begin or complete.", + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, "is_request_body_field": true, - "is_optional_object": true, "entity": { - "pascal_name": "WebhookNotifications", - "is_object": true + "is_string": true } } ] }, { - "name": "Delete", - "description": "Deletes a job.", - "summary": "Delete a job.", - "path": "/api/2.2/jobs/delete", - "can_use_json": true, + "name": "DeleteExample", + "description": "Deletes an example from a Knowledge Assistant.", + "summary": "Delete an example from a Knowledge Assistant.", + "path": "/api/2.1/{name=knowledge-assistants/*/examples/*}", "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "DeleteJob", + "pascal_name": "DeleteExampleRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "job_id", - "description": "The canonical identifier of the job to delete. This field is required.", + "name": "name", + "description": "The resource name of the example to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], - "required_request_body_fields": [ + "required_in_url_fields": [ { - "name": "job_id", - "description": "The canonical identifier of the job to delete. This field is required.", + "name": "name", + "description": "The resource name of the example to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] @@ -164422,59 +170296,59 @@ }, "all_fields": [ { - "name": "job_id", - "description": "The canonical identifier of the job to delete. This field is required.", + "name": "name", + "description": "The resource name of the example to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], "required_positional_arguments": [ { - "name": "job_id", - "description": "The canonical identifier of the job to delete. This field is required.", + "name": "name", + "description": "The resource name of the example to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, { - "name": "DeleteRun", - "description": "Deletes a non-active run. Returns an error if the run is active.", - "summary": "Delete a job run.", - "path": "/api/2.2/jobs/runs/delete", - "can_use_json": true, + "name": "DeleteKnowledgeAssistant", + "description": "Deletes a Knowledge Assistant.", + "summary": "Delete a Knowledge Assistant.", + "path": "/api/2.1/{name=knowledge-assistants/*}", "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "DeleteRun", + "pascal_name": "DeleteKnowledgeAssistantRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "run_id", - "description": "ID of the run to delete.", + "name": "name", + "description": "The resource name of the knowledge assistant to be deleted.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], - "required_request_body_fields": [ + "required_in_url_fields": [ { - "name": "run_id", - "description": "ID of the run to delete.", + "name": "name", + "description": "The resource name of the knowledge assistant to be deleted.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] @@ -164484,168 +170358,159 @@ }, "all_fields": [ { - "name": "run_id", - "description": "ID of the run to delete.", + "name": "name", + "description": "The resource name of the knowledge assistant to be deleted.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], "required_positional_arguments": [ { - "name": "run_id", - "description": "ID of the run to delete.", + "name": "name", + "description": "The resource name of the knowledge assistant to be deleted.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, { - "name": "ExportRun", - "description": "Export and retrieve the job run task.", - "summary": "Export and retrieve a job run.", - "path": "/api/2.2/jobs/runs/export", + "name": "DeleteKnowledgeSource", + "description": "Deletes a Knowledge Source.", + "summary": "Delete a Knowledge Source.", + "path": "/api/2.1/{name=knowledge-assistants/*/knowledge-sources/*}", "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "ExportRunRequest", + "pascal_name": "DeleteKnowledgeSourceRequest", "is_object": true, "required_fields": [ { - "name": "run_id", - "description": "The canonical identifier for the run. This field is required.", + "name": "name", + "description": "The resource name of the Knowledge Source to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], "required_in_url_fields": [ { - "name": "run_id", - "description": "The canonical identifier for the run. This field is required.", + "name": "name", + "description": "The resource name of the Knowledge Source to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, "response": { - "pascal_name": "ExportRunOutput", - "is_object": true + "is_empty_response": true }, "all_fields": [ { - "name": "run_id", - "description": "The canonical identifier for the run. This field is required.", + "name": "name", + "description": "The resource name of the Knowledge Source to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, - "is_query": true, - "entity": { - "is_int64": true - } - }, - { - "name": "views_to_export", - "description": "Which views to export (CODE, DASHBOARDS, or ALL). Defaults to CODE.", - "is_query": true, + "is_path": true, "entity": { - "pascal_name": "ViewsToExport", - "enum": [ - { - "content": "ALL" - }, - { - "content": "CODE" - }, - { - "content": "DASHBOARDS" - } - ] + "is_string": true } } ], "required_positional_arguments": [ { - "name": "run_id", - "description": "The canonical identifier for the run. This field is required.", + "name": "name", + "description": "The resource name of the Knowledge Source to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, { - "name": "Get", - "description": "Retrieves the details for a single job.\n\nLarge arrays in the results will be paginated when they exceed 100 elements.\nA request for a single job will return all properties for that job, and the first 100 elements of array properties (`tasks`, `job_clusters`, `environments` and `parameters`).\nUse the `next_page_token` field to check for more results and pass its value as the `page_token` in subsequent requests.\nIf any array properties have more than 100 elements, additional results will be returned on subsequent requests. Arrays without additional results will be empty on later pages.", - "summary": "Get a single job.", - "path": "/api/2.2/jobs/get", + "name": "GetExample", + "description": "Gets an example from a Knowledge Assistant.", + "summary": "Get an example from a Knowledge Assistant.", + "path": "/api/2.1/{name=knowledge-assistants/*/examples/*}", "is_crud_read": true, "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "GetJobRequest", + "pascal_name": "GetExampleRequest", "is_object": true, "required_fields": [ { - "name": "job_id", - "description": "The canonical identifier of the job to retrieve information about. This field is required.", + "name": "name", + "description": "The resource name of the example.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], "required_in_url_fields": [ { - "name": "job_id", - "description": "The canonical identifier of the job to retrieve information about. This field is required.", + "name": "name", + "description": "The resource name of the example.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, "response": { - "pascal_name": "Job", - "is_object": true + "pascal_name": "Example", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] }, "all_fields": [ { - "name": "include_trigger_state", - "description": "Flag that indicates that trigger state should be included in the response.", - "is_query": true, - "entity": { - "is_bool": true - } - }, - { - "name": "job_id", - "description": "The canonical identifier of the job to retrieve information about. This field is required.", + "name": "name", + "description": "The resource name of the example.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", "required": true, - "is_query": true, - "entity": { - "is_int64": true - } - }, - { - "name": "page_token", - "description": "Use `next_page_token` returned from the previous GetJob response to request the next page of the job's array properties.", - "is_query": true, + "is_path": true, "entity": { "is_string": true } @@ -164653,31 +170518,34 @@ ], "required_positional_arguments": [ { - "name": "job_id", - "description": "The canonical identifier of the job to retrieve information about. This field is required.", + "name": "name", + "description": "The resource name of the example.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, { - "name": "GetPermissionLevels", - "description": "Gets the permission levels that a user can have on an object.", - "summary": "Get job permission levels.", - "path": "/api/2.0/permissions/jobs/{job_id}/permissionLevels", + "name": "GetKnowledgeAssistant", + "description": "Gets a Knowledge Assistant.", + "summary": "Get a Knowledge Assistant.", + "path": "/api/2.1/{name=knowledge-assistants/*}", + "is_crud_read": true, "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "GetJobPermissionLevelsRequest", + "pascal_name": "GetKnowledgeAssistantRequest", "is_object": true, "required_fields": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "name", + "description": "The resource name of the knowledge assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, "is_path": true, "entity": { @@ -164687,8 +170555,8 @@ ], "required_in_url_fields": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "name", + "description": "The resource name of the knowledge assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, "is_path": true, "entity": { @@ -164698,13 +170566,54 @@ ] }, "response": { - "pascal_name": "GetJobPermissionLevelsResponse", - "is_object": true + "pascal_name": "KnowledgeAssistant", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] }, "all_fields": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "name", + "description": "The resource name of the knowledge assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, "is_path": true, "entity": { @@ -164714,8 +170623,8 @@ ], "required_positional_arguments": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "name", + "description": "The resource name of the knowledge assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, "is_path": true, "entity": { @@ -164725,20 +170634,23 @@ ] }, { - "name": "GetPermissions", - "description": "Gets the permissions of a job. Jobs can inherit permissions from their root object.", - "summary": "Get job permissions.", - "path": "/api/2.0/permissions/jobs/{job_id}", + "name": "GetKnowledgeSource", + "description": "Gets a Knowledge Source.", + "summary": "Get a Knowledge Source.", + "path": "/api/2.1/{name=knowledge-assistants/*/knowledge-sources/*}", + "is_crud_read": true, "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "GetJobPermissionsRequest", + "pascal_name": "GetKnowledgeSourceRequest", "is_object": true, "required_fields": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "name", + "description": "The resource name of the Knowledge Source.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, "is_path": true, "entity": { @@ -164748,8 +170660,8 @@ ], "required_in_url_fields": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "name", + "description": "The resource name of the Knowledge Source.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, "is_path": true, "entity": { @@ -164759,13 +170671,72 @@ ] }, "response": { - "pascal_name": "JobPermissions", - "is_object": true + "pascal_name": "KnowledgeSource", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] }, "all_fields": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "name", + "description": "The resource name of the Knowledge Source.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, "is_path": true, "entity": { @@ -164775,8 +170746,8 @@ ], "required_positional_arguments": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "name", + "description": "The resource name of the Knowledge Source.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, "is_path": true, "entity": { @@ -164786,204 +170757,204 @@ ] }, { - "name": "GetRun", - "description": "Retrieves the metadata of a run.\n\nLarge arrays in the results will be paginated when they exceed 100 elements.\nA request for a single run will return all properties for that run, and the first 100 elements of array properties (`tasks`, `job_clusters`, `job_parameters` and `repair_history`).\nUse the next_page_token field to check for more results and pass its value as the page_token in subsequent requests.\nIf any array properties have more than 100 elements, additional results will be returned on subsequent requests. Arrays without additional results will be empty on later pages.", - "summary": "Get a single job run.", - "path": "/api/2.2/jobs/runs/get", + "name": "GetPermissionLevels", + "description": "Gets the permission levels that a user can have on an object.", + "summary": "Get knowledge assistant permission levels.", + "path": "/api/2.0/permissions/knowledge-assistants/{knowledge_assistant_id}/permissionLevels", "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "GetRunRequest", + "pascal_name": "GetKnowledgeAssistantPermissionLevelsRequest", "is_object": true, "required_fields": [ { - "name": "run_id", - "description": "The canonical identifier of the run for which to retrieve the metadata.\nThis field is required.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], "required_in_url_fields": [ { - "name": "run_id", - "description": "The canonical identifier of the run for which to retrieve the metadata.\nThis field is required.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, "response": { - "pascal_name": "Run", + "pascal_name": "GetKnowledgeAssistantPermissionLevelsResponse", "is_object": true }, "all_fields": [ { - "name": "include_history", - "description": "Whether to include the repair history in the response.", - "is_query": true, - "entity": { - "is_bool": true - } - }, - { - "name": "include_resolved_values", - "description": "Whether to include resolved parameter values in the response.", - "is_query": true, - "entity": { - "is_bool": true - } - }, - { - "name": "page_token", - "description": "Use `next_page_token` returned from the previous GetRun response to request the next page of the run's array properties.", - "is_query": true, - "entity": { - "is_string": true - } - }, - { - "name": "run_id", - "description": "The canonical identifier of the run for which to retrieve the metadata.\nThis field is required.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], "required_positional_arguments": [ { - "name": "run_id", - "description": "The canonical identifier of the run for which to retrieve the metadata.\nThis field is required.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, { - "name": "GetRunOutput", - "description": "Retrieve the output and metadata of a single task run. When a notebook task returns\na value through the `dbutils.notebook.exit()` call, you can use this endpoint to retrieve\nthat value. Databricks restricts this API to returning the first 5 MB of the output.\nTo return a larger result, you can store job results in a cloud storage service.\n\nThis endpoint validates that the __run_id__ parameter is valid and returns an HTTP status\ncode 400 if the __run_id__ parameter is invalid. Runs are automatically removed after\n60 days. If you to want to reference them beyond 60 days, you must save old run results\nbefore they expire.", - "summary": "Get the output for a single run.", - "path": "/api/2.2/jobs/runs/get-output", + "name": "GetPermissions", + "description": "Gets the permissions of a knowledge assistant. Knowledge assistants can inherit permissions from their root object.", + "summary": "Get knowledge assistant permissions.", + "path": "/api/2.0/permissions/knowledge-assistants/{knowledge_assistant_id}", "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "GetRunOutputRequest", + "pascal_name": "GetKnowledgeAssistantPermissionsRequest", "is_object": true, "required_fields": [ { - "name": "run_id", - "description": "The canonical identifier for the run.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], "required_in_url_fields": [ { - "name": "run_id", - "description": "The canonical identifier for the run.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, "response": { - "pascal_name": "RunOutput", + "pascal_name": "KnowledgeAssistantPermissions", "is_object": true }, "all_fields": [ { - "name": "run_id", - "description": "The canonical identifier for the run.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], "required_positional_arguments": [ { - "name": "run_id", - "description": "The canonical identifier for the run.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, { - "name": "List", - "description": "Retrieves a list of jobs.", - "summary": "List jobs.", - "path": "/api/2.2/jobs/list", + "name": "ListExamples", + "description": "Lists examples under a Knowledge Assistant.", + "summary": "List examples for a Knowledge Assistant.", + "path": "/api/2.1/{parent=knowledge-assistants/*}/examples", "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "ListJobsRequest", - "is_object": true + "pascal_name": "ListExamplesRequest", + "is_object": true, + "required_fields": [ + { + "name": "parent", + "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] }, "response": { - "pascal_name": "ListJobsResponse", + "pascal_name": "ListExamplesResponse", "is_object": true }, "all_fields": [ { - "name": "expand_tasks", - "description": "Whether to include task and cluster details in the response. Note that only the first 100 elements will be shown.\nUse :method:jobs/get to paginate through all tasks and clusters.", - "is_query": true, - "entity": { - "is_bool": true - } - }, - { - "name": "limit", - "description": "The number of jobs to return. This value must be greater than 0 and less or equal to 100. The default value is 20.", + "name": "page_size", + "description": "The maximum number of examples to return.\nIf unspecified, at most 100 examples will be returned.\nThe maximum value is 100; values above 100 will be coerced to 100.", "is_query": true, "entity": { "is_int": true } }, { - "name": "name", - "description": "A filter on the list based on the exact (case insensitive) job name.", + "name": "page_token", + "description": "A page token, received from a previous `ListExamples` call.\nProvide this to retrieve the subsequent page.\nIf unspecified, the first page will be returned.", "is_query": true, "entity": { "is_string": true } }, { - "name": "offset", - "description": "The offset of the first job to return, relative to the most recently created job.\nDeprecated since June 2023. Use `page_token` to iterate through the pages instead.", - "is_query": true, + "name": "parent", + "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, "entity": { - "is_int": true + "is_string": true } - }, + } + ], + "required_positional_arguments": [ { - "name": "page_token", - "description": "Use `next_page_token` or `prev_page_token` returned from the previous request to list the next or previous page of jobs respectively.", - "is_query": true, + "name": "parent", + "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, "entity": { "is_string": true } @@ -164993,7 +170964,7 @@ "token": { "poll_field": { "name": "page_token", - "description": "Use `next_page_token` or `prev_page_token` returned from the previous request to list the next or previous page of jobs respectively.", + "description": "A page token, received from a previous `ListExamples` call.\nProvide this to retrieve the subsequent page.\nIf unspecified, the first page will be returned.", "is_query": true, "entity": { "is_string": true @@ -165003,65 +170974,97 @@ } }, { - "name": "ListRuns", - "description": "List runs in descending order by start time.", - "summary": "List job runs.", - "path": "/api/2.2/jobs/runs/list", + "name": "ListKnowledgeAssistants", + "description": "List Knowledge Assistants", + "summary": "List Knowledge Assistants.", + "path": "/api/2.1/knowledge-assistants", "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "ListRunsRequest", + "pascal_name": "ListKnowledgeAssistantsRequest", "is_object": true }, "response": { - "pascal_name": "ListRunsResponse", + "pascal_name": "ListKnowledgeAssistantsResponse", "is_object": true }, "all_fields": [ { - "name": "active_only", - "description": "If active_only is `true`, only active runs are included in the results; otherwise,\nlists both active and completed runs. An active run is a run in the `QUEUED`, `PENDING`,\n`RUNNING`, or `TERMINATING`. This field cannot be `true` when completed_only is `true`.", + "name": "page_size", + "description": "The maximum number of knowledge assistants to return.\nIf unspecified, at most 100 knowledge assistants will be returned.\nThe maximum value is 100; values above 100 will be coerced to 100.", "is_query": true, "entity": { - "is_bool": true + "is_int": true } }, { - "name": "completed_only", - "description": "If completed_only is `true`, only completed runs are included in the results;\notherwise, lists both active and completed runs. This field cannot be `true` when\nactive_only is `true`.", + "name": "page_token", + "description": "A page token, received from a previous `ListKnowledgeAssistants` call.\nProvide this to retrieve the subsequent page.\nIf unspecified, the first page will be returned.", "is_query": true, "entity": { - "is_bool": true + "is_string": true } - }, - { - "name": "expand_tasks", - "description": "Whether to include task and cluster details in the response. Note that only the first 100 elements will be shown.\nUse :method:jobs/getrun to paginate through all tasks and clusters.", - "is_query": true, - "entity": { - "is_bool": true + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "A page token, received from a previous `ListKnowledgeAssistants` call.\nProvide this to retrieve the subsequent page.\nIf unspecified, the first page will be returned.", + "is_query": true, + "entity": { + "is_string": true + } } - }, - { - "name": "job_id", - "description": "The job for which to list runs. If omitted, the Jobs service lists runs from all jobs.", - "is_query": true, - "entity": { - "is_int64": true + } + } + }, + { + "name": "ListKnowledgeSources", + "description": "Lists Knowledge Sources under a Knowledge Assistant.", + "summary": "List Knowledge Sources.", + "path": "/api/2.1/{parent=knowledge-assistants/*}/knowledge-sources", + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "ListKnowledgeSourcesRequest", + "is_object": true, + "required_fields": [ + { + "name": "parent", + "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } } - }, - { - "name": "limit", - "description": "The number of runs to return. This value must be greater than 0 and less than 25.\nThe default value is 20. If a request specifies a limit of 0, the service instead\nuses the maximum limit.", - "is_query": true, - "entity": { - "is_int": true + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } } - }, + ] + }, + "response": { + "pascal_name": "ListKnowledgeSourcesResponse", + "is_object": true + }, + "all_fields": [ { - "name": "offset", - "description": "The offset of the first run to return, relative to the most recent run.\nDeprecated since June 2023. Use `page_token` to iterate through the pages instead.", + "name": "page_size", "is_query": true, "entity": { "is_int": true @@ -165069,45 +171072,29 @@ }, { "name": "page_token", - "description": "Use `next_page_token` or `prev_page_token` returned from the previous request to list the next or previous page of runs respectively.", "is_query": true, "entity": { "is_string": true } }, { - "name": "run_type", - "description": "The type of runs to return. For a description of run types, see :method:jobs/getRun.", - "is_query": true, - "entity": { - "pascal_name": "RunType", - "enum": [ - { - "content": "JOB_RUN" - }, - { - "content": "SUBMIT_RUN" - }, - { - "content": "WORKFLOW_RUN" - } - ] - } - }, - { - "name": "start_time_from", - "description": "Show runs that started _at or after_ this value. The value must be a UTC timestamp\nin milliseconds. Can be combined with _start_time_to_ to filter by a time range.", - "is_query": true, + "name": "parent", + "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } - }, + } + ], + "required_positional_arguments": [ { - "name": "start_time_to", - "description": "Show runs that started _at or before_ this value. The value must be a UTC timestamp\nin milliseconds. Can be combined with _start_time_from_ to filter by a time range.", - "is_query": true, + "name": "parent", + "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], @@ -165115,179 +171102,361 @@ "token": { "poll_field": { "name": "page_token", - "description": "Use `next_page_token` or `prev_page_token` returned from the previous request to list the next or previous page of runs respectively.", "is_query": true, "entity": { "is_string": true } } } - } + } + }, + { + "name": "SetPermissions", + "description": "Sets permissions on an object, replacing existing permissions if they exist. Deletes all direct permissions if none are specified. Objects can inherit permissions from their root object.", + "summary": "Set knowledge assistant permissions.", + "path": "/api/2.0/permissions/knowledge-assistants/{knowledge_assistant_id}", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "KnowledgeAssistantPermissionsRequest", + "is_object": true, + "required_fields": [ + { + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "KnowledgeAssistantPermissions", + "is_object": true + }, + "all_fields": [ + { + "name": "access_control_list", + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeAssistantAccessControlRequestList", + "array_value": { + "pascal_name": "KnowledgeAssistantAccessControlRequest", + "is_object": true + } + } + }, + { + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] }, { - "name": "RepairRun", - "description": "Re-run one or more tasks. Tasks are re-run as part of the original job run.\nThey use the current job and task settings, and can be viewed in the history for the\noriginal job run.", - "summary": "Repair a job run.", - "path": "/api/2.2/jobs/runs/repair", - "can_use_json": true, + "name": "SyncKnowledgeSources", + "description": "Sync all non-index Knowledge Sources for a Knowledge Assistant (index sources do not require sync)", + "summary": "Syncs all Knowledge Sources for a Knowledge Assistant.", + "path": "/api/2.1/{name=knowledge-assistants/*}/knowledge-sources:sync", + "is_crud_create": true, "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "RepairRun", + "pascal_name": "SyncKnowledgeSourcesRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "run_id", - "description": "The job run ID of the run to repair. The run must not be in progress.", + "name": "name", + "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], - "required_request_body_fields": [ + "required_in_url_fields": [ { - "name": "run_id", - "description": "The job run ID of the run to repair. The run must not be in progress.", + "name": "name", + "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, "response": { - "pascal_name": "RepairRunResponse", - "is_object": true + "is_empty_response": true }, "all_fields": [ { - "name": "dbt_commands", - "description": "An array of commands to execute for jobs with the dbt task, for example `\"dbt_commands\": [\"dbt deps\", \"dbt seed\", \"dbt deps\", \"dbt seed\", \"dbt run\"]`\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", - "is_request_body_field": true, + "name": "name", + "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, "entity": { - "pascal_name": "List", - "array_value": { - "is_string": true - } + "is_string": true } - }, + } + ], + "required_positional_arguments": [ { - "name": "duration_target", - "description": "The window the run aims to finish within, in hours, for a Cost-optimized serverless run.\nRequired only when `performance_target` is `COST_OPTIMIZED`. Must be one of the\nsupported values: `NO_FLEXIBILITY`, `4h`, `12h`, `24h`, `72h`. `NO_FLEXIBILITY` means the run\nuses the default cost-optimized performance level without additional cost-saving optimizations.", - "is_request_body_field": true, + "name": "name", + "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, "entity": { "is_string": true } - }, - { - "name": "jar_params", - "description": "A list of parameters for jobs with Spark JAR tasks, for example `\"jar_params\": [\"john doe\", \"35\"]`.\nThe parameters are used to invoke the main function of the main class specified in the Spark JAR task.\nIf not specified upon `run-now`, it defaults to an empty list.\njar_params cannot be specified in conjunction with notebook_params.\nThe JSON representation of this field (for example `{\"jar_params\":[\"john doe\",\"35\"]}`) cannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", - "is_request_body_field": true, - "entity": { - "pascal_name": "List", - "array_value": { + } + ] + }, + { + "name": "UpdateExample", + "description": "Updates an example in a Knowledge Assistant.", + "summary": "Update an example in a Knowledge Assistant.", + "path": "/api/2.1/{name=knowledge-assistants/*/examples/*}", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "UpdateExampleRequest", + "is_object": true, + "has_field_mask": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "The resource name of the example to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "required": true, + "is_path": true, + "entity": { "is_string": true } + }, + { + "name": "example", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Example", + "is_object": true + } + }, + { + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the example.\nAllowed values: `question`, `guidelines`.\nExamples:\n- `question`\n- `question,guidelines`", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } - }, - { - "name": "job_parameters", - "description": "Job-level parameters used in the run. for example `\"param\": \"overriding_val\"`", - "is_request_body_field": true, - "entity": { - "map_value": { + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "The resource name of the example to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "required": true, + "is_path": true, + "entity": { "is_string": true } + }, + { + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the example.\nAllowed values: `question`, `guidelines`.\nExamples:\n- `question`\n- `question,guidelines`", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } - }, - { - "name": "latest_repair_id", - "description": "The ID of the latest repair. This parameter is not required when repairing a run for the first time, but must be provided on subsequent requests to repair the same run.", - "is_request_body_field": true, - "entity": { - "is_int64": true + ], + "required_request_body_fields": [ + { + "name": "example", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Example", + "is_object": true + } } - }, - { - "name": "notebook_params", - "description": "A map from keys to values for jobs with notebook task, for example `\"notebook_params\": {\"name\": \"john doe\", \"age\": \"35\"}`.\nThe map is passed to the notebook and is accessible through the [dbutils.widgets.get](https://docs.databricks.com/dev-tools/databricks-utils.html) function.\n\nIf not specified upon `run-now`, the triggered run uses the job’s base parameters.\n\nnotebook_params cannot be specified in conjunction with jar_params.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nThe JSON representation of this field (for example `{\"notebook_params\":{\"name\":\"john doe\",\"age\":\"35\"}}`) cannot exceed 10,000 bytes.", - "is_request_body_field": true, - "entity": { - "map_value": { + ] + }, + "request_body_field": { + "name": "example", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Example", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + }, + "response": { + "pascal_name": "Example", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { "is_string": true } } - }, + ], + "required_request_body_fields": [ + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "all_fields": [ { - "name": "performance_target", - "description": "The performance mode on a serverless job. The performance target determines the level of compute performance or cost-efficiency for the run. This field overrides the performance target defined on the job level.\n\n* `PERFORMANCE_OPTIMIZED`: Prioritizes fast startup and execution times through rapid scaling and optimized cluster performance.\n* `STANDARD`: Enables cost-efficient execution of serverless workloads.\n* `COST_OPTIMIZED`: Enables lower job costs by optimizing compute for your selected target duration time. Must provide a duration target.", + "name": "example", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "PerformanceTarget", - "enum": [ + "pascal_name": "Example", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ { - "content": "PERFORMANCE_OPTIMIZED" - }, + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ { - "content": "STANDARD" + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } } ] } }, { - "name": "pipeline_params", - "description": "Controls whether the pipeline should perform a full refresh", - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "pascal_name": "PipelineParams", - "is_object": true - } - }, - { - "name": "python_named_params", - "is_request_body_field": true, + "name": "name", + "description": "The resource name of the example to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "required": true, + "is_path": true, "entity": { - "map_value": { - "is_string": true - } + "is_string": true } }, { - "name": "python_params", - "description": "A list of parameters for jobs with Python tasks, for example `\"python_params\": [\"john doe\", \"35\"]`.\nThe parameters are passed to Python file as command-line parameters. If specified upon `run-now`, it would overwrite\nthe parameters specified in job setting. The JSON representation of this field (for example `{\"python_params\":[\"john doe\",\"35\"]}`)\ncannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nImportant\n\nThese parameters accept only Latin characters (ASCII character set). Using non-ASCII characters returns an error.\nExamples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis.", - "is_request_body_field": true, + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the example.\nAllowed values: `question`, `guidelines`.\nExamples:\n- `question`\n- `question,guidelines`", + "required": true, + "is_query": true, "entity": { - "pascal_name": "List", - "array_value": { - "is_string": true - } + "is_field_mask": true } }, { - "name": "rerun_all_failed_tasks", - "description": "If true, repair all failed tasks. Only one of `rerun_tasks` or `rerun_all_failed_tasks` can be used.", + "name": "create_time", + "description": "Timestamp when this example was created.", + "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_bool": true + "is_timestamp": true } }, { - "name": "rerun_dependent_tasks", - "description": "If true, repair all tasks that depend on the tasks in `rerun_tasks`, even if they were previously successful. Can be also used in combination with `rerun_all_failed_tasks`.", + "name": "example_id", + "description": "The universally unique identifier (UUID) of the example.", + "is_output_only": true, "is_request_body_field": true, "entity": { - "is_bool": true + "is_string": true } }, { - "name": "rerun_tasks", - "description": "The task keys of the task runs to repair.", + "name": "guidelines", + "description": "Guidelines for answering the question. Optional — examples may be created\nwith just a question; the front-end form does not require guidelines.", "is_request_body_field": true, "entity": { "pascal_name": "List", @@ -165297,938 +171466,1228 @@ } }, { - "name": "run_id", - "description": "The job run ID of the run to repair. The run must not be in progress.", - "required": true, + "name": "name", + "description": "Full resource name:\nknowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", "is_request_body_field": true, "entity": { - "is_int64": true + "is_string": true } }, { - "name": "spark_submit_params", - "description": "A list of parameters for jobs with spark submit task, for example `\"spark_submit_params\": [\"--class\", \"org.apache.spark.examples.SparkPi\"]`.\nThe parameters are passed to spark-submit script as command-line parameters. If specified upon `run-now`, it would overwrite the\nparameters specified in job setting. The JSON representation of this field (for example `{\"python_params\":[\"john doe\",\"35\"]}`)\ncannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nImportant\n\nThese parameters accept only Latin characters (ASCII character set). Using non-ASCII characters returns an error.\nExamples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis.", + "name": "question", + "description": "The example question.", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "List", - "array_value": { - "is_string": true - } + "is_string": true } }, { - "name": "sql_params", - "description": "A map from keys to values for jobs with SQL task, for example `\"sql_params\": {\"name\": \"john doe\", \"age\": \"35\"}`. The SQL alert task does not support custom parameters.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", + "name": "update_time", + "description": "Timestamp when this example was last updated.", + "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "map_value": { - "is_string": true - } + "is_timestamp": true } } ], "required_positional_arguments": [ { - "name": "run_id", - "description": "The job run ID of the run to repair. The run must not be in progress.", + "name": "name", + "description": "The resource name of the example to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true - } - } - ], - "wait": { - "success": [ - { - "content": "TERMINATED" - }, - { - "content": "SKIPPED" - } - ], - "timeout": 20, - "complex_message_path": true, - "poll": { - "response": { - "pascal_name": "Run" + "is_string": true } }, - "status_path": [ - { - "pascal_name": "State" - }, - { - "pascal_name": "LifeCycleState" + { + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the example.\nAllowed values: `question`, `guidelines`.\nExamples:\n- `question`\n- `question,guidelines`", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true } - ], - "message_path": [ - { - "pascal_name": "State" - }, - { - "pascal_name": "StateMessage" + }, + { + "name": "question", + "description": "The example question.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true } - ], - "message_path_head": { - "pascal_name": "State" } - } + ] }, { - "name": "Reset", - "description": "Overwrite all settings for the given job. Use the [_Update_ endpoint](:method:jobs/update) to update job settings partially.", - "summary": "Update all job settings (reset).", - "path": "/api/2.2/jobs/reset", + "name": "UpdateKnowledgeAssistant", + "description": "Updates a Knowledge Assistant.", + "summary": "Update a Knowledge Assistant.", + "path": "/api/2.1/{name=knowledge-assistants/*}", "can_use_json": true, - "must_use_json": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "ResetJob", + "pascal_name": "UpdateKnowledgeAssistantRequest", "is_object": true, + "has_field_mask": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "job_id", - "description": "The canonical identifier of the job to reset. This field is required.", + "name": "name", + "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } }, { - "name": "new_settings", - "description": "The new settings of the job. These settings completely replace the old settings.\n\nChanges to the field `JobBaseSettings.timeout_seconds` are applied to active runs. Changes to other fields are applied to future runs only.", + "name": "knowledge_assistant", + "description": "The Knowledge Assistant update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Assistant fields describe create-time\nrequirements and do not mean all those fields are required for update.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "JobSettings", + "pascal_name": "KnowledgeAssistant", "is_object": true } + }, + { + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the Knowledge Assistant.\nAllowed values: `display_name`, `description`, `instructions`.\nExamples:\n- `display_name`\n- `description,instructions`", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } ], - "required_request_body_fields": [ + "required_in_url_fields": [ { - "name": "job_id", - "description": "The canonical identifier of the job to reset. This field is required.", + "name": "name", + "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } }, { - "name": "new_settings", - "description": "The new settings of the job. These settings completely replace the old settings.\n\nChanges to the field `JobBaseSettings.timeout_seconds` are applied to active runs. Changes to other fields are applied to future runs only.", + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the Knowledge Assistant.\nAllowed values: `display_name`, `description`, `instructions`.\nExamples:\n- `display_name`\n- `description,instructions`", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + } + ], + "required_request_body_fields": [ + { + "name": "knowledge_assistant", + "description": "The Knowledge Assistant update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Assistant fields describe create-time\nrequirements and do not mean all those fields are required for update.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "JobSettings", + "pascal_name": "KnowledgeAssistant", "is_object": true } } ] }, - "response": { - "is_empty_response": true - }, - "all_fields": [ - { - "name": "job_id", - "description": "The canonical identifier of the job to reset. This field is required.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_int64": true - } - }, - { - "name": "new_settings", - "description": "The new settings of the job. These settings completely replace the old settings.\n\nChanges to the field `JobBaseSettings.timeout_seconds` are applied to active runs. Changes to other fields are applied to future runs only.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "JobSettings", - "is_object": true - } + "request_body_field": { + "name": "knowledge_assistant", + "description": "The Knowledge Assistant update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Assistant fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeAssistant", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] } - ] - }, - { - "name": "RunNow", - "description": "Run a job and return the `run_id` of the triggered run.", - "summary": "Trigger a new job run.", - "path": "/api/2.2/jobs/run-now", - "can_use_json": true, - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "RunNow", + }, + "response": { + "pascal_name": "KnowledgeAssistant", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "job_id", - "description": "The ID of the job to be executed", + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", "required": true, "is_request_body_field": true, "entity": { - "is_int64": true + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true } } ], "required_request_body_fields": [ { - "name": "job_id", - "description": "The ID of the job to be executed", + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", "required": true, "is_request_body_field": true, "entity": { - "is_int64": true + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true } } ] }, - "response": { - "pascal_name": "RunNowResponse", - "is_object": true - }, "all_fields": [ { - "name": "dbt_commands", - "description": "An array of commands to execute for jobs with the dbt task, for example `\"dbt_commands\": [\"dbt deps\", \"dbt seed\", \"dbt deps\", \"dbt seed\", \"dbt run\"]`\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", + "name": "knowledge_assistant", + "description": "The Knowledge Assistant update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Assistant fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "List", - "array_value": { - "is_string": true - } + "pascal_name": "KnowledgeAssistant", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] } }, { - "name": "duration_target", - "description": "The window the run aims to finish within, in hours, for a Cost-optimized serverless run.\nRequired only when `performance_target` is `COST_OPTIMIZED`. Must be one of the\nsupported values: `NO_FLEXIBILITY`, `4h`, `12h`, `24h`, `72h`. `NO_FLEXIBILITY` means the run\nuses the default cost-optimized performance level without additional cost-saving optimizations.", - "is_request_body_field": true, + "name": "name", + "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "idempotency_token", - "description": "An optional token to guarantee the idempotency of job run requests. If a run with the provided token already exists,\nthe request does not create a new run but returns the ID of the existing run instead. If a run with the provided token is deleted,\nan error is returned.\n\nIf you specify the idempotency token, upon failure you can retry until the request succeeds. Databricks guarantees that exactly one run\nis launched with that idempotency token.\n\nThis token must have at most 64 characters.", + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the Knowledge Assistant.\nAllowed values: `display_name`, `description`, `instructions`.\nExamples:\n- `display_name`\n- `description,instructions`", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + }, + { + "name": "create_time", + "description": "Creation timestamp.", + "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true + "is_timestamp": true } }, { - "name": "jar_params", - "description": "A list of parameters for jobs with Spark JAR tasks, for example `\"jar_params\": [\"john doe\", \"35\"]`.\nThe parameters are used to invoke the main function of the main class specified in the Spark JAR task.\nIf not specified upon `run-now`, it defaults to an empty list.\njar_params cannot be specified in conjunction with notebook_params.\nThe JSON representation of this field (for example `{\"jar_params\":[\"john doe\",\"35\"]}`) cannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", + "name": "creator", + "description": "The creator of the Knowledge Assistant.", + "is_output_only": true, "is_request_body_field": true, "entity": { - "pascal_name": "List", - "array_value": { - "is_string": true - } + "is_string": true } }, { - "name": "job_id", - "description": "The ID of the job to be executed", + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", "required": true, "is_request_body_field": true, "entity": { - "is_int64": true + "is_string": true } }, { - "name": "job_parameters", - "description": "Job-level parameters used in the run. for example `\"param\": \"overriding_val\"`", + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, "is_request_body_field": true, "entity": { - "map_value": { - "is_string": true - } + "is_string": true } }, { - "name": "notebook_params", - "description": "A map from keys to values for jobs with notebook task, for example `\"notebook_params\": {\"name\": \"john doe\", \"age\": \"35\"}`.\nThe map is passed to the notebook and is accessible through the [dbutils.widgets.get](https://docs.databricks.com/dev-tools/databricks-utils.html) function.\n\nIf not specified upon `run-now`, the triggered run uses the job’s base parameters.\n\nnotebook_params cannot be specified in conjunction with jar_params.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nThe JSON representation of this field (for example `{\"notebook_params\":{\"name\":\"john doe\",\"age\":\"35\"}}`) cannot exceed 10,000 bytes.", + "name": "endpoint_name", + "description": "The name of the knowledge assistant agent endpoint.", + "is_output_only": true, "is_request_body_field": true, "entity": { - "map_value": { - "is_string": true - } + "is_string": true } }, { - "name": "only", - "description": "A list of task keys to run inside of the job. If this field is not provided, all tasks in the job will be run.\n\nPrefix a task key with `+` to also run its upstream tasks, or suffix it with `+` to also run its downstream tasks.\nFor example, `+my_task` runs `my_task` and everything upstream of it, `my_task+` runs `my_task` and everything\ndownstream of it, and `+my_task+` runs both. A task key with no `+` runs only that task.", + "name": "error_info", + "description": "Error details when the Knowledge Assistant is in FAILED state.", + "is_output_only": true, "is_request_body_field": true, "entity": { - "pascal_name": "List", - "array_value": { - "is_string": true - } + "is_string": true } }, { - "name": "performance_target", - "description": "The performance mode on a serverless job. The performance target determines the level of compute performance or cost-efficiency for the run. This field overrides the performance target defined on the job level.\n\n* `PERFORMANCE_OPTIMIZED`: Prioritizes fast startup and execution times through rapid scaling and optimized cluster performance.\n* `STANDARD`: Enables cost-efficient execution of serverless workloads.\n* `COST_OPTIMIZED`: Enables lower job costs by optimizing compute for your selected target duration time. Must provide a duration target.", + "name": "experiment_id", + "description": "The MLflow experiment ID.", + "is_output_only": true, "is_request_body_field": true, "entity": { - "pascal_name": "PerformanceTarget", - "enum": [ - { - "content": "PERFORMANCE_OPTIMIZED" - }, - { - "content": "STANDARD" - } - ] + "is_string": true } }, { - "name": "pipeline_params", - "description": "Controls whether the pipeline should perform a full refresh", + "name": "id", + "description": "Deprecated: use knowledge_assistant_id instead.", + "is_output_only": true, "is_request_body_field": true, - "is_optional_object": true, "entity": { - "pascal_name": "PipelineParams", - "is_object": true + "is_string": true } }, { - "name": "python_named_params", + "name": "instructions", + "description": "Additional global instructions on how the agent should generate answers.\nOptional on create and update.\nWhen updating a Knowledge Assistant, include this field in update_mask to\nmodify it.", "is_request_body_field": true, "entity": { - "map_value": { - "is_string": true - } + "is_string": true } }, { - "name": "python_params", - "description": "A list of parameters for jobs with Python tasks, for example `\"python_params\": [\"john doe\", \"35\"]`.\nThe parameters are passed to Python file as command-line parameters. If specified upon `run-now`, it would overwrite\nthe parameters specified in job setting. The JSON representation of this field (for example `{\"python_params\":[\"john doe\",\"35\"]}`)\ncannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nImportant\n\nThese parameters accept only Latin characters (ASCII character set). Using non-ASCII characters returns an error.\nExamples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis.", + "name": "name", + "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", "is_request_body_field": true, "entity": { - "pascal_name": "List", - "array_value": { - "is_string": true - } + "is_string": true } }, { - "name": "queue", - "description": "The queue settings of the run.", + "name": "state", + "description": "State of the Knowledge Assistant. Not returned in List responses.", + "is_output_only": true, "is_request_body_field": true, - "is_optional_object": true, "entity": { - "pascal_name": "QueueSettings", - "is_object": true + "pascal_name": "KnowledgeAssistantState", + "enum": [ + { + "content": "ACTIVE" + }, + { + "content": "CREATING" + }, + { + "content": "FAILED" + } + ] + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true } }, { - "name": "spark_submit_params", - "description": "A list of parameters for jobs with spark submit task, for example `\"spark_submit_params\": [\"--class\", \"org.apache.spark.examples.SparkPi\"]`.\nThe parameters are passed to spark-submit script as command-line parameters. If specified upon `run-now`, it would overwrite the\nparameters specified in job setting. The JSON representation of this field (for example `{\"python_params\":[\"john doe\",\"35\"]}`)\ncannot exceed 10,000 bytes.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.\n\nImportant\n\nThese parameters accept only Latin characters (ASCII character set). Using non-ASCII characters returns an error.\nExamples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis.", - "is_request_body_field": true, + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the Knowledge Assistant.\nAllowed values: `display_name`, `description`, `instructions`.\nExamples:\n- `display_name`\n- `description,instructions`", + "required": true, + "is_query": true, "entity": { - "pascal_name": "List", - "array_value": { - "is_string": true - } + "is_field_mask": true } }, { - "name": "sql_params", - "description": "A map from keys to values for jobs with SQL task, for example `\"sql_params\": {\"name\": \"john doe\", \"age\": \"35\"}`. The SQL alert task does not support custom parameters.\n\n⚠ **Deprecation note** Use [job parameters](https://docs.databricks.com/jobs/job-parameters.html#job-parameter-pushdown) to pass information down to tasks.", + "name": "display_name", + "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "required": true, "is_request_body_field": true, "entity": { - "map_value": { - "is_string": true - } + "is_string": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "job_id", - "description": "The ID of the job to be executed", + "name": "description", + "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", "required": true, "is_request_body_field": true, "entity": { - "is_int64": true + "is_string": true } } - ], - "wait": { - "success": [ + ] + }, + { + "name": "UpdateKnowledgeSource", + "description": "Updates a Knowledge Source.", + "summary": "Update a Knowledge Source.", + "path": "/api/2.1/{name=knowledge-assistants/*/knowledge-sources/*}", + "can_use_json": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "UpdateKnowledgeSourceRequest", + "is_object": true, + "has_field_mask": true, + "has_required_request_body_fields": true, + "required_fields": [ { - "content": "TERMINATED" + "name": "name", + "description": "The resource name of the Knowledge Source to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } }, { - "content": "SKIPPED" - } - ], - "timeout": 20, - "complex_message_path": true, - "poll": { - "response": { - "pascal_name": "Run" - } - }, - "status_path": [ - { - "pascal_name": "State" + "name": "knowledge_source", + "description": "The Knowledge Source update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Source fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeSource", + "is_object": true + } }, { - "pascal_name": "LifeCycleState" + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the Knowledge Source.\nAllowed values: `display_name`, `description`.\nExamples:\n- `display_name`\n- `display_name,description`", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } ], - "message_path": [ + "required_in_url_fields": [ { - "pascal_name": "State" + "name": "name", + "description": "The resource name of the Knowledge Source to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } }, { - "pascal_name": "StateMessage" + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the Knowledge Source.\nAllowed values: `display_name`, `description`.\nExamples:\n- `display_name`\n- `display_name,description`", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } ], - "message_path_head": { - "pascal_name": "State" + "required_request_body_fields": [ + { + "name": "knowledge_source", + "description": "The Knowledge Source update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Source fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeSource", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "knowledge_source", + "description": "The Knowledge Source update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Source fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "KnowledgeSource", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] } - } - }, - { - "name": "SetPermissions", - "description": "Sets permissions on an object, replacing existing permissions if they exist. Deletes all direct permissions if none are specified. Objects can inherit permissions from their root object.", - "summary": "Set job permissions.", - "path": "/api/2.0/permissions/jobs/{job_id}", - "can_use_json": true, - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "JobPermissionsRequest", + }, + "response": { + "pascal_name": "KnowledgeSource", "is_object": true, + "has_required_request_body_fields": true, "required_fields": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", "required": true, - "is_path": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, "entity": { "is_string": true } - } - ], - "required_in_url_fields": [ + }, { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } } ] }, - "response": { - "pascal_name": "JobPermissions", - "is_object": true - }, "all_fields": [ { - "name": "access_control_list", + "name": "knowledge_source", + "description": "The Knowledge Source update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Source fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "JobAccessControlRequestList", - "array_value": { - "pascal_name": "JobAccessControlRequest", - "is_object": true - } + "pascal_name": "KnowledgeSource", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] } }, { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "name", + "description": "The resource name of the Knowledge Source to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, "is_path": true, "entity": { "is_string": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the Knowledge Source.\nAllowed values: `display_name`, `description`.\nExamples:\n- `display_name`\n- `display_name,description`", "required": true, - "is_path": true, + "is_query": true, "entity": { - "is_string": true + "is_field_mask": true } - } - ] - }, - { - "name": "Submit", - "description": "Submit a one-time run. This endpoint allows you to submit a workload directly\nwithout creating a job. Runs submitted using this endpoint don’t display in\nthe UI. Use the `jobs/runs/get` API to check the run state after the job is\nsubmitted.\n\n**Important:** Jobs submitted using this endpoint are not saved as a job.\nThey do not show up in the Jobs UI, and do not retry when they fail. Because\nthey are not saved, Databricks cannot auto-optimize serverless compute in case\nof failure. If your job fails, you may want to use classic compute to specify\nthe compute needs for the job. Alternatively, use the `POST /jobs/create` and\n`POST /jobs/run-now` endpoints to create and run a saved job.", - "summary": "Create and trigger a one-time run.", - "path": "/api/2.2/jobs/runs/submit", - "can_use_json": true, - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "SubmitRun", - "is_object": true - }, - "response": { - "pascal_name": "SubmitRunResponse", - "is_object": true - }, - "all_fields": [ + }, { - "name": "access_control_list", - "description": "List of permissions to set on the job.", + "name": "create_time", + "description": "Timestamp when this knowledge source was created.", + "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "pascal_name": "JobAccessControlRequestList", - "array_value": { - "pascal_name": "JobAccessControlRequest", - "is_object": true - } + "is_timestamp": true } }, { - "name": "budget_policy_id", - "description": "The user specified id of the budget policy to use for this one-time run.\nIf not specified, the run will be not be attributed to any budget policy.", + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "duration_target", - "description": "The window the run aims to finish within, in hours, for a Cost-optimized serverless run.\nRequired only when `performance_target` is `COST_OPTIMIZED`. Must be one of the\nsupported values: `NO_FLEXIBILITY`, `4h`, `12h`, `24h`, `72h`. `NO_FLEXIBILITY` means the run\nuses the default cost-optimized performance level without additional cost-saving optimizations.", + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "email_notifications", - "description": "An optional set of email addresses notified when the run begins or completes.", + "name": "file_table", "is_request_body_field": true, "is_optional_object": true, "entity": { - "pascal_name": "JobEmailNotifications", + "pascal_name": "FileTableSpec", "is_object": true } }, { - "name": "environment_variables", - "description": "Named environment-variable entries that tasks of this one-time run can\nreference by key from `RunTaskSettings.environment_variables_key`. Each\nentry's `spec` holds inline `variables` and optional `.env` `files`.\nHandled identically to `JobSettings.environment_variables`. Maximum 10 entries.\nEntries are independent of one another — there is no cross-entry merging.", + "name": "files", "is_request_body_field": true, + "is_optional_object": true, "entity": { - "pascal_name": "JobEnvironmentVariablesList", - "array_value": { - "pascal_name": "JobEnvironmentVariables", - "is_object": true - } + "pascal_name": "FilesSpec", + "is_object": true } }, { - "name": "environments", - "description": "A list of task execution environment specifications that can be referenced by tasks of this run.", + "name": "id", + "is_output_only": true, "is_request_body_field": true, "entity": { - "pascal_name": "JobEnvironmentList", - "array_value": { - "pascal_name": "JobEnvironment", - "is_object": true - } + "is_string": true } }, { - "name": "git_source", - "description": "An optional specification for a remote Git repository containing the source code used by tasks. Version-controlled source code is supported by notebook, dbt, Python script, and SQL File tasks.\n\nIf `git_source` is set, these tasks retrieve the file from the remote repository by default. However, this behavior can be overridden by setting `source` to `WORKSPACE` on the task.\n\nNote: dbt and SQL File tasks support only version-controlled sources. If dbt or SQL File tasks are used, `git_source` must be defined on the job.", + "name": "index", "is_request_body_field": true, "is_optional_object": true, "entity": { - "pascal_name": "GitSource", + "pascal_name": "IndexSpec", "is_object": true } }, { - "name": "health", + "name": "knowledge_cutoff_time", + "description": "Timestamp representing the cutoff before which content in this knowledge source is being ingested.", + "is_output_only": true, "is_request_body_field": true, "is_optional_object": true, "entity": { - "pascal_name": "JobsHealthRules", - "is_object": true + "is_timestamp": true } }, { - "name": "idempotency_token", - "description": "An optional token that can be used to guarantee the idempotency of job run requests. If a run with the provided token already exists,\nthe request does not create a new run but returns the ID of the existing run instead. If a run with the provided token is deleted,\nan error is returned.\n\nIf you specify the idempotency token, upon failure you can retry until the request succeeds. Databricks guarantees that exactly\none run is launched with that idempotency token.\n\nThis token must have at most 64 characters.", + "name": "name", + "description": "Full resource name:\nknowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "notification_settings", - "description": "Optional notification settings that are used when sending notifications to each of the `email_notifications` and `webhook_notifications` for this run.", + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, "is_request_body_field": true, - "is_optional_object": true, "entity": { - "pascal_name": "JobNotificationSettings", - "is_object": true + "is_string": true } }, { - "name": "performance_target", - "description": "The performance mode on a serverless one-time run. This field determines the level of compute performance or cost-efficiency for the run.\nThe performance target does not apply to tasks that run on Serverless GPU compute.\n\n* `PERFORMANCE_OPTIMIZED`: Prioritizes fast startup and execution times through rapid scaling and optimized cluster performance.\n* `STANDARD`: Enables cost-efficient execution of serverless workloads.\n* `COST_OPTIMIZED`: Enables lower job costs by optimizing compute for your selected target duration time. Must provide a duration target.", + "name": "state", + "is_output_only": true, "is_request_body_field": true, "entity": { - "pascal_name": "PerformanceTarget", + "pascal_name": "KnowledgeSourceState", "enum": [ { - "content": "PERFORMANCE_OPTIMIZED" + "content": "FAILED_UPDATE" }, { - "content": "STANDARD" + "content": "UPDATED" + }, + { + "content": "UPDATING" } ] } - }, - { - "name": "queue", - "description": "The queue settings of the one-time run.", - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "pascal_name": "QueueSettings", - "is_object": true - } - }, - { - "name": "run_as", - "description": "Specifies the user or service principal that the job runs as. If not specified, the job runs as the user who submits the request.", - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "pascal_name": "JobRunAs", - "is_object": true - } - }, + } + ], + "required_positional_arguments": [ { - "name": "run_name", - "description": "An optional name for the run. The default value is `Untitled`.", - "is_request_body_field": true, + "name": "name", + "description": "The resource name of the Knowledge Source to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "required": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "tasks", - "is_request_body_field": true, + "name": "update_mask", + "description": "Comma-delimited list of fields to update on the Knowledge Source.\nAllowed values: `display_name`, `description`.\nExamples:\n- `display_name`\n- `display_name,description`", + "required": true, + "is_query": true, "entity": { - "pascal_name": "SubmitTaskList", - "array_value": { - "pascal_name": "SubmitTask", - "is_object": true - } + "is_field_mask": true } }, { - "name": "timeout_seconds", - "description": "An optional timeout applied to each run of this job. A value of `0` means no timeout.", + "name": "display_name", + "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, "is_request_body_field": true, "entity": { - "is_int": true + "is_string": true } }, { - "name": "usage_policy_id", - "description": "The user specified id of the usage policy to use for this one-time run.\nIf not specified, a default usage policy may be applied when creating or modifying the job.", + "name": "description", + "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "required": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "webhook_notifications", - "description": "A collection of system notification IDs to notify when the run begins or completes.", + "name": "source_type", + "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "required": true, "is_request_body_field": true, - "is_optional_object": true, "entity": { - "pascal_name": "WebhookNotifications", - "is_object": true - } - } - ], - "wait": { - "success": [ - { - "content": "TERMINATED" - }, - { - "content": "SKIPPED" - } - ], - "timeout": 20, - "complex_message_path": true, - "poll": { - "response": { - "pascal_name": "Run" - } - }, - "status_path": [ - { - "pascal_name": "State" - }, - { - "pascal_name": "LifeCycleState" - } - ], - "message_path": [ - { - "pascal_name": "State" - }, - { - "pascal_name": "StateMessage" + "is_string": true } - ], - "message_path_head": { - "pascal_name": "State" } - } + ] }, { - "name": "Update", - "description": "Add, update, or remove specific settings of an existing job. Use the [_Reset_ endpoint](:method:jobs/reset) to overwrite all job settings.", - "summary": "Update job settings partially.", - "path": "/api/2.2/jobs/update", + "name": "UpdatePermissions", + "description": "Updates the permissions on a knowledge assistant. Knowledge assistants can inherit permissions from their root object.", + "summary": "Update knowledge assistant permissions.", + "path": "/api/2.0/permissions/knowledge-assistants/{knowledge_assistant_id}", "can_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "UpdateJob", + "pascal_name": "KnowledgeAssistantPermissionsRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "job_id", - "description": "The canonical identifier of the job to update. This field is required.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ], - "required_request_body_fields": [ + "required_in_url_fields": [ { - "name": "job_id", - "description": "The canonical identifier of the job to update. This field is required.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] }, "response": { - "is_empty_response": true + "pascal_name": "KnowledgeAssistantPermissions", + "is_object": true }, "all_fields": [ { - "name": "fields_to_remove", - "description": "Remove top-level fields in the job settings. Removing nested fields is not supported, except for tasks and job clusters (`tasks/task_1`). This field is optional.", + "name": "access_control_list", "is_request_body_field": true, "entity": { - "pascal_name": "List", + "pascal_name": "KnowledgeAssistantAccessControlRequestList", "array_value": { - "is_string": true + "pascal_name": "KnowledgeAssistantAccessControlRequest", + "is_object": true } } }, { - "name": "job_id", - "description": "The canonical identifier of the job to update. This field is required.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_request_body_field": true, - "entity": { - "is_int64": true - } - }, - { - "name": "new_settings", - "description": "The new settings for the job.\n\nTop-level fields specified in `new_settings` are completely replaced, except for arrays which are merged. That is, new and existing entries are completely replaced based on the respective key fields, i.e. `task_key` or `job_cluster_key`, while previous entries are kept.\n\nPartially updating nested fields is not supported.\n\nChanges to the field `JobSettings.timeout_seconds` are applied to active runs. Changes to other fields are applied to future runs only.", - "is_request_body_field": true, - "is_optional_object": true, + "is_path": true, "entity": { - "pascal_name": "JobSettings", - "is_object": true + "is_string": true } } ], "required_positional_arguments": [ { - "name": "job_id", - "description": "The canonical identifier of the job to update. This field is required.", + "name": "knowledge_assistant_id", + "description": "The knowledge assistant for which to get or manage permissions.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_int64": true + "is_string": true } } ] - }, + } + ] + }, + { + "id": "dashboards.Lakeview", + "name": "Lakeview", + "description": "These APIs provide specific management operations for Lakeview dashboards. Generic resource management can be done with Workspace API (import, export, get-status, list, delete).", + "package": { + "name": "dashboards" + }, + "docs_group": "dashboards", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "list": { + "request": { + "pascal_name": "ListDashboardsRequest" + } + }, + "methods": [ { - "name": "UpdatePermissions", - "description": "Updates the permissions on a job. Jobs can inherit permissions from their root object.", - "summary": "Update job permissions.", - "path": "/api/2.0/permissions/jobs/{job_id}", + "name": "Create", + "description": "Create a draft dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "Create dashboard.", + "path": "/api/2.0/lakeview/dashboards", "can_use_json": true, + "is_crud_create": true, "has_required_positional_arguments": true, "launch_stage": "GA", "cli_launch_stage_display": "GA", "request": { - "pascal_name": "JobPermissionsRequest", + "pascal_name": "CreateDashboardRequest", "is_object": true, + "has_required_request_body_fields": true, "required_fields": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "dashboard", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Dashboard", + "is_object": true } } ], - "required_in_url_fields": [ + "required_request_body_fields": [ { - "name": "job_id", - "description": "The job for which to get or manage permissions.", + "name": "dashboard", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Dashboard", + "is_object": true } } ] }, + "request_body_field": { + "name": "dashboard", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Dashboard", + "is_object": true + } + }, "response": { - "pascal_name": "JobPermissions", + "pascal_name": "Dashboard", "is_object": true }, "all_fields": [ { - "name": "access_control_list", + "name": "dashboard", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "JobAccessControlRequestList", - "array_value": { - "pascal_name": "JobAccessControlRequest", - "is_object": true - } + "pascal_name": "Dashboard", + "is_object": true } }, { - "name": "job_id", - "description": "The job for which to get or manage permissions.", - "required": true, - "is_path": true, + "name": "dataset_catalog", + "description": "Sets the default catalog for all datasets in this dashboard.\nDoes not impact table references that use fully qualified catalog names (ex: samples.nyctaxi.trips).\nLeave blank to keep each dataset’s existing configuration.", + "is_query": true, "entity": { "is_string": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "job_id", - "description": "The job for which to get or manage permissions.", - "required": true, - "is_path": true, + "name": "dataset_schema", + "description": "Sets the default schema for all datasets in this dashboard.\nDoes not impact table references that use fully qualified schema names (ex: nyctaxi.trips).\nLeave blank to keep each dataset’s existing configuration.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "create_time", + "description": "The timestamp of when the dashboard was created.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "display_name", + "description": "The display name of the dashboard.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "etag", + "description": "The etag for the dashboard. Can be optionally provided on updates to ensure that the dashboard\nhas not been modified since the last read.\nThis field is excluded in List Dashboards responses.", + "is_computed": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "lifecycle_state", + "description": "The state of the dashboard resource. Used for tracking trashed status.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "LifecycleState", + "enum": [ + { + "content": "ACTIVE" + }, + { + "content": "TRASHED" + } + ] + } + }, + { + "name": "parent_path", + "description": "The workspace path of the folder containing the dashboard. Includes leading slash and no\ntrailing slash.\nThis field is excluded in List Dashboards responses.", + "is_computed": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "path", + "description": "The workspace path of the dashboard asset, including the file name.\nExported dashboards always have the file extension `.lvdash.json`.\nThis field is excluded in List Dashboards responses.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "serialized_dashboard", + "description": "The contents of the dashboard in serialized string form.\nThis field is excluded in List Dashboards responses.\nUse the [get dashboard API](https://docs.databricks.com/api/workspace/lakeview/get)\nto retrieve an example response, which includes the `serialized_dashboard` field.\nThis field provides the structure of the JSON string that represents the dashboard's\nlayout and components.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_time", + "description": "The timestamp of when the dashboard was last updated by the user.\nThis field is excluded in List Dashboards responses.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "warehouse_id", + "description": "The warehouse ID used to run the dashboard.", + "is_request_body_field": true, "entity": { "is_string": true } } ] - } - ] - }, - { - "id": "knowledgeassistants.KnowledgeAssistants", - "name": "KnowledgeAssistants", - "description": "Manage legacy Knowledge Assistants and related resources.", - "package": { - "name": "knowledgeassistants" - }, - "docs_group": "agentbricks", - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", - "list": { - "request": { - "pascal_name": "ListExamplesRequest" - } - }, - "methods": [ + }, { - "name": "CreateExample", - "description": "Creates an example for a Knowledge Assistant.", - "summary": "Create an example for a Knowledge Assistant.", - "path": "/api/2.1/{parent=knowledge-assistants/*}/examples", + "name": "CreateSchedule", + "description": "Create dashboard schedule.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "Create dashboard schedule.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules", "can_use_json": true, "is_crud_create": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "CreateExampleRequest", + "pascal_name": "CreateScheduleRequest", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "parent", - "description": "Parent resource where this example will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", "required": true, "is_path": true, + "is_output_only": true, "entity": { "is_string": true } }, { - "name": "example", - "description": "The example to create under the parent Knowledge Assistant.", + "name": "schedule", + "description": "The schedule to create. A dashboard is limited to 10 schedules.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Example", + "pascal_name": "Schedule", "is_object": true } } ], "required_in_url_fields": [ { - "name": "parent", - "description": "Parent resource where this example will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", "required": true, "is_path": true, + "is_output_only": true, "entity": { "is_string": true } @@ -166236,133 +172695,151 @@ ], "required_request_body_fields": [ { - "name": "example", - "description": "The example to create under the parent Knowledge Assistant.", + "name": "schedule", + "description": "The schedule to create. A dashboard is limited to 10 schedules.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Example", + "pascal_name": "Schedule", "is_object": true } } ] }, "request_body_field": { - "name": "example", - "description": "The example to create under the parent Knowledge Assistant.", + "name": "schedule", + "description": "The schedule to create. A dashboard is limited to 10 schedules.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Example", + "pascal_name": "Schedule", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "question", - "description": "The example question.", + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "CronSchedule", + "is_object": true } } ], "required_request_body_fields": [ { - "name": "question", - "description": "The example question.", + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "CronSchedule", + "is_object": true } } ] } }, "response": { - "pascal_name": "Example", + "pascal_name": "Schedule", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "question", - "description": "The example question.", + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "CronSchedule", + "is_object": true } } ], "required_request_body_fields": [ { - "name": "question", - "description": "The example question.", + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "CronSchedule", + "is_object": true } } ] }, "all_fields": [ { - "name": "example", - "description": "The example to create under the parent Knowledge Assistant.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "The schedule to create. A dashboard is limited to 10 schedules.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Example", + "pascal_name": "Schedule", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "question", - "description": "The example question.", + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "CronSchedule", + "is_object": true } } ], "required_request_body_fields": [ { - "name": "question", - "description": "The example question.", + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "CronSchedule", + "is_object": true } } ] } }, { - "name": "parent", - "description": "Parent resource where this example will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", - "required": true, - "is_path": true, + "name": "create_time", + "description": "A timestamp indicating when the schedule was created.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "create_time", - "description": "Timestamp when this example was created.", - "is_output_only": true, + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, "is_request_body_field": true, - "is_optional_object": true, "entity": { - "is_timestamp": true + "pascal_name": "CronSchedule", + "is_object": true } }, { - "name": "example_id", - "description": "The universally unique identifier (UUID) of the example.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "is_computed": true, "is_output_only": true, "is_request_body_field": true, "entity": { @@ -166370,28 +172847,43 @@ } }, { - "name": "guidelines", - "description": "Guidelines for answering the question. Optional — examples may be created\nwith just a question; the front-end form does not require guidelines.", + "name": "display_name", + "description": "The display name for schedule.", "is_request_body_field": true, "entity": { - "pascal_name": "List", - "array_value": { - "is_string": true - } + "is_string": true } }, { - "name": "name", - "description": "Full resource name:\nknowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "name": "etag", + "description": "The etag for the schedule. Must be left empty on create, must be provided on updates to ensure\nthat the schedule has not been modified since the last read, and can be optionally provided on delete.", + "is_computed": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "question", - "description": "The example question.", - "required": true, + "name": "pause_status", + "description": "The status indicates whether this schedule is paused or not.", + "is_request_body_field": true, + "entity": { + "pascal_name": "SchedulePauseStatus", + "enum": [ + { + "content": "PAUSED" + }, + { + "content": "UNPAUSED" + } + ] + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule.", + "is_computed": true, + "is_output_only": true, "is_request_body_field": true, "entity": { "is_string": true @@ -166399,220 +172891,242 @@ }, { "name": "update_time", - "description": "Timestamp when this example was last updated.", + "description": "A timestamp indicating when the schedule was last updated.", + "is_computed": true, "is_output_only": true, "is_request_body_field": true, - "is_optional_object": true, "entity": { - "is_timestamp": true + "is_string": true + } + }, + { + "name": "warehouse_id", + "description": "The warehouse id to run the dashboard with for the schedule.", + "is_request_body_field": true, + "entity": { + "is_string": true } } ], "required_positional_arguments": [ { - "name": "parent", - "description": "Parent resource where this example will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", "required": true, "is_path": true, + "is_output_only": true, "entity": { "is_string": true } }, { - "name": "question", - "description": "The example question.", + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "CronSchedule", + "is_object": true } } ] }, { - "name": "CreateKnowledgeAssistant", - "description": "Creates a Knowledge Assistant.", - "summary": "Create a Knowledge Assistant.", - "path": "/api/2.1/knowledge-assistants", + "name": "CreateSubscription", + "description": "Create schedule subscription.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", + "summary": "Create schedule subscription.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}/subscriptions", "can_use_json": true, "is_crud_create": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "CreateKnowledgeAssistantRequest", + "pascal_name": "CreateSubscriptionRequest", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "knowledge_assistant", - "description": "The Knowledge Assistant to create.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the subscription belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule to which the subscription belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "subscription", + "description": "The subscription to create. A schedule is limited to 100 subscriptions.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistant", + "pascal_name": "Subscription", "is_object": true } } ], + "required_in_url_fields": [ + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the subscription belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule to which the subscription belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + } + ], "required_request_body_fields": [ { - "name": "knowledge_assistant", - "description": "The Knowledge Assistant to create.", + "name": "subscription", + "description": "The subscription to create. A schedule is limited to 100 subscriptions.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistant", + "pascal_name": "Subscription", "is_object": true } } ] }, "request_body_field": { - "name": "knowledge_assistant", - "description": "The Knowledge Assistant to create.", + "name": "subscription", + "description": "The subscription to create. A schedule is limited to 100 subscriptions.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistant", + "pascal_name": "Subscription", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "subscriber", + "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Subscriber", + "is_object": true } } ], "required_request_body_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "subscriber", + "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Subscriber", + "is_object": true } } ] } }, "response": { - "pascal_name": "KnowledgeAssistant", + "pascal_name": "Subscription", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "subscriber", + "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Subscriber", + "is_object": true } } ], "required_request_body_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "subscriber", + "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Subscriber", + "is_object": true } } ] }, "all_fields": [ { - "name": "knowledge_assistant", - "description": "The Knowledge Assistant to create.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the subscription belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule to which the subscription belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "subscription", + "description": "The subscription to create. A schedule is limited to 100 subscriptions.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistant", + "pascal_name": "Subscription", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "subscriber", + "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Subscriber", + "is_object": true } } ], "required_request_body_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "subscriber", + "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Subscriber", + "is_object": true } } ] @@ -166620,17 +173134,8 @@ }, { "name": "create_time", - "description": "Creation timestamp.", - "is_output_only": true, - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "is_timestamp": true - } - }, - { - "name": "creator", - "description": "The creator of the Knowledge Assistant.", + "description": "A timestamp indicating when the subscription was created.", + "is_computed": true, "is_output_only": true, "is_request_body_field": true, "entity": { @@ -166638,26 +173143,19 @@ } }, { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, + "name": "created_by_user_id", + "description": "UserId of the user who adds subscribers (users or notification destinations) to the dashboard's schedule.", + "is_computed": true, + "is_output_only": true, "is_request_body_field": true, "entity": { - "is_string": true + "is_int64": true } }, { - "name": "endpoint_name", - "description": "The name of the knowledge assistant agent endpoint.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the subscription belongs.", + "is_computed": true, "is_output_only": true, "is_request_body_field": true, "entity": { @@ -166665,17 +173163,18 @@ } }, { - "name": "error_info", - "description": "Error details when the Knowledge Assistant is in FAILED state.", - "is_output_only": true, + "name": "etag", + "description": "The etag for the subscription. Must be left empty on create, can be optionally provided on delete\nto ensure that the subscription has not been deleted since the last read.", + "is_computed": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "experiment_id", - "description": "The MLflow experiment ID.", + "name": "schedule_id", + "description": "UUID identifying the schedule to which the subscription belongs.", + "is_computed": true, "is_output_only": true, "is_request_body_field": true, "entity": { @@ -166683,92 +173182,92 @@ } }, { - "name": "id", - "description": "Deprecated: use knowledge_assistant_id instead.", - "is_output_only": true, + "name": "skip_notify", + "description": "Controls whether notifications are sent to the subscriber for scheduled dashboard refreshes.\nIf not defined, defaults to false in the backend to match the current behavior (refresh and notify)", "is_request_body_field": true, "entity": { - "is_string": true + "is_bool": true } }, { - "name": "instructions", - "description": "Additional global instructions on how the agent should generate answers.\nOptional on create and update.\nWhen updating a Knowledge Assistant, include this field in update_mask to\nmodify it.", + "name": "subscriber", + "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", + "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Subscriber", + "is_object": true } }, { - "name": "name", - "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "subscription_id", + "description": "UUID identifying the subscription.", + "is_computed": true, + "is_output_only": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "state", - "description": "State of the Knowledge Assistant. Not returned in List responses.", + "name": "update_time", + "description": "A timestamp indicating when the subscription was last updated.", + "is_computed": true, "is_output_only": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistantState", - "enum": [ - { - "content": "ACTIVE" - }, - { - "content": "CREATING" - }, - { - "content": "FAILED" - } - ] + "is_string": true } } ], "required_positional_arguments": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the subscription belongs.", "required": true, - "is_request_body_field": true, + "is_path": true, + "is_output_only": true, "entity": { "is_string": true } }, { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "schedule_id", + "description": "UUID identifying the schedule to which the subscription belongs.", "required": true, - "is_request_body_field": true, + "is_path": true, + "is_output_only": true, "entity": { "is_string": true } + }, + { + "name": "subscriber", + "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Subscriber", + "is_object": true + } } ] }, { - "name": "CreateKnowledgeSource", - "description": "Creates a Knowledge Source under a Knowledge Assistant.", - "summary": "Create a Knowledge Source.", - "path": "/api/2.1/{parent=knowledge-assistants/*}/knowledge-sources", - "can_use_json": true, - "is_crud_create": true, + "name": "DeleteSchedule", + "description": "Delete dashboard schedule.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "Delete dashboard schedule.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}", "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "CreateKnowledgeSourceRequest", + "pascal_name": "DeleteScheduleRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "parent", - "description": "Parent resource where this source will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", "required": true, "is_path": true, "entity": { @@ -166776,241 +173275,165 @@ } }, { - "name": "knowledge_source", + "name": "schedule_id", + "description": "UUID identifying the schedule.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "pascal_name": "KnowledgeSource", - "is_object": true + "is_string": true } } ], "required_in_url_fields": [ { - "name": "parent", - "description": "Parent resource where this source will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", "required": true, "is_path": true, "entity": { "is_string": true } - } - ], - "required_request_body_fields": [ + }, { - "name": "knowledge_source", + "name": "schedule_id", + "description": "UUID identifying the schedule.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "pascal_name": "KnowledgeSource", - "is_object": true + "is_string": true } } ] }, - "request_body_field": { - "name": "knowledge_source", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "KnowledgeSource", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ], - "required_request_body_fields": [ - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ] - } - }, "response": { - "pascal_name": "KnowledgeSource", + "is_empty_response": true + }, + "all_fields": [ + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "etag", + "description": "The etag for the schedule. Optionally, it can be provided to verify that the schedule has not\nbeen modified from its last retrieval.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "DeleteSubscription", + "description": "Delete schedule subscription.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", + "summary": "Delete schedule subscription.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}/subscriptions/{subscription_id}", + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "DeleteSubscriptionRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscription belongs.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscription belongs.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "name": "subscription_id", + "description": "UUID identifying the subscription.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } } ], - "required_request_body_fields": [ + "required_in_url_fields": [ { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscription belongs.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscription belongs.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "name": "subscription_id", + "description": "UUID identifying the subscription.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } } ] }, + "response": { + "is_empty_response": true + }, "all_fields": [ { - "name": "knowledge_source", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "KnowledgeSource", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ], - "required_request_body_fields": [ - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ] - } - }, - { - "name": "parent", - "description": "Parent resource where this source will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscription belongs.", "required": true, "is_path": true, "entity": { @@ -167018,148 +173441,303 @@ } }, { - "name": "create_time", - "description": "Timestamp when this knowledge source was created.", - "is_output_only": true, - "is_request_body_field": true, - "is_optional_object": true, + "name": "etag", + "description": "The etag for the subscription. Can be optionally provided to ensure that the subscription has not been\nmodified since the last read.", + "is_query": true, "entity": { - "is_timestamp": true + "is_string": true } }, { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscription belongs.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "subscription_id", + "description": "UUID identifying the subscription.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } - }, + } + ], + "required_positional_arguments": [ { - "name": "file_table", - "is_request_body_field": true, - "is_optional_object": true, + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscription belongs.", + "required": true, + "is_path": true, "entity": { - "pascal_name": "FileTableSpec", - "is_object": true + "is_string": true } }, { - "name": "files", - "is_request_body_field": true, - "is_optional_object": true, + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscription belongs.", + "required": true, + "is_path": true, "entity": { - "pascal_name": "FilesSpec", - "is_object": true + "is_string": true } }, { - "name": "id", - "is_output_only": true, - "is_request_body_field": true, + "name": "subscription_id", + "description": "UUID identifying the subscription.", + "required": true, + "is_path": true, "entity": { "is_string": true } - }, - { - "name": "index", - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "pascal_name": "IndexSpec", - "is_object": true + } + ] + }, + { + "name": "Get", + "description": "Get a draft dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "Get dashboard.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}", + "is_crud_read": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "GetDashboardRequest", + "is_object": true, + "required_fields": [ + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } } - }, - { - "name": "knowledge_cutoff_time", - "description": "Timestamp representing the cutoff before which content in this knowledge source is being ingested.", - "is_output_only": true, - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "is_timestamp": true + ], + "required_in_url_fields": [ + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } } - }, + ] + }, + "response": { + "pascal_name": "Dashboard", + "is_object": true + }, + "all_fields": [ { - "name": "name", - "description": "Full resource name:\nknowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", - "is_request_body_field": true, + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", + "required": true, + "is_path": true, "entity": { "is_string": true } - }, + } + ], + "required_positional_arguments": [ { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } - }, + } + ] + }, + { + "name": "GetPublished", + "description": "Get the current published dashboard.\n\nThe caller must be a workspace user with one of the following entitlements:\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", + "summary": "Get published dashboard.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/published", + "is_crud_read": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "GetPublishedDashboardRequest", + "is_object": true, + "required_fields": [ + { + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "PublishedDashboard", + "is_object": true + }, + "all_fields": [ { - "name": "state", - "is_output_only": true, - "is_request_body_field": true, + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", + "required": true, + "is_path": true, "entity": { - "pascal_name": "KnowledgeSourceState", - "enum": [ - { - "content": "FAILED_UPDATE" - }, - { - "content": "UPDATED" - }, - { - "content": "UPDATING" - } - ] + "is_string": true } } ], "required_positional_arguments": [ { - "name": "parent", - "description": "Parent resource where this source will be created.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", "required": true, "is_path": true, "entity": { "is_string": true } - }, + } + ] + }, + { + "name": "GetSchedule", + "description": "Get dashboard schedule.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", + "summary": "Get dashboard schedule.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}", + "is_crud_read": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "GetScheduleRequest", + "is_object": true, + "required_fields": [ + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "Schedule", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } + } + ] + }, + "all_fields": [ { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "schedule_id", + "description": "UUID identifying the schedule.", "required": true, - "is_request_body_field": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "required": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "name": "schedule_id", + "description": "UUID identifying the schedule.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } @@ -167167,22 +173745,39 @@ ] }, { - "name": "DeleteExample", - "description": "Deletes an example from a Knowledge Assistant.", - "summary": "Delete an example from a Knowledge Assistant.", - "path": "/api/2.1/{name=knowledge-assistants/*/examples/*}", + "name": "GetSubscription", + "description": "Get schedule subscription.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", + "summary": "Get schedule subscription.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}/subscriptions/{subscription_id}", + "is_crud_read": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "DeleteExampleRequest", + "pascal_name": "GetSubscriptionRequest", "is_object": true, "required_fields": [ { - "name": "name", - "description": "The resource name of the example to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscription belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscription belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "subscription_id", + "description": "UUID identifying the subscription.", "required": true, "is_path": true, "entity": { @@ -167192,8 +173787,26 @@ ], "required_in_url_fields": [ { - "name": "name", - "description": "The resource name of the example to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscription belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscription belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "subscription_id", + "description": "UUID identifying the subscription.", "required": true, "is_path": true, "entity": { @@ -167203,12 +173816,56 @@ ] }, "response": { - "is_empty_response": true + "pascal_name": "Subscription", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "subscriber", + "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Subscriber", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "subscriber", + "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Subscriber", + "is_object": true + } + } + ] }, "all_fields": [ { - "name": "name", - "description": "The resource name of the example to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscription belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscription belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "subscription_id", + "description": "UUID identifying the subscription.", "required": true, "is_path": true, "entity": { @@ -167218,8 +173875,26 @@ ], "required_positional_arguments": [ { - "name": "name", - "description": "The resource name of the example to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscription belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscription belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "subscription_id", + "description": "UUID identifying the subscription.", "required": true, "is_path": true, "entity": { @@ -167229,22 +173904,88 @@ ] }, { - "name": "DeleteKnowledgeAssistant", - "description": "Deletes a Knowledge Assistant.", - "summary": "Delete a Knowledge Assistant.", - "path": "/api/2.1/{name=knowledge-assistants/*}", + "name": "List", + "description": "List dashboards.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "List dashboards.", + "path": "/api/2.0/lakeview/dashboards", "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "DeleteKnowledgeAssistantRequest", + "pascal_name": "ListDashboardsRequest", + "is_object": true + }, + "response": { + "pascal_name": "ListDashboardsResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "page_size", + "description": "The number of dashboards to return per page.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "A page token, received from a previous `ListDashboards` call.\nThis token can be used to retrieve the subsequent page.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "show_trashed", + "description": "The flag to include dashboards located in the trash.\nIf unspecified, only active dashboards will be returned.", + "is_query": true, + "entity": { + "is_bool": true + } + }, + { + "name": "view", + "description": "`DASHBOARD_VIEW_BASIC` only includes summary metadata from the dashboard.", + "is_query": true, + "entity": { + "pascal_name": "DashboardView", + "enum": [ + { + "content": "DASHBOARD_VIEW_BASIC" + } + ] + } + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "A page token, received from a previous `ListDashboards` call.\nThis token can be used to retrieve the subsequent page.", + "is_query": true, + "entity": { + "is_string": true + } + } + } + } + }, + { + "name": "ListSchedules", + "description": "List dashboard schedules.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", + "summary": "List dashboard schedules.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules", + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "ListSchedulesRequest", "is_object": true, "required_fields": [ { - "name": "name", - "description": "The resource name of the knowledge assistant to be deleted.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedules belongs.", "required": true, "is_path": true, "entity": { @@ -167254,8 +173995,8 @@ ], "required_in_url_fields": [ { - "name": "name", - "description": "The resource name of the knowledge assistant to be deleted.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedules belongs.", "required": true, "is_path": true, "entity": { @@ -167265,48 +174006,84 @@ ] }, "response": { - "is_empty_response": true + "pascal_name": "ListSchedulesResponse", + "is_object": true }, "all_fields": [ { - "name": "name", - "description": "The resource name of the knowledge assistant to be deleted.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedules belongs.", "required": true, "is_path": true, "entity": { "is_string": true } + }, + { + "name": "page_size", + "description": "The number of schedules to return per page.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "A page token, received from a previous `ListSchedules` call.\nUse this to retrieve the subsequent page.", + "is_query": true, + "entity": { + "is_string": true + } } ], "required_positional_arguments": [ { - "name": "name", - "description": "The resource name of the knowledge assistant to be deleted.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedules belongs.", "required": true, "is_path": true, "entity": { "is_string": true } } - ] + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "A page token, received from a previous `ListSchedules` call.\nUse this to retrieve the subsequent page.", + "is_query": true, + "entity": { + "is_string": true + } + } + } + } }, { - "name": "DeleteKnowledgeSource", - "description": "Deletes a Knowledge Source.", - "summary": "Delete a Knowledge Source.", - "path": "/api/2.1/{name=knowledge-assistants/*/knowledge-sources/*}", + "name": "ListSubscriptions", + "description": "List schedule subscriptions.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", + "summary": "List schedule subscriptions.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}/subscriptions", "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "DeleteKnowledgeSourceRequest", + "pascal_name": "ListSubscriptionsRequest", "is_object": true, "required_fields": [ { - "name": "name", - "description": "The resource name of the Knowledge Source to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscriptions belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscriptions belongs.", "required": true, "is_path": true, "entity": { @@ -167316,8 +174093,17 @@ ], "required_in_url_fields": [ { - "name": "name", - "description": "The resource name of the Knowledge Source to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscriptions belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscriptions belongs.", "required": true, "is_path": true, "entity": { @@ -167327,76 +174113,96 @@ ] }, "response": { - "is_empty_response": true + "pascal_name": "ListSubscriptionsResponse", + "is_object": true }, "all_fields": [ { - "name": "name", - "description": "The resource name of the Knowledge Source to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscriptions belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "page_size", + "description": "The number of subscriptions to return per page.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "A page token, received from a previous `ListSubscriptions` call.\nUse this to retrieve the subsequent page.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscriptions belongs.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard which the subscriptions belongs.", "required": true, "is_path": true, "entity": { "is_string": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "name", - "description": "The resource name of the Knowledge Source to delete.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "name": "schedule_id", + "description": "UUID identifying the schedule which the subscriptions belongs.", "required": true, "is_path": true, "entity": { "is_string": true } } - ] - }, - { - "name": "GetExample", - "description": "Gets an example from a Knowledge Assistant.", - "summary": "Get an example from a Knowledge Assistant.", - "path": "/api/2.1/{name=knowledge-assistants/*/examples/*}", - "is_crud_read": true, - "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", - "request": { - "pascal_name": "GetExampleRequest", - "is_object": true, - "required_fields": [ - { - "name": "name", - "description": "The resource name of the example.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ], - "required_in_url_fields": [ - { - "name": "name", - "description": "The resource name of the example.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", - "required": true, - "is_path": true, + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "A page token, received from a previous `ListSubscriptions` call.\nUse this to retrieve the subsequent page.", + "is_query": true, "entity": { "is_string": true } } - ] - }, - "response": { - "pascal_name": "Example", + } + } + }, + { + "name": "Migrate", + "description": "Deprecated: Legacy dashboard migration is no longer supported. Use Lakeview (AI/BI)\ndashboards instead.", + "summary": "Migrate dashboard.", + "path": "/api/2.0/lakeview/dashboards/migrate", + "can_use_json": true, + "is_crud_create": true, + "has_required_positional_arguments": true, + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "request": { + "pascal_name": "MigrateDashboardRequest", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "question", - "description": "The example question.", + "name": "source_dashboard_id", + "description": "UUID of the dashboard to be migrated.", "required": true, "is_request_body_field": true, "entity": { @@ -167406,8 +174212,8 @@ ], "required_request_body_fields": [ { - "name": "question", - "description": "The example question.", + "name": "source_dashboard_id", + "description": "UUID of the dashboard to be migrated.", "required": true, "is_request_body_field": true, "entity": { @@ -167416,23 +174222,51 @@ } ] }, + "response": { + "pascal_name": "Dashboard", + "is_object": true + }, "all_fields": [ { - "name": "name", - "description": "The resource name of the example.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "name": "display_name", + "description": "Display name for the new Lakeview dashboard.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "parent_path", + "description": "The workspace path of the folder to contain the migrated Lakeview dashboard.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "source_dashboard_id", + "description": "UUID of the dashboard to be migrated.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } + }, + { + "name": "update_parameter_syntax", + "description": "Flag to indicate if mustache parameter syntax ({{ param }}) should be auto-updated\nto named syntax (:param) when converting datasets in the dashboard.", + "is_request_body_field": true, + "entity": { + "is_bool": true + } } ], "required_positional_arguments": [ { - "name": "name", - "description": "The resource name of the example.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "name": "source_dashboard_id", + "description": "UUID of the dashboard to be migrated.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } @@ -167440,23 +174274,22 @@ ] }, { - "name": "GetKnowledgeAssistant", - "description": "Gets a Knowledge Assistant.", - "summary": "Get a Knowledge Assistant.", - "path": "/api/2.1/{name=knowledge-assistants/*}", - "is_crud_read": true, + "name": "Publish", + "description": "Publish the current draft dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "Publish dashboard.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/published", + "can_use_json": true, + "is_crud_create": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "GetKnowledgeAssistantRequest", + "pascal_name": "PublishRequest", "is_object": true, "required_fields": [ { - "name": "name", - "description": "The resource name of the knowledge assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to be published.", "required": true, "is_path": true, "entity": { @@ -167466,8 +174299,8 @@ ], "required_in_url_fields": [ { - "name": "name", - "description": "The resource name of the knowledge assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to be published.", "required": true, "is_path": true, "entity": { @@ -167477,65 +174310,40 @@ ] }, "response": { - "pascal_name": "KnowledgeAssistant", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ], - "required_request_body_fields": [ - { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ] + "pascal_name": "PublishedDashboard", + "is_object": true }, "all_fields": [ { - "name": "name", - "description": "The resource name of the knowledge assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to be published.", "required": true, "is_path": true, "entity": { "is_string": true } + }, + { + "name": "embed_credentials", + "description": "Flag to indicate if the publisher's credentials should be embedded in the\npublished dashboard. These embedded credentials will be used to execute the\npublished dashboard's queries.", + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, + { + "name": "warehouse_id", + "description": "The ID of the warehouse that can be used to override the warehouse which\nwas set in the draft.", + "is_request_body_field": true, + "entity": { + "is_string": true + } } ], "required_positional_arguments": [ { - "name": "name", - "description": "The resource name of the knowledge assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to be published.", "required": true, "is_path": true, "entity": { @@ -167545,23 +174353,21 @@ ] }, { - "name": "GetKnowledgeSource", - "description": "Gets a Knowledge Source.", - "summary": "Get a Knowledge Source.", - "path": "/api/2.1/{name=knowledge-assistants/*/knowledge-sources/*}", - "is_crud_read": true, + "name": "Revert", + "description": "Revert a dashboard's definition in draft mode to the last published version.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "Revert dashboard.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/revert", + "can_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "GetKnowledgeSourceRequest", + "pascal_name": "RevertDashboardRequest", "is_object": true, "required_fields": [ { - "name": "name", - "description": "The resource name of the Knowledge Source.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, "entity": { @@ -167571,8 +174377,8 @@ ], "required_in_url_fields": [ { - "name": "name", - "description": "The resource name of the Knowledge Source.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, "entity": { @@ -167582,83 +174388,33 @@ ] }, "response": { - "pascal_name": "KnowledgeSource", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ], - "required_request_body_fields": [ - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ] + "pascal_name": "RevertDashboardResponse", + "is_object": true }, "all_fields": [ { - "name": "name", - "description": "The resource name of the Knowledge Source.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, "entity": { "is_string": true } + }, + { + "name": "etag", + "description": "The etag for the dashboard. Optionally, it can be provided to verify that the dashboard\nhas not been modified from its last retrieval.", + "is_computed": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } } ], "required_positional_arguments": [ { - "name": "name", - "description": "The resource name of the Knowledge Source.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, "entity": { @@ -167668,22 +174424,20 @@ ] }, { - "name": "GetPermissionLevels", - "description": "Gets the permission levels that a user can have on an object.", - "summary": "Get knowledge assistant permission levels.", - "path": "/api/2.0/permissions/knowledge-assistants/{knowledge_assistant_id}/permissionLevels", + "name": "Trash", + "description": "Trash a dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "Trash dashboard.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}", "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "GetKnowledgeAssistantPermissionLevelsRequest", + "pascal_name": "TrashDashboardRequest", "is_object": true, "required_fields": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, "entity": { @@ -167693,8 +174447,8 @@ ], "required_in_url_fields": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, "entity": { @@ -167704,13 +174458,14 @@ ] }, "response": { - "pascal_name": "GetKnowledgeAssistantPermissionLevelsResponse", - "is_object": true + "pascal_name": "TrashDashboardResponse", + "is_object": true, + "is_empty_response": true }, "all_fields": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, "entity": { @@ -167720,8 +174475,8 @@ ], "required_positional_arguments": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, "entity": { @@ -167731,22 +174486,20 @@ ] }, { - "name": "GetPermissions", - "description": "Gets the permissions of a knowledge assistant. Knowledge assistants can inherit permissions from their root object.", - "summary": "Get knowledge assistant permissions.", - "path": "/api/2.0/permissions/knowledge-assistants/{knowledge_assistant_id}", + "name": "Unpublish", + "description": "Unpublish the dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "Unpublish dashboard.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/published", "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "GetKnowledgeAssistantPermissionsRequest", + "pascal_name": "UnpublishDashboardRequest", "is_object": true, "required_fields": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", "required": true, "is_path": true, "entity": { @@ -167756,8 +174509,8 @@ ], "required_in_url_fields": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", "required": true, "is_path": true, "entity": { @@ -167767,13 +174520,14 @@ ] }, "response": { - "pascal_name": "KnowledgeAssistantPermissions", - "is_object": true + "pascal_name": "UnpublishDashboardResponse", + "is_object": true, + "is_empty_response": true }, "all_fields": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", "required": true, "is_path": true, "entity": { @@ -167783,8 +174537,8 @@ ], "required_positional_arguments": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", "required": true, "is_path": true, "entity": { @@ -167794,205 +174548,208 @@ ] }, { - "name": "ListExamples", - "description": "Lists examples under a Knowledge Assistant.", - "summary": "List examples for a Knowledge Assistant.", - "path": "/api/2.1/{parent=knowledge-assistants/*}/examples", + "name": "Update", + "description": "Update a draft dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "Update dashboard.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}", + "can_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "ListExamplesRequest", + "pascal_name": "UpdateDashboardRequest", "is_object": true, + "has_required_request_body_fields": true, "required_fields": [ { - "name": "parent", - "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, + "is_output_only": true, "entity": { "is_string": true } + }, + { + "name": "dashboard", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Dashboard", + "is_object": true + } } ], "required_in_url_fields": [ { - "name": "parent", - "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, + "is_output_only": true, "entity": { "is_string": true } } + ], + "required_request_body_fields": [ + { + "name": "dashboard", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Dashboard", + "is_object": true + } + } ] }, + "request_body_field": { + "name": "dashboard", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Dashboard", + "is_object": true + } + }, "response": { - "pascal_name": "ListExamplesResponse", + "pascal_name": "Dashboard", "is_object": true }, "all_fields": [ { - "name": "page_size", - "description": "The maximum number of examples to return.\nIf unspecified, at most 100 examples will be returned.\nThe maximum value is 100; values above 100 will be coerced to 100.", - "is_query": true, + "name": "dashboard", + "required": true, + "is_request_body_field": true, "entity": { - "is_int": true + "pascal_name": "Dashboard", + "is_object": true } }, { - "name": "page_token", - "description": "A page token, received from a previous `ListExamples` call.\nProvide this to retrieve the subsequent page.\nIf unspecified, the first page will be returned.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "dataset_catalog", + "description": "Sets the default catalog for all datasets in this dashboard.\nDoes not impact table references that use fully qualified catalog names (ex: samples.nyctaxi.trips).\nLeave blank to keep each dataset’s existing configuration.", "is_query": true, "entity": { "is_string": true } }, { - "name": "parent", - "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", - "required": true, - "is_path": true, + "name": "dataset_schema", + "description": "Sets the default schema for all datasets in this dashboard.\nDoes not impact table references that use fully qualified schema names (ex: nyctaxi.trips).\nLeave blank to keep each dataset’s existing configuration.", + "is_query": true, "entity": { "is_string": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "parent", - "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", - "required": true, - "is_path": true, + "name": "create_time", + "description": "The timestamp of when the dashboard was created.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, "entity": { "is_string": true } - } - ], - "pagination": { - "token": { - "poll_field": { - "name": "page_token", - "description": "A page token, received from a previous `ListExamples` call.\nProvide this to retrieve the subsequent page.\nIf unspecified, the first page will be returned.", - "is_query": true, - "entity": { - "is_string": true - } + }, + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true } - } - } - }, - { - "name": "ListKnowledgeAssistants", - "description": "List Knowledge Assistants", - "summary": "List Knowledge Assistants.", - "path": "/api/2.1/knowledge-assistants", - "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", - "request": { - "pascal_name": "ListKnowledgeAssistantsRequest", - "is_object": true - }, - "response": { - "pascal_name": "ListKnowledgeAssistantsResponse", - "is_object": true - }, - "all_fields": [ + }, { - "name": "page_size", - "description": "The maximum number of knowledge assistants to return.\nIf unspecified, at most 100 knowledge assistants will be returned.\nThe maximum value is 100; values above 100 will be coerced to 100.", - "is_query": true, + "name": "display_name", + "description": "The display name of the dashboard.", + "is_request_body_field": true, "entity": { - "is_int": true + "is_string": true } }, { - "name": "page_token", - "description": "A page token, received from a previous `ListKnowledgeAssistants` call.\nProvide this to retrieve the subsequent page.\nIf unspecified, the first page will be returned.", - "is_query": true, + "name": "etag", + "description": "The etag for the dashboard. Can be optionally provided on updates to ensure that the dashboard\nhas not been modified since the last read.\nThis field is excluded in List Dashboards responses.", + "is_computed": true, + "is_request_body_field": true, "entity": { "is_string": true } - } - ], - "pagination": { - "token": { - "poll_field": { - "name": "page_token", - "description": "A page token, received from a previous `ListKnowledgeAssistants` call.\nProvide this to retrieve the subsequent page.\nIf unspecified, the first page will be returned.", - "is_query": true, - "entity": { - "is_string": true - } + }, + { + "name": "lifecycle_state", + "description": "The state of the dashboard resource. Used for tracking trashed status.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "LifecycleState", + "enum": [ + { + "content": "ACTIVE" + }, + { + "content": "TRASHED" + } + ] } - } - } - }, - { - "name": "ListKnowledgeSources", - "description": "Lists Knowledge Sources under a Knowledge Assistant.", - "summary": "List Knowledge Sources.", - "path": "/api/2.1/{parent=knowledge-assistants/*}/knowledge-sources", - "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", - "request": { - "pascal_name": "ListKnowledgeSourcesRequest", - "is_object": true, - "required_fields": [ - { - "name": "parent", - "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } + }, + { + "name": "parent_path", + "description": "The workspace path of the folder containing the dashboard. Includes leading slash and no\ntrailing slash.\nThis field is excluded in List Dashboards responses.", + "is_computed": true, + "is_request_body_field": true, + "entity": { + "is_string": true } - ], - "required_in_url_fields": [ - { - "name": "parent", - "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } + }, + { + "name": "path", + "description": "The workspace path of the dashboard asset, including the file name.\nExported dashboards always have the file extension `.lvdash.json`.\nThis field is excluded in List Dashboards responses.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true } - ] - }, - "response": { - "pascal_name": "ListKnowledgeSourcesResponse", - "is_object": true - }, - "all_fields": [ + }, { - "name": "page_size", - "is_query": true, + "name": "serialized_dashboard", + "description": "The contents of the dashboard in serialized string form.\nThis field is excluded in List Dashboards responses.\nUse the [get dashboard API](https://docs.databricks.com/api/workspace/lakeview/get)\nto retrieve an example response, which includes the `serialized_dashboard` field.\nThis field provides the structure of the JSON string that represents the dashboard's\nlayout and components.", + "is_request_body_field": true, "entity": { - "is_int": true + "is_string": true } }, { - "name": "page_token", - "is_query": true, + "name": "update_time", + "description": "The timestamp of when the dashboard was last updated by the user.\nThis field is excluded in List Dashboards responses.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "parent", - "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", - "required": true, - "is_path": true, + "name": "warehouse_id", + "description": "The warehouse ID used to run the dashboard.", + "is_request_body_field": true, "entity": { "is_string": true } @@ -168000,85 +174757,304 @@ ], "required_positional_arguments": [ { - "name": "parent", - "description": "Parent resource to list from.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the dashboard.", "required": true, "is_path": true, + "is_output_only": true, "entity": { "is_string": true } } - ], - "pagination": { - "token": { - "poll_field": { - "name": "page_token", - "is_query": true, - "entity": { - "is_string": true - } - } - } - } + ] }, { - "name": "SetPermissions", - "description": "Sets permissions on an object, replacing existing permissions if they exist. Deletes all direct permissions if none are specified. Objects can inherit permissions from their root object.", - "summary": "Set knowledge assistant permissions.", - "path": "/api/2.0/permissions/knowledge-assistants/{knowledge_assistant_id}", + "name": "UpdateSchedule", + "description": "Update dashboard schedule.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", + "summary": "Update dashboard schedule.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}", "can_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { - "pascal_name": "KnowledgeAssistantPermissionsRequest", + "pascal_name": "UpdateScheduleRequest", "is_object": true, + "has_required_request_body_fields": true, "required_fields": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule.", "required": true, "is_path": true, + "is_output_only": true, "entity": { "is_string": true } + }, + { + "name": "schedule", + "description": "The schedule to update.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } } ], "required_in_url_fields": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule.", "required": true, "is_path": true, + "is_output_only": true, "entity": { "is_string": true } } + ], + "required_request_body_fields": [ + { + "name": "schedule", + "description": "The schedule to update.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + } ] }, + "request_body_field": { + "name": "schedule", + "description": "The schedule to update.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } + } + ] + } + }, "response": { - "pascal_name": "KnowledgeAssistantPermissions", - "is_object": true + "pascal_name": "Schedule", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } + } + ] }, "all_fields": [ { - "name": "access_control_list", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "The schedule to update.", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistantAccessControlRequestList", - "array_value": { - "pascal_name": "KnowledgeAssistantAccessControlRequest", - "is_object": true - } + "pascal_name": "Schedule", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } + } + ] } }, { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "schedule_id", + "description": "UUID identifying the schedule.", "required": true, "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "create_time", + "description": "A timestamp indicating when the schedule was created.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } + }, + { + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "display_name", + "description": "The display name for schedule.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "etag", + "description": "The etag for the schedule. Must be left empty on create, must be provided on updates to ensure\nthat the schedule has not been modified since the last read, and can be optionally provided on delete.", + "is_computed": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "pause_status", + "description": "The status indicates whether this schedule is paused or not.", + "is_request_body_field": true, + "entity": { + "pascal_name": "SchedulePauseStatus", + "enum": [ + { + "content": "PAUSED" + }, + { + "content": "UNPAUSED" + } + ] + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_time", + "description": "A timestamp indicating when the schedule was last updated.", + "is_computed": true, + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "warehouse_id", + "description": "The warehouse id to run the dashboard with for the schedule.", + "is_request_body_field": true, "entity": { "is_string": true } @@ -168086,34 +175062,68 @@ ], "required_positional_arguments": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "dashboard_id", + "description": "UUID identifying the dashboard to which the schedule belongs.", + "required": true, + "is_path": true, + "is_output_only": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule_id", + "description": "UUID identifying the schedule.", "required": true, "is_path": true, + "is_output_only": true, "entity": { "is_string": true } + }, + { + "name": "cron_schedule", + "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CronSchedule", + "is_object": true + } } ] - }, + } + ] + }, + { + "id": "dashboards.LakeviewEmbedded", + "name": "LakeviewEmbedded", + "description": "Token-based Lakeview APIs for embedding dashboards in external applications.", + "package": { + "name": "dashboards" + }, + "docs_group": "dashboards", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", + "methods": [ { - "name": "SyncKnowledgeSources", - "description": "Sync all non-index Knowledge Sources for a Knowledge Assistant (index sources do not require sync)", - "summary": "Syncs all Knowledge Sources for a Knowledge Assistant.", - "path": "/api/2.1/{name=knowledge-assistants/*}/knowledge-sources:sync", - "is_crud_create": true, + "name": "GetPublishedDashboardTokenInfo", + "description": "Get a required authorization details and scopes of a published dashboard to mint an OAuth token.\n\nThe caller must be a workspace user with one of the following entitlements:\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", + "summary": "Read information of a published dashboard to mint an OAuth token.", + "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/published/tokeninfo", + "is_crud_read": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "PUBLIC_PREVIEW", + "cli_launch_stage_label": "*Public Preview*", + "cli_launch_stage_banner": "This command is in Public Preview and may change without notice.", + "cli_launch_stage_display": "Public Preview", "request": { - "pascal_name": "SyncKnowledgeSourcesRequest", + "pascal_name": "GetPublishedDashboardTokenInfoRequest", "is_object": true, "required_fields": [ { - "name": "name", - "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", "required": true, "is_path": true, "entity": { @@ -168123,8 +175133,8 @@ ], "required_in_url_fields": [ { - "name": "name", - "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", "required": true, "is_path": true, "entity": { @@ -168134,23 +175144,40 @@ ] }, "response": { - "is_empty_response": true + "pascal_name": "GetPublishedDashboardTokenInfoResponse", + "is_object": true }, "all_fields": [ { - "name": "name", - "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", "required": true, "is_path": true, "entity": { "is_string": true } + }, + { + "name": "external_value", + "description": "Provided external value to be included in the custom claim.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "external_viewer_id", + "description": "Provided external viewer id to be included in the custom claim.", + "is_query": true, + "entity": { + "is_string": true + } } ], "required_positional_arguments": [ { - "name": "name", - "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "dashboard_id", + "description": "UUID identifying the published dashboard.", "required": true, "is_path": true, "entity": { @@ -168158,96 +175185,115 @@ } } ] - }, + } + ] + }, + { + "id": "lakewatch.Lakewatch", + "name": "Lakewatch", + "description": "Manage Lakewatch: security-analytics data sources, detection rules, and per-catalog configuration.", + "package": { + "name": "lakewatch" + }, + "docs_group": "lakewatch", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "list": { + "request": { + "pascal_name": "ListDatasourcesRequest" + } + }, + "methods": [ { - "name": "UpdateExample", - "description": "Updates an example in a Knowledge Assistant.", - "summary": "Update an example in a Knowledge Assistant.", - "path": "/api/2.1/{name=knowledge-assistants/*/examples/*}", + "name": "CreateDatasource", + "description": "Creates a new datasource.", + "summary": "Create a datasource.", + "path": "/api/2.0/lakewatch/datasources", "can_use_json": true, + "is_crud_create": true, "has_required_positional_arguments": true, "launch_stage": "PUBLIC_BETA", "cli_launch_stage_label": "*Beta*", "cli_launch_stage_banner": "This command is in Beta and may change without notice.", "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "UpdateExampleRequest", + "pascal_name": "CreateDatasourceRequest", "is_object": true, - "has_field_mask": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "name", - "description": "The resource name of the example to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "example", + "name": "datasource", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Example", + "pascal_name": "Datasource", "is_object": true } - }, - { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the example.\nAllowed values: `question`, `guidelines`.\nExamples:\n- `question`\n- `question,guidelines`", - "required": true, - "is_query": true, - "entity": { - "is_field_mask": true - } - } - ], - "required_in_url_fields": [ - { - "name": "name", - "description": "The resource name of the example to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the example.\nAllowed values: `question`, `guidelines`.\nExamples:\n- `question`\n- `question,guidelines`", - "required": true, - "is_query": true, - "entity": { - "is_field_mask": true - } } ], "required_request_body_fields": [ { - "name": "example", + "name": "datasource", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Example", + "pascal_name": "Datasource", "is_object": true } } ] }, "request_body_field": { - "name": "example", + "name": "datasource", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Example", + "pascal_name": "Datasource", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "question", - "description": "The example question.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, "is_request_body_field": true, "entity": { @@ -168257,8 +175303,45 @@ ], "required_request_body_fields": [ { - "name": "question", - "description": "The example question.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, "is_request_body_field": true, "entity": { @@ -168269,13 +175352,50 @@ } }, "response": { - "pascal_name": "Example", + "pascal_name": "Datasource", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "question", - "description": "The example question.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, "is_request_body_field": true, "entity": { @@ -168285,8 +175405,45 @@ ], "required_request_body_fields": [ { - "name": "question", - "description": "The example question.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, "is_request_body_field": true, "entity": { @@ -168297,17 +175454,54 @@ }, "all_fields": [ { - "name": "example", + "name": "datasource", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Example", + "pascal_name": "Datasource", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "question", - "description": "The example question.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, "is_request_body_field": true, "entity": { @@ -168317,8 +175511,45 @@ ], "required_request_body_fields": [ { - "name": "question", - "description": "The example question.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, "is_request_body_field": true, "entity": { @@ -168329,26 +175560,60 @@ } }, { - "name": "name", - "description": "The resource name of the example to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "name": "annotations", + "description": "Free-form key-value annotations on the datasource, managed by the client.", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + }, + { + "name": "autoloader", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "AutoLoader", + "is_object": true + } + }, + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the example.\nAllowed values: `question`, `guidelines`.\nExamples:\n- `question`\n- `question,guidelines`", - "required": true, - "is_query": true, + "name": "compute_mode", + "description": "Compute mode for the datasource's ingestion job. If unset, the `default_compute_mode` of\nthe catalog's datasource configuration applies, or `DS_COMPUTE_PERFORMANCE_OPTIMIZED` if\nthe catalog has none.", + "is_request_body_field": true, "entity": { - "is_field_mask": true + "pascal_name": "DatasourceComputeMode", + "enum": [ + { + "content": "DS_COMPUTE_PERFORMANCE_OPTIMIZED" + }, + { + "content": "DS_COMPUTE_STANDARD" + } + ] + } + }, + { + "name": "compute_workspace_id", + "description": "ID of the workspace whose compute runs this datasource's ingestion job and\nowns its associated resources, such as the storage the ingested data lands\nin. Server-assigned.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true } }, { "name": "create_time", - "description": "Timestamp when this example was created.", "is_output_only": true, "is_request_body_field": true, "is_optional_object": true, @@ -168357,8 +175622,18 @@ } }, { - "name": "example_id", - "description": "The universally unique identifier (UUID) of the example.", + "name": "created_by", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "Principal", + "is_object": true + } + }, + { + "name": "datasource_id", + "description": "Unity Catalog securable ID (a UUID) of the datasource. It never changes, including when the\ndatasource is renamed in Unity Catalog, and is the final segment of `name`.", "is_output_only": true, "is_request_body_field": true, "entity": { @@ -168366,66 +175641,233 @@ } }, { - "name": "guidelines", - "description": "Guidelines for answering the question. Optional — examples may be created\nwith just a question; the front-end form does not require guidelines.", + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "List", + "is_string": true + } + }, + { + "name": "description", + "description": "Free-form description of the datasource.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_catalog_name", + "description": "Current name of the Unity Catalog catalog that contains the datasource, which reflects\ncatalog renames without a change to `catalog_name`. Populated on get, create, and update\nresponses; list responses omit it.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_datasource_name", + "description": "Current UC leaf name of the datasource (server-owned). Tracks UC renames so\ncallers can observe the live name without having to update the client-owned\n`datasource_name`; unset until resolved.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_run_as_principal", + "description": "The identity the datasource runs as: the resolved `run_as_principal`, or the requester's\nidentity if `run_as_principal` was omitted on create or cleared on update. Given as a user\nemail or service principal application ID, or as the numeric principal ID if the identity\ncan no longer be resolved. Populated on get, create, and update responses; list responses\nomit it.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_schema_name", + "description": "Current name of the Unity Catalog schema that contains the datasource, which reflects\nschema renames without a change to `schema_name`. Populated on get, create, and update\nresponses; list responses omit it.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "etag", + "description": "Opaque entity tag for optimistic concurrency control. Returned by get, create, and update\nresponses and by list responses in the `DATASOURCE_VIEW_FULL` view. To make an update\nconditional on the datasource not having changed since it was read, pass this value as the\nupdate request's `etag`. Changes to `status` do not change the etag.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "existing_table", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "ExistingTable", + "is_object": true + } + }, + { + "name": "name", + "description": "Resource name of the datasource, in the format `datasources/{datasource_id}`. Unlike the\ndatasource's Unity Catalog location (`catalog_name`, `schema_name`, and `datasource_name`),\nthe name does not change when the datasource or its catalog or schema is renamed in Unity\nCatalog.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "owner", + "description": "Unity Catalog owner of the datasource, assigned by the server. Create responses omit it.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "Principal", + "is_object": true + } + }, + { + "name": "parsers", + "description": "Parsers that schematize the ingested data. Each record is matched against the parsers in\norder and written to the parsed table of the first parser that it matches. Existing-table\nand Unity Catalog connection datasources require at least one parser; an Auto Loader\ndatasource with no parsers writes only its raw table.", + "is_request_body_field": true, + "entity": { + "pascal_name": "ParserRefList", "array_value": { - "is_string": true + "pascal_name": "ParserRef", + "is_object": true } } }, { - "name": "name", - "description": "Full resource name:\nknowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "name": "run_as_principal", + "description": "The user or service principal that the datasource runs as, given as a user email or\nservice principal application ID. When it is supplied on create or update, the requester\nmust be authorized to run the datasource as that principal, or the request is rejected.\nWhen it is omitted on create, the datasource runs as the requester. On update, a mask that\nincludes `run_as_principal` without a value clears it, so the datasource runs as the\nrequester; a mask that omits it keeps the current identity. Reads return the value as\nsupplied; the identity the datasource runs as is reported in `effective_run_as_principal`.", "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "question", - "description": "The example question.", + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", "required": true, "is_request_body_field": true, "entity": { "is_string": true } }, + { + "name": "status", + "description": "Runtime status of the jobs and pipelines that run this datasource.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "DatasourceStatus", + "is_object": true + } + }, + { + "name": "unity_catalog_connection", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "UnityCatalogConnection", + "is_object": true + } + }, { "name": "update_time", - "description": "Timestamp when this example was last updated.", "is_output_only": true, "is_request_body_field": true, "is_optional_object": true, "entity": { "is_timestamp": true } + }, + { + "name": "updated_by", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "Principal", + "is_object": true + } + }, + { + "name": "version", + "description": "Version number of the datasource, incremented on each update. Informational only; use\n`etag` for optimistic concurrency control.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } } ], "required_positional_arguments": [ { - "name": "name", - "description": "The resource name of the example to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/examples/{example_id}", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the example.\nAllowed values: `question`, `guidelines`.\nExamples:\n- `question`\n- `question,guidelines`", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", "required": true, - "is_query": true, + "is_request_body_field": true, "entity": { - "is_field_mask": true + "is_string": true } }, { - "name": "question", - "description": "The example question.", + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, "is_request_body_field": true, "entity": { @@ -168435,97 +175877,59 @@ ] }, { - "name": "UpdateKnowledgeAssistant", - "description": "Updates a Knowledge Assistant.", - "summary": "Update a Knowledge Assistant.", - "path": "/api/2.1/{name=knowledge-assistants/*}", + "name": "CreateRule", + "description": "Creates a new rule.", + "summary": "Create a rule.", + "path": "/api/2.0/lakewatch/rules", "can_use_json": true, + "is_crud_create": true, "has_required_positional_arguments": true, "launch_stage": "PUBLIC_BETA", "cli_launch_stage_label": "*Beta*", "cli_launch_stage_banner": "This command is in Beta and may change without notice.", "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "UpdateKnowledgeAssistantRequest", + "pascal_name": "CreateRuleRequest", "is_object": true, - "has_field_mask": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "name", - "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "knowledge_assistant", - "description": "The Knowledge Assistant update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Assistant fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "name": "rule", + "description": "The rule to create. Server-assigned fields (`name`, `rule_id`, timestamps,\n`etag`, …) are ignored on the request.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistant", + "pascal_name": "Rule", "is_object": true } - }, - { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the Knowledge Assistant.\nAllowed values: `display_name`, `description`, `instructions`.\nExamples:\n- `display_name`\n- `description,instructions`", - "required": true, - "is_query": true, - "entity": { - "is_field_mask": true - } - } - ], - "required_in_url_fields": [ - { - "name": "name", - "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the Knowledge Assistant.\nAllowed values: `display_name`, `description`, `instructions`.\nExamples:\n- `display_name`\n- `description,instructions`", - "required": true, - "is_query": true, - "entity": { - "is_field_mask": true - } } ], "required_request_body_fields": [ { - "name": "knowledge_assistant", - "description": "The Knowledge Assistant update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Assistant fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "name": "rule", + "description": "The rule to create. Server-assigned fields (`name`, `rule_id`, timestamps,\n`etag`, …) are ignored on the request.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistant", + "pascal_name": "Rule", "is_object": true } } ] }, "request_body_field": { - "name": "knowledge_assistant", - "description": "The Knowledge Assistant update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Assistant fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "name": "rule", + "description": "The rule to create. Server-assigned fields (`name`, `rule_id`, timestamps,\n`etag`, …) are ignored on the request.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistant", + "pascal_name": "Rule", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -168533,19 +175937,80 @@ } }, { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", "required": true, "is_request_body_field": true, "entity": { "is_string": true } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", + "is_object": true + } } ], "required_request_body_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -168553,25 +176018,86 @@ } }, { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", "required": true, "is_request_body_field": true, "entity": { "is_string": true } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", + "is_object": true + } } ] } }, "response": { - "pascal_name": "KnowledgeAssistant", + "pascal_name": "Rule", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -168579,19 +176105,80 @@ } }, { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", "required": true, "is_request_body_field": true, "entity": { "is_string": true } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", + "is_object": true + } } ], "required_request_body_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -168599,30 +176186,91 @@ } }, { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", "required": true, "is_request_body_field": true, "entity": { "is_string": true } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", + "is_object": true + } } ] }, "all_fields": [ { - "name": "knowledge_assistant", - "description": "The Knowledge Assistant update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Assistant fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "name": "rule", + "description": "The rule to create. Server-assigned fields (`name`, `rule_id`, timestamps,\n`etag`, …) are ignored on the request.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistant", + "pascal_name": "Rule", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -168630,19 +176278,107 @@ } }, { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", "required": true, "is_request_body_field": true, "entity": { "is_string": true } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", + "is_object": true + } } ], "required_request_body_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", "required": true, "is_request_body_field": true, "entity": { @@ -168650,48 +176386,303 @@ } }, { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", + "is_object": true + } + } + ] + } + }, + { + "name": "annotations", + "description": "Free-form client-managed key/value annotations.", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + }, + { + "name": "batch", + "description": "Batch SQL rule input.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "RuleInputBatch", + "is_object": true + } + }, + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "category", + "description": "Free-form rule category.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "compute_workspace_id", + "description": "ID of the workspace whose compute runs this rule's jobs and owns its\nassociated resources, such as the SQL warehouse a scheduled rule runs on.\nServer-assigned; a rule's warehouse can only be changed from this workspace.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "content_resource_id", + "description": "Immutable UUIDv4 identifying the authored content resource installed as this rule.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "create_time", + "description": "Time the rule was created.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "created_by", + "description": "Principal that created the rule.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "Principal", + "is_object": true + } + }, + { + "name": "deduplication", + "description": "Signal deduplication mode.", + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleDeduplication", + "enum": [ + { + "content": "DEDUPLICATION_DEFAULT" + }, + { + "content": "DEDUPLICATION_DISABLED" + }, + { + "content": "DEDUPLICATION_ENABLED" + } + ] + } + }, + { + "name": "deduplication_time_window", + "description": "Time window for deduplication, such as `1h`, `24h`, `7d`, or `automatic`.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Free-form description.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_catalog_name", + "description": "Current name of the Unity Catalog catalog that contains the rule. Reflects catalog renames,\nwhich do not change `catalog_name`. Unset until resolved.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_rule_name", + "description": "Current UC leaf name of the rule (server-owned). Tracks UC renames so callers\ncan observe the live name without having to update the client-owned\n`rule_name`; unset until resolved.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_run_as_principal", + "description": "The identity this rule's job runs as: the resolved `run_as_principal`, or the\nrequester's identity when it was omitted on create or cleared on update. The value is a user\nemail or service-principal application ID, falling back to the numeric principal ID if that\nidentity can no longer be resolved. Populated on single-rule reads (get/create/update); list\nresponses omit it.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_schema_name", + "description": "Current name of the Unity Catalog schema that contains the rule. Reflects schema renames,\nwhich do not change `schema_name`. Unset until resolved.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "etag", + "description": "Opaque entity tag for optimistic concurrency. Content-version ETags change on\nuser edits and remain stable across runtime status updates.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" } ] } }, + { + "name": "mitre", + "description": "Up to 64 MITRE ATT\u0026CK mappings, producing at most 192 flattened alert tags.", + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleMitreMappingList", + "array_value": { + "pascal_name": "RuleMitreMapping", + "is_object": true + } + } + }, { "name": "name", - "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", - "required": true, - "is_path": true, + "description": "Resource name, in the form `rules/{rule_id}`. Assigned by the server on create; required\non update.", + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the Knowledge Assistant.\nAllowed values: `display_name`, `description`, `instructions`.\nExamples:\n- `display_name`\n- `description,instructions`", + "name": "objective", + "description": "Long-form description of what this rule detects.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "original_content_pack", + "description": "Reference to the content pack this rule was originally installed from.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "ContentPackReference", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", "required": true, - "is_query": true, + "is_request_body_field": true, "entity": { - "is_field_mask": true + "pascal_name": "RuleOutput", + "is_object": true } }, { - "name": "create_time", - "description": "Creation timestamp.", + "name": "owner", + "description": "Unity Catalog owner of the rule. Assigned by the server. Populated by `GetRule`.", "is_output_only": true, "is_request_body_field": true, "is_optional_object": true, "entity": { - "is_timestamp": true + "pascal_name": "Principal", + "is_object": true } }, { - "name": "creator", - "description": "The creator of the Knowledge Assistant.", + "name": "references", + "description": "Ordered reference URLs carried from the authored rule metadata. A maximum of three references\nof up to 512 characters each is supported. Requests exceeding these limits are rejected.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "rule_id", + "description": "Unity Catalog securable UUID of the rule, and the last segment of `name`. Never changes,\nincluding when the rule's catalog or schema is renamed.", "is_output_only": true, "is_request_body_field": true, "entity": { @@ -168699,8 +176690,8 @@ } }, { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -168708,8 +176699,34 @@ } }, { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "run_as_principal", + "description": "The principal whose identity this rule's job runs as, given as a\nuser email or service-principal application ID. When supplied on\ncreate/update, Lakewatch resolves the principal, records it on the rule, and\ncreates the delegation to run as that principal — the requester must be\nauthorized to delegate to it, or the request is rejected. When omitted on\ncreate, the requester's own identity is used. An update whose mask does not\ninclude `run_as_principal` keeps the current identity, and the requester must\nstill be authorized to delegate to it; an editor who is not must supply a\nrun_as_principal they can delegate to (for example, their own identity), or\nclear it, either of which reassigns the rule. An update whose mask includes\n`run_as_principal` but supplies no value clears it: the rule then runs as the\nrequester, exactly as when it is omitted on create. Reads return the value as\nsupplied; the identity the rule runs as is reported in\n`effective_run_as_principal`.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "runbook", + "description": "Long-form operational guidance carried from the authored rule metadata. Supports up to 4096\ncharacters. Requests exceeding this limit are rejected.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -168717,111 +176734,209 @@ } }, { - "name": "endpoint_name", - "description": "The name of the knowledge assistant agent endpoint.", - "is_output_only": true, + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "error_info", - "description": "Error details when the Knowledge Assistant is in FAILED state.", + "name": "status", + "description": "Read-only lifecycle status.", "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true + "pascal_name": "ResourceStatus", + "is_object": true } }, { - "name": "experiment_id", - "description": "The MLflow experiment ID.", + "name": "suppress_until_time", + "description": "If set, this rule's signals do not open new alerts until the given time.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "timerange", + "description": "Time-range configuration for batch rules. If unset, the execution time range is extended by\na fixed `15m` lookback.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "RuleTimeRange", + "is_object": true + } + }, + { + "name": "update_time", + "description": "Time the rule was last updated.", "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true + "is_timestamp": true } }, { - "name": "id", - "description": "Deprecated: use knowledge_assistant_id instead.", + "name": "updated_by", + "description": "Principal that last updated the rule.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "Principal", + "is_object": true + } + }, + { + "name": "version", + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", "is_output_only": true, "is_request_body_field": true, + "entity": { + "is_int64": true + } + } + ], + "required_positional_arguments": [ + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", + "required": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "instructions", - "description": "Additional global instructions on how the agent should generate answers.\nOptional on create and update.\nWhen updating a Knowledge Assistant, include this field in update_mask to\nmodify it.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "name", - "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "state", - "description": "State of the Knowledge Assistant. Not returned in List responses.", - "is_output_only": true, + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "KnowledgeAssistantState", + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", "enum": [ { - "content": "ACTIVE" + "content": "FIDELITY_DEVELOPMENT" }, { - "content": "CREATING" + "content": "FIDELITY_HIGH" }, { - "content": "FAILED" + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" } ] } - } - ], - "required_positional_arguments": [ + }, { - "name": "name", - "description": "The resource name of the Knowledge Assistant.\nFormat: knowledge-assistants/{knowledge_assistant_id}", + "name": "schedule", + "description": "When the rule executes.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "RuleSchedule", + "is_object": true } }, { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the Knowledge Assistant.\nAllowed values: `display_name`, `description`, `instructions`.\nExamples:\n- `display_name`\n- `description,instructions`", + "name": "output", + "description": "What to record in each signal.", "required": true, - "is_query": true, + "is_request_body_field": true, "entity": { - "is_field_mask": true + "pascal_name": "RuleOutput", + "is_object": true } - }, + } + ] + }, + { + "name": "DeleteDatasource", + "description": "Deletes a datasource by its resource name.", + "summary": "Delete a datasource.", + "path": "/api/2.0/lakewatch/{name=datasources/*}", + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "DeleteDatasourceRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "is_empty_response": true + }, + "all_fields": [ { - "name": "display_name", - "description": "The display name of the Knowledge Assistant, unique at workspace level.\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "name", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } - }, + } + ], + "required_positional_arguments": [ { - "name": "description", - "description": "Description of what this agent can do (user-facing).\nRequired when creating a Knowledge Assistant.\nWhen updating a Knowledge Assistant, optional unless included in\nupdate_mask.", + "name": "name", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } @@ -168829,161 +176944,230 @@ ] }, { - "name": "UpdateKnowledgeSource", - "description": "Updates a Knowledge Source.", - "summary": "Update a Knowledge Source.", - "path": "/api/2.1/{name=knowledge-assistants/*/knowledge-sources/*}", - "can_use_json": true, + "name": "DeleteRule", + "description": "Deletes a rule by its resource name.", + "summary": "Delete a rule.", + "path": "/api/2.0/lakewatch/{name=rules/*}", "has_required_positional_arguments": true, "launch_stage": "PUBLIC_BETA", "cli_launch_stage_label": "*Beta*", "cli_launch_stage_banner": "This command is in Beta and may change without notice.", "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "UpdateKnowledgeSourceRequest", + "pascal_name": "DeleteRuleRequest", "is_object": true, - "has_field_mask": true, - "has_required_request_body_fields": true, "required_fields": [ { "name": "name", - "description": "The resource name of the Knowledge Source to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "description": "Resource name of the rule to delete. Format: `rules/{rule_id}`.", "required": true, "is_path": true, "entity": { "is_string": true } - }, + } + ], + "required_in_url_fields": [ { - "name": "knowledge_source", - "description": "The Knowledge Source update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Source fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "name": "name", + "description": "Resource name of the rule to delete. Format: `rules/{rule_id}`.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "pascal_name": "KnowledgeSource", - "is_object": true + "is_string": true } - }, + } + ] + }, + "response": { + "is_empty_response": true + }, + "all_fields": [ + { + "name": "name", + "description": "Resource name of the rule to delete. Format: `rules/{rule_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Resource name of the rule to delete. Format: `rules/{rule_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "GetAlertConfig", + "description": "Returns the alert delivery configuration for a catalog.", + "summary": "Get the alert config for a catalog.", + "path": "/api/2.0/lakewatch/{name=catalogs/*/alertConfig}", + "is_crud_read": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "GetAlertConfigRequest", + "is_object": true, + "required_fields": [ { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the Knowledge Source.\nAllowed values: `display_name`, `description`.\nExamples:\n- `display_name`\n- `display_name,description`", + "name": "name", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_field_mask": true + "is_string": true } } ], "required_in_url_fields": [ { "name": "name", - "description": "The resource name of the Knowledge Source to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, "is_path": true, "entity": { "is_string": true } - }, + } + ] + }, + "response": { + "pascal_name": "AlertConfig", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "GetCommonConfig", + "description": "Returns the common Lakewatch configuration for a catalog.", + "summary": "Get the common config for a catalog.", + "path": "/api/2.0/lakewatch/{name=catalogs/*/commonConfig}", + "is_crud_read": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "GetCommonConfigRequest", + "is_object": true, + "required_fields": [ { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the Knowledge Source.\nAllowed values: `display_name`, `description`.\nExamples:\n- `display_name`\n- `display_name,description`", + "name": "name", "required": true, - "is_query": true, + "is_path": true, "entity": { - "is_field_mask": true + "is_string": true } } ], - "required_request_body_fields": [ + "required_in_url_fields": [ { - "name": "knowledge_source", - "description": "The Knowledge Source update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Source fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "name": "name", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "pascal_name": "KnowledgeSource", - "is_object": true + "is_string": true } } ] }, - "request_body_field": { - "name": "knowledge_source", - "description": "The Knowledge Source update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Source fields describe create-time\nrequirements and do not mean all those fields are required for update.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "KnowledgeSource", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } + "response": { + "pascal_name": "CommonConfig", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "GetDatasource", + "description": "Returns a single datasource by its resource name.", + "summary": "Get a datasource.", + "path": "/api/2.0/lakewatch/{name=datasources/*}", + "is_crud_read": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "GetDatasourceRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "required": true, + "is_path": true, + "entity": { + "is_string": true } - ], - "required_request_body_fields": [ - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "required": true, + "is_path": true, + "entity": { + "is_string": true } - ] - } + } + ] }, "response": { - "pascal_name": "KnowledgeSource", + "pascal_name": "Datasource", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -168991,8 +177175,8 @@ } }, { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -169000,8 +177184,27 @@ } }, { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, "is_request_body_field": true, "entity": { @@ -169011,8 +177214,8 @@ ], "required_request_body_fields": [ { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -169020,8 +177223,8 @@ } }, { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -169029,8 +177232,27 @@ } }, { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, "is_request_body_field": true, "entity": { @@ -169041,268 +177263,329 @@ }, "all_fields": [ { - "name": "knowledge_source", - "description": "The Knowledge Source update payload.\nOnly fields listed in update_mask are updated.\nREQUIRED annotations on Knowledge Source fields describe create-time\nrequirements and do not mean all those fields are required for update.", + "name": "name", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "pascal_name": "KnowledgeSource", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ], - "required_request_body_fields": [ - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ] + "is_string": true } - }, + } + ], + "required_positional_arguments": [ { "name": "name", - "description": "The resource name of the Knowledge Source to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", "required": true, "is_path": true, "entity": { "is_string": true } - }, - { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the Knowledge Source.\nAllowed values: `display_name`, `description`.\nExamples:\n- `display_name`\n- `display_name,description`", - "required": true, - "is_query": true, - "entity": { - "is_field_mask": true + } + ] + }, + { + "name": "GetDatasourceConfig", + "description": "Returns the datasource ingestion configuration for a catalog.", + "summary": "Get the datasource config for a catalog.", + "path": "/api/2.0/lakewatch/{name=catalogs/*/datasourceConfig}", + "is_crud_read": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "GetDatasourceConfigRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } } - }, - { - "name": "create_time", - "description": "Timestamp when this knowledge source was created.", - "is_output_only": true, - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "is_timestamp": true + ], + "required_in_url_fields": [ + { + "name": "name", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } } - }, + ] + }, + "response": { + "pascal_name": "DatasourceConfig", + "is_object": true + }, + "all_fields": [ { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "name", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } - }, + } + ], + "required_positional_arguments": [ { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", + "name": "name", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } - }, - { - "name": "file_table", - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "pascal_name": "FileTableSpec", - "is_object": true - } - }, - { - "name": "files", - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "pascal_name": "FilesSpec", - "is_object": true + } + ] + }, + { + "name": "GetRule", + "description": "Returns a single rule by its resource name.", + "summary": "Get a rule.", + "path": "/api/2.0/lakewatch/{name=rules/*}", + "is_crud_read": true, + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "GetRuleRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "Full resource name of the detection rule, in the form `rules/{rule_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } } - }, - { - "name": "id", - "is_output_only": true, - "is_request_body_field": true, - "entity": { - "is_string": true + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Full resource name of the detection rule, in the form `rules/{rule_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } } - }, - { - "name": "index", - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "pascal_name": "IndexSpec", - "is_object": true + ] + }, + "response": { + "pascal_name": "Rule", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", + "is_object": true + } } - }, - { - "name": "knowledge_cutoff_time", - "description": "Timestamp representing the cutoff before which content in this knowledge source is being ingested.", - "is_output_only": true, - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "is_timestamp": true + ], + "required_request_body_fields": [ + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", + "is_object": true + } } - }, + ] + }, + "all_fields": [ { "name": "name", - "description": "Full resource name:\nknowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", + "description": "Full resource name of the detection rule, in the form `rules/{rule_id}`.", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } - }, - { - "name": "state", - "is_output_only": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "KnowledgeSourceState", - "enum": [ - { - "content": "FAILED_UPDATE" - }, - { - "content": "UPDATED" - }, - { - "content": "UPDATING" - } - ] - } } ], "required_positional_arguments": [ { "name": "name", - "description": "The resource name of the Knowledge Source to update.\nFormat: knowledge-assistants/{knowledge_assistant_id}/knowledge-sources/{knowledge_source_id}", + "description": "Full resource name of the detection rule, in the form `rules/{rule_id}`.", "required": true, "is_path": true, "entity": { "is_string": true } - }, - { - "name": "update_mask", - "description": "Comma-delimited list of fields to update on the Knowledge Source.\nAllowed values: `display_name`, `description`.\nExamples:\n- `display_name`\n- `display_name,description`", - "required": true, - "is_query": true, - "entity": { - "is_field_mask": true - } - }, - { - "name": "display_name", - "description": "Human-readable display name of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "description", - "description": "Description of the knowledge source.\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, optional unless included in update_mask.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "source_type", - "description": "The type of the source: \"index\", \"files\", or \"file_table\".\nRequired when creating a Knowledge Source.\nWhen updating a Knowledge Source, this field is ignored.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } } ] }, { - "name": "UpdatePermissions", - "description": "Updates the permissions on a knowledge assistant. Knowledge assistants can inherit permissions from their root object.", - "summary": "Update knowledge assistant permissions.", - "path": "/api/2.0/permissions/knowledge-assistants/{knowledge_assistant_id}", - "can_use_json": true, + "name": "GetRuleConfig", + "description": "Returns the detection-rule configuration for a catalog.", + "summary": "Get the rule config for a catalog.", + "path": "/api/2.0/lakewatch/{name=catalogs/*/ruleConfig}", + "is_crud_read": true, "has_required_positional_arguments": true, "launch_stage": "PUBLIC_BETA", "cli_launch_stage_label": "*Beta*", "cli_launch_stage_banner": "This command is in Beta and may change without notice.", "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "KnowledgeAssistantPermissionsRequest", + "pascal_name": "GetRuleConfigRequest", "is_object": true, "required_fields": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "name", "required": true, "is_path": true, "entity": { @@ -169312,8 +177595,7 @@ ], "required_in_url_fields": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "name", "required": true, "is_path": true, "entity": { @@ -169323,24 +177605,12 @@ ] }, "response": { - "pascal_name": "KnowledgeAssistantPermissions", + "pascal_name": "RuleConfig", "is_object": true }, "all_fields": [ { - "name": "access_control_list", - "is_request_body_field": true, - "entity": { - "pascal_name": "KnowledgeAssistantAccessControlRequestList", - "array_value": { - "pascal_name": "KnowledgeAssistantAccessControlRequest", - "is_object": true - } - } - }, - { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "name", "required": true, "is_path": true, "entity": { @@ -169350,8 +177620,7 @@ ], "required_positional_arguments": [ { - "name": "knowledge_assistant_id", - "description": "The knowledge assistant for which to get or manage permissions.", + "name": "name", "required": true, "is_path": true, "entity": { @@ -169359,714 +177628,393 @@ } } ] - } - ] - }, - { - "id": "dashboards.Lakeview", - "name": "Lakeview", - "description": "These APIs provide specific management operations for Lakeview dashboards. Generic resource management can be done with Workspace API (import, export, get-status, list, delete).", - "package": { - "name": "dashboards" - }, - "docs_group": "dashboards", - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "list": { - "request": { - "pascal_name": "ListDashboardsRequest" - } - }, - "methods": [ + }, { - "name": "Create", - "description": "Create a draft dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "Create dashboard.", - "path": "/api/2.0/lakeview/dashboards", - "can_use_json": true, - "is_crud_create": true, + "name": "ListDatasources", + "description": "Lists the datasources in a Unity Catalog catalog, optionally narrowed to one schema or\nfiltered by name. Results are paginated. Datasources that are still being created or\ndeleted are not listed.", + "summary": "List datasources.", + "path": "/api/2.0/lakewatch/datasources", "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "CreateDashboardRequest", + "pascal_name": "ListDatasourcesRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "dashboard", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog to list datasources from. Required; each request lists the\ndatasources of a single catalog.", "required": true, - "is_request_body_field": true, + "is_query": true, "entity": { - "pascal_name": "Dashboard", - "is_object": true + "is_string": true } } ], - "required_request_body_fields": [ + "required_in_url_fields": [ { - "name": "dashboard", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog to list datasources from. Required; each request lists the\ndatasources of a single catalog.", "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Dashboard", - "is_object": true - } - } - ] - }, - "request_body_field": { - "name": "dashboard", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Dashboard", - "is_object": true - } + "is_query": true, + "entity": { + "is_string": true + } + } + ] }, "response": { - "pascal_name": "Dashboard", + "pascal_name": "ListDatasourcesResponse", "is_object": true }, "all_fields": [ { - "name": "dashboard", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog to list datasources from. Required; each request lists the\ndatasources of a single catalog.", "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Dashboard", - "is_object": true - } - }, - { - "name": "dataset_catalog", - "description": "Sets the default catalog for all datasets in this dashboard.\nDoes not impact table references that use fully qualified catalog names (ex: samples.nyctaxi.trips).\nLeave blank to keep each dataset’s existing configuration.", "is_query": true, "entity": { "is_string": true } }, { - "name": "dataset_schema", - "description": "Sets the default schema for all datasets in this dashboard.\nDoes not impact table references that use fully qualified schema names (ex: nyctaxi.trips).\nLeave blank to keep each dataset’s existing configuration.", + "name": "filter", + "description": "Filter expression that restricts the results to datasources with a given name, for example\n`datasource_name = \"my_source\"`. Only a single exact-match comparison on `datasource_name`\nis supported, and it matches the datasource's current Unity Catalog name, which reads report\nin `effective_datasource_name`. Filtered results are returned in a single page.", "is_query": true, "entity": { "is_string": true } }, { - "name": "create_time", - "description": "The timestamp of when the dashboard was created.", - "is_computed": true, - "is_output_only": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", - "is_computed": true, - "is_output_only": true, - "is_request_body_field": true, + "name": "page_size", + "description": "Maximum number of results to return in one page. This is a best-effort upper\nbound, not a guarantee: the server may return fewer items than requested (even\nzero) while more results still exist. If unset or 0, the server picks a default.", + "is_query": true, "entity": { - "is_string": true + "is_int": true } }, { - "name": "display_name", - "description": "The display name of the dashboard.", - "is_request_body_field": true, + "name": "page_token", + "is_query": true, "entity": { "is_string": true } }, { - "name": "etag", - "description": "The etag for the dashboard. Can be optionally provided on updates to ensure that the dashboard\nhas not been modified since the last read.\nThis field is excluded in List Dashboards responses.", - "is_computed": true, - "is_request_body_field": true, + "name": "schema_name", + "description": "Name of a Unity Catalog schema in `catalog_name`. Optional; if set, only the datasources in\nthis schema are returned, and if omitted, the datasources in all schemas of the catalog are\nreturned.", + "is_query": true, "entity": { "is_string": true } }, { - "name": "lifecycle_state", - "description": "The state of the dashboard resource. Used for tracking trashed status.", - "is_computed": true, - "is_output_only": true, - "is_request_body_field": true, + "name": "view", + "description": "Which fields to return for each datasource. Defaults to `DATASOURCE_VIEW_FULL`.\n`DATASOURCE_VIEW_BASIC` returns only the identity and Unity Catalog location fields.", + "is_query": true, "entity": { - "pascal_name": "LifecycleState", + "pascal_name": "DatasourceView", "enum": [ { - "content": "ACTIVE" + "content": "DATASOURCE_VIEW_BASIC" }, { - "content": "TRASHED" + "content": "DATASOURCE_VIEW_FULL" } ] } - }, - { - "name": "parent_path", - "description": "The workspace path of the folder containing the dashboard. Includes leading slash and no\ntrailing slash.\nThis field is excluded in List Dashboards responses.", - "is_computed": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "path", - "description": "The workspace path of the dashboard asset, including the file name.\nExported dashboards always have the file extension `.lvdash.json`.\nThis field is excluded in List Dashboards responses.", - "is_computed": true, - "is_output_only": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "serialized_dashboard", - "description": "The contents of the dashboard in serialized string form.\nThis field is excluded in List Dashboards responses.\nUse the [get dashboard API](https://docs.databricks.com/api/workspace/lakeview/get)\nto retrieve an example response, which includes the `serialized_dashboard` field.\nThis field provides the structure of the JSON string that represents the dashboard's\nlayout and components.", - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, + } + ], + "required_positional_arguments": [ { - "name": "update_time", - "description": "The timestamp of when the dashboard was last updated by the user.\nThis field is excluded in List Dashboards responses.", - "is_computed": true, - "is_output_only": true, - "is_request_body_field": true, + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog to list datasources from. Required; each request lists the\ndatasources of a single catalog.", + "required": true, + "is_query": true, "entity": { "is_string": true } - }, - { - "name": "warehouse_id", - "description": "The warehouse ID used to run the dashboard.", - "is_request_body_field": true, - "entity": { - "is_string": true + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "is_query": true, + "entity": { + "is_string": true + } } } - ] + } }, { - "name": "CreateSchedule", - "description": "Create dashboard schedule.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "Create dashboard schedule.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules", - "can_use_json": true, - "is_crud_create": true, + "name": "ListRules", + "description": "Lists rules, with optional filtering and pagination.", + "summary": "List rules.", + "path": "/api/2.0/lakewatch/rules", "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "CreateScheduleRequest", + "pascal_name": "ListRulesRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog to list rules from. Required.", "required": true, - "is_path": true, - "is_output_only": true, + "is_query": true, "entity": { "is_string": true } - }, - { - "name": "schedule", - "description": "The schedule to create. A dashboard is limited to 10 schedules.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Schedule", - "is_object": true - } } ], "required_in_url_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog to list rules from. Required.", "required": true, - "is_path": true, - "is_output_only": true, + "is_query": true, "entity": { "is_string": true } } - ], - "required_request_body_fields": [ - { - "name": "schedule", - "description": "The schedule to create. A dashboard is limited to 10 schedules.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Schedule", - "is_object": true - } - } ] }, - "request_body_field": { - "name": "schedule", - "description": "The schedule to create. A dashboard is limited to 10 schedules.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Schedule", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "CronSchedule", - "is_object": true - } - } - ], - "required_request_body_fields": [ - { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "CronSchedule", - "is_object": true - } - } - ] - } - }, "response": { - "pascal_name": "Schedule", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "CronSchedule", - "is_object": true - } - } - ], - "required_request_body_fields": [ - { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "CronSchedule", - "is_object": true - } - } - ] + "pascal_name": "ListRulesResponse", + "is_object": true }, "all_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog to list rules from. Required.", "required": true, - "is_path": true, - "is_output_only": true, + "is_query": true, "entity": { "is_string": true } }, { - "name": "schedule", - "description": "The schedule to create. A dashboard is limited to 10 schedules.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Schedule", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "CronSchedule", - "is_object": true - } - } - ], - "required_request_body_fields": [ - { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "CronSchedule", - "is_object": true - } - } - ] - } - }, - { - "name": "create_time", - "description": "A timestamp indicating when the schedule was created.", - "is_computed": true, - "is_output_only": true, - "is_request_body_field": true, + "name": "filter", + "description": "Filter expression that restricts the results, such as `rule_name = \"my_rule\"` to return\nonly the rule with that name. The name is matched against the current UC name, which\nreads report in `effective_rule_name`.", + "is_query": true, "entity": { "is_string": true } }, { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "CronSchedule", - "is_object": true - } - }, - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", - "is_computed": true, - "is_output_only": true, - "is_request_body_field": true, + "name": "page_size", + "description": "Maximum number of rules to return. The server may return fewer. If unset\nor 0, the server picks a default page size.", + "is_query": true, "entity": { - "is_string": true + "is_int": true } }, { - "name": "display_name", - "description": "The display name for schedule.", - "is_request_body_field": true, + "name": "page_token", + "description": "Page token from a previous `ListRules` response, used to fetch the next\npage of results.", + "is_query": true, "entity": { "is_string": true } }, { - "name": "etag", - "description": "The etag for the schedule. Must be left empty on create, must be provided on updates to ensure\nthat the schedule has not been modified since the last read, and can be optionally provided on delete.", - "is_computed": true, - "is_request_body_field": true, + "name": "schema_name", + "description": "Name of a Unity Catalog schema in `catalog_name`. If set, only rules in this schema are\nreturned. If unset, rules in all schemas of the catalog are returned.", + "is_query": true, "entity": { "is_string": true } }, { - "name": "pause_status", - "description": "The status indicates whether this schedule is paused or not.", - "is_request_body_field": true, + "name": "view", + "description": "How much of each rule to return. Defaults to `RULE_VIEW_FULL`. `RULE_VIEW_BASIC` returns\nonly each rule's identity and Unity Catalog location.", + "is_query": true, "entity": { - "pascal_name": "SchedulePauseStatus", + "pascal_name": "RuleView", "enum": [ { - "content": "PAUSED" + "content": "RULE_VIEW_BASIC" }, { - "content": "UNPAUSED" + "content": "RULE_VIEW_FULL" } ] } - }, - { - "name": "schedule_id", - "description": "UUID identifying the schedule.", - "is_computed": true, - "is_output_only": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "update_time", - "description": "A timestamp indicating when the schedule was last updated.", - "is_computed": true, - "is_output_only": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, - { - "name": "warehouse_id", - "description": "The warehouse id to run the dashboard with for the schedule.", - "is_request_body_field": true, - "entity": { - "is_string": true - } } ], "required_positional_arguments": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog to list rules from. Required.", "required": true, - "is_path": true, - "is_output_only": true, + "is_query": true, "entity": { "is_string": true } - }, - { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "CronSchedule", - "is_object": true + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "Page token from a previous `ListRules` response, used to fetch the next\npage of results.", + "is_query": true, + "entity": { + "is_string": true + } } } - ] + } }, { - "name": "CreateSubscription", - "description": "Create schedule subscription.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", - "summary": "Create schedule subscription.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}/subscriptions", + "name": "UpdateAlertConfig", + "description": "Updates the alert delivery configuration for a catalog.", + "summary": "Update the alert config for a catalog.", + "path": "/api/2.0/lakewatch/{name=catalogs/*/alertConfig}", "can_use_json": true, - "is_crud_create": true, "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "CreateSubscriptionRequest", + "pascal_name": "UpdateAlertConfigRequest", "is_object": true, + "has_field_mask": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the subscription belongs.", + "name": "name", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule to which the subscription belongs.", + "name": "alert_config", "required": true, - "is_path": true, - "is_output_only": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "AlertConfig", + "is_object": true } }, { - "name": "subscription", - "description": "The subscription to create. A schedule is limited to 100 subscriptions.", + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", "required": true, - "is_request_body_field": true, + "is_query": true, "entity": { - "pascal_name": "Subscription", - "is_object": true + "is_field_mask": true } } ], "required_in_url_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the subscription belongs.", + "name": "name", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule to which the subscription belongs.", + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", "required": true, - "is_path": true, - "is_output_only": true, + "is_query": true, "entity": { - "is_string": true + "is_field_mask": true } } ], "required_request_body_fields": [ { - "name": "subscription", - "description": "The subscription to create. A schedule is limited to 100 subscriptions.", + "name": "alert_config", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Subscription", + "pascal_name": "AlertConfig", "is_object": true } } ] }, "request_body_field": { - "name": "subscription", - "description": "The subscription to create. A schedule is limited to 100 subscriptions.", + "name": "alert_config", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Subscription", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "subscriber", - "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Subscriber", - "is_object": true - } - } - ], - "required_request_body_fields": [ - { - "name": "subscriber", - "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Subscriber", - "is_object": true - } - } - ] + "pascal_name": "AlertConfig", + "is_object": true } }, "response": { - "pascal_name": "Subscription", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "subscriber", - "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Subscriber", - "is_object": true - } - } - ], - "required_request_body_fields": [ - { - "name": "subscriber", - "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Subscriber", - "is_object": true - } - } - ] + "pascal_name": "AlertConfig", + "is_object": true }, "all_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the subscription belongs.", + "name": "alert_config", "required": true, - "is_path": true, - "is_output_only": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AlertConfig", + "is_object": true + } + }, + { + "name": "etag", + "description": "Optimistic-concurrency precondition: if set and it does not match the\nresource's current `etag`, the update is rejected as a conflict (HTTP 409).", + "is_query": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule to which the subscription belongs.", + "name": "name", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } }, { - "name": "subscription", - "description": "The subscription to create. A schedule is limited to 100 subscriptions.", + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", "required": true, - "is_request_body_field": true, + "is_query": true, "entity": { - "pascal_name": "Subscription", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "subscriber", - "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Subscriber", - "is_object": true - } - } - ], - "required_request_body_fields": [ - { - "name": "subscriber", - "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Subscriber", - "is_object": true - } - } - ] + "is_field_mask": true } }, { - "name": "create_time", - "description": "A timestamp indicating when the subscription was created.", - "is_computed": true, - "is_output_only": true, + "name": "default_security_alert_collation_window", + "description": "Window for collating Signals into security alerts. Duration\nstring — compact day/hour/minute/second components, e.g. `1d`, `12h`\n(see `Schedule.at_least_every` in common.proto for the grammar). Reads\nreturn the value as supplied. When unset or empty, the window is `1h`; the window in\neffect is reported in `effective_default_security_alert_collation_window`.", "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "created_by_user_id", - "description": "UserId of the user who adds subscribers (users or notification destinations) to the dashboard's schedule.", - "is_computed": true, - "is_output_only": true, + "name": "default_system_alert_collation_window", + "description": "Window for collating SystemEvents into system alerts. Duration\nstring — compact day/hour/minute/second components, e.g. `1d`, `12h`\n(see `Schedule.at_least_every` in common.proto for the grammar). Reads\nreturn the value as supplied. When unset or empty, the window is `1d`; the window in\neffect is reported in `effective_default_system_alert_collation_window`.", "is_request_body_field": true, "entity": { - "is_int64": true + "is_string": true } }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the subscription belongs.", - "is_computed": true, + "name": "effective_default_security_alert_collation_window", + "description": "The security alert collation window in effect:\n`default_security_alert_collation_window` when set, otherwise `1h`.", "is_output_only": true, "is_request_body_field": true, "entity": { @@ -170074,18 +178022,17 @@ } }, { - "name": "etag", - "description": "The etag for the subscription. Must be left empty on create, can be optionally provided on delete\nto ensure that the subscription has not been deleted since the last read.", - "is_computed": true, + "name": "effective_default_system_alert_collation_window", + "description": "The system alert collation window in effect:\n`default_system_alert_collation_window` when set, otherwise `1d`.", + "is_output_only": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule to which the subscription belongs.", - "is_computed": true, + "name": "etag", + "description": "Opaque entity tag for optimistic concurrency. Returned on every read;\npass it back as the Update request's `etag` to make the update\nconditional on the resource being unchanged.", "is_output_only": true, "is_request_body_field": true, "entity": { @@ -170093,164 +178040,64 @@ } }, { - "name": "skip_notify", - "description": "Controls whether notifications are sent to the subscriber for scheduled dashboard refreshes.\nIf not defined, defaults to false in the backend to match the current behavior (refresh and notify)", + "name": "name", "is_request_body_field": true, "entity": { - "is_bool": true + "is_string": true } }, { - "name": "subscriber", - "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", - "required": true, + "name": "security_alert_export_config", + "description": "Export destination for security alerts. When unset, export is off and reads\nreturn `{\"enabled\": false}`.", "is_request_body_field": true, + "is_optional_object": true, "entity": { - "pascal_name": "Subscriber", + "pascal_name": "ExportConfig", "is_object": true } }, { - "name": "subscription_id", - "description": "UUID identifying the subscription.", - "is_computed": true, - "is_output_only": true, + "name": "system_alert_export_config", + "description": "Export destination for system alerts. When unset, export is off and reads\nreturn `{\"enabled\": false}`.", "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true + "pascal_name": "ExportConfig", + "is_object": true } }, { "name": "update_time", - "description": "A timestamp indicating when the subscription was last updated.", - "is_computed": true, "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true - } - } - ], - "required_positional_arguments": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the subscription belongs.", - "required": true, - "is_path": true, - "is_output_only": true, - "entity": { - "is_string": true + "is_timestamp": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule to which the subscription belongs.", - "required": true, - "is_path": true, + "name": "updated_by", "is_output_only": true, - "entity": { - "is_string": true - } - }, - { - "name": "subscriber", - "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", - "required": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "pascal_name": "Subscriber", + "pascal_name": "Principal", "is_object": true } - } - ] - }, - { - "name": "DeleteSchedule", - "description": "Delete dashboard schedule.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "Delete dashboard schedule.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}", - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "DeleteScheduleRequest", - "is_object": true, - "required_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "schedule_id", - "description": "UUID identifying the schedule.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ], - "required_in_url_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "schedule_id", - "description": "UUID identifying the schedule.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ] - }, - "response": { - "is_empty_response": true - }, - "all_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "etag", - "description": "The etag for the schedule. Optionally, it can be provided to verify that the schedule has not\nbeen modified from its last retrieval.", - "is_query": true, - "entity": { - "is_string": true - } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule.", - "required": true, - "is_path": true, + "name": "version", + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", + "is_output_only": true, + "is_request_body_field": true, "entity": { - "is_string": true + "is_int64": true } } ], "required_positional_arguments": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "name", "required": true, "is_path": true, "entity": { @@ -170258,31 +178105,35 @@ } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule.", + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", "required": true, - "is_path": true, + "is_query": true, "entity": { - "is_string": true + "is_field_mask": true } } ] }, { - "name": "DeleteSubscription", - "description": "Delete schedule subscription.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", - "summary": "Delete schedule subscription.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}/subscriptions/{subscription_id}", + "name": "UpdateCommonConfig", + "description": "Updates the common Lakewatch configuration for a catalog.", + "summary": "Update the common config for a catalog.", + "path": "/api/2.0/lakewatch/{name=catalogs/*/commonConfig}", + "can_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "DeleteSubscriptionRequest", + "pascal_name": "UpdateCommonConfigRequest", "is_object": true, + "has_field_mask": true, + "has_required_request_body_fields": true, "required_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscription belongs.", + "name": "name", "required": true, "is_path": true, "entity": { @@ -170290,28 +178141,27 @@ } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscription belongs.", + "name": "common_config", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "CommonConfig", + "is_object": true } }, { - "name": "subscription_id", - "description": "UUID identifying the subscription.", + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", "required": true, - "is_path": true, + "is_query": true, "entity": { - "is_string": true + "is_field_mask": true } } ], "required_in_url_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscription belongs.", + "name": "name", "required": true, "is_path": true, "entity": { @@ -170319,49 +178169,60 @@ } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscription belongs.", + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", "required": true, - "is_path": true, + "is_query": true, "entity": { - "is_string": true + "is_field_mask": true } - }, + } + ], + "required_request_body_fields": [ { - "name": "subscription_id", - "description": "UUID identifying the subscription.", + "name": "common_config", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "CommonConfig", + "is_object": true } } ] }, + "request_body_field": { + "name": "common_config", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "CommonConfig", + "is_object": true + } + }, "response": { - "is_empty_response": true + "pascal_name": "CommonConfig", + "is_object": true }, "all_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscription belongs.", + "name": "common_config", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "CommonConfig", + "is_object": true } }, { "name": "etag", - "description": "The etag for the subscription. Can be optionally provided to ensure that the subscription has not been\nmodified since the last read.", + "description": "Optimistic-concurrency precondition: if set and it does not match the\nresource's current `etag`, the update is rejected as a conflict (HTTP 409).", "is_query": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscription belongs.", + "name": "name", "required": true, "is_path": true, "entity": { @@ -170369,185 +178230,152 @@ } }, { - "name": "subscription_id", - "description": "UUID identifying the subscription.", + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", "required": true, - "is_path": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + }, + { + "name": "custom_content_pack_path", + "description": "UC volume path holding user-authored custom content packs, e.g.\n`/Volumes/{catalog}/{schema}/{volume}`. User-provided with no default:\nwhen unset, custom content packs are unavailable (referencing one is\nrejected) and only built-in content packs apply.", + "is_request_body_field": true, "entity": { "is_string": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscription belongs.", - "required": true, - "is_path": true, + "name": "custom_presets_path", + "description": "UC volume path holding user-authored custom presets, e.g.\n`/Volumes/{catalog}/{schema}/{volume}`. User-provided with no default:\nwhen unset, custom presets are unavailable and only built-in presets apply.", + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscription belongs.", - "required": true, - "is_path": true, + "name": "etag", + "description": "Opaque entity tag for optimistic concurrency. Returned on every read;\npass it back as the Update request's `etag` to make the update\nconditional on the resource being unchanged.", + "is_output_only": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "subscription_id", - "description": "UUID identifying the subscription.", - "required": true, - "is_path": true, + "name": "name", + "is_request_body_field": true, "entity": { "is_string": true } - } - ] - }, - { - "name": "Get", - "description": "Get a draft dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "Get dashboard.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}", - "is_crud_read": true, - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "GetDashboardRequest", - "is_object": true, - "required_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } + }, + { + "name": "per_resource_permissions_enabled", + "description": "Whether users may grant permissions on individual resources rather than\nonly at the Folder level.", + "is_request_body_field": true, + "entity": { + "is_bool": true } - ], - "required_in_url_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } + }, + { + "name": "update_time", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true } - ] - }, - "response": { - "pascal_name": "Dashboard", - "is_object": true - }, - "all_fields": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", - "required": true, - "is_path": true, + "name": "updated_by", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true + "pascal_name": "Principal", + "is_object": true + } + }, + { + "name": "version", + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_int64": true } } ], "required_positional_arguments": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", + "name": "name", "required": true, "is_path": true, "entity": { "is_string": true } + }, + { + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } ] }, { - "name": "GetPublished", - "description": "Get the current published dashboard.\n\nThe caller must be a workspace user with one of the following entitlements:\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", - "summary": "Get published dashboard.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/published", - "is_crud_read": true, + "name": "UpdateDatasource", + "description": "Updates an existing datasource.", + "summary": "Update a datasource.", + "path": "/api/2.0/lakewatch/{name=datasources/*}", + "can_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "GetPublishedDashboardRequest", + "pascal_name": "UpdateDatasourceRequest", "is_object": true, + "has_field_mask": true, + "has_required_request_body_fields": true, "required_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", + "name": "name", + "description": "Resource name of the datasource, in the format `datasources/{datasource_id}`. Unlike the\ndatasource's Unity Catalog location (`catalog_name`, `schema_name`, and `datasource_name`),\nthe name does not change when the datasource or its catalog or schema is renamed in Unity\nCatalog.", "required": true, "is_path": true, "entity": { "is_string": true } - } - ], - "required_in_url_fields": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", + "name": "datasource", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Datasource", + "is_object": true + } + }, + { + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true } } - ] - }, - "response": { - "pascal_name": "PublishedDashboard", - "is_object": true - }, - "all_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ], - "required_positional_arguments": [ - { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ] - }, - { - "name": "GetSchedule", - "description": "Get dashboard schedule.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", - "summary": "Get dashboard schedule.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}", - "is_crud_read": true, - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "GetScheduleRequest", - "is_object": true, - "required_fields": [ + ], + "required_in_url_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "name", + "description": "Resource name of the datasource, in the format `datasources/{datasource_id}`. Unlike the\ndatasource's Unity Catalog location (`catalog_name`, `schema_name`, and `datasource_name`),\nthe name does not change when the datasource or its catalog or schema is renamed in Unity\nCatalog.", "required": true, "is_path": true, "entity": { @@ -170555,608 +178383,571 @@ } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule.", + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", "required": true, - "is_path": true, + "is_query": true, "entity": { - "is_string": true + "is_field_mask": true } } ], - "required_in_url_fields": [ + "required_request_body_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "datasource", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Datasource", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "datasource", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Datasource", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } } - }, - { - "name": "schedule_id", - "description": "UUID identifying the schedule.", - "required": true, - "is_path": true, - "entity": { - "is_string": true + ], + "required_request_body_fields": [ + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } } - } - ] + ] + } }, "response": { - "pascal_name": "Schedule", + "pascal_name": "Datasource", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "CronSchedule", - "is_object": true + "is_string": true } - } - ], - "required_request_body_fields": [ + }, { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "CronSchedule", - "is_object": true + "is_string": true } - } - ] - }, - "all_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "schedule_id", - "description": "UUID identifying the schedule.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ], - "required_positional_arguments": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "schedule_id", - "description": "UUID identifying the schedule.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ] - }, - { - "name": "GetSubscription", - "description": "Get schedule subscription.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", - "summary": "Get schedule subscription.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}/subscriptions/{subscription_id}", - "is_crud_read": true, - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "GetSubscriptionRequest", - "is_object": true, - "required_fields": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscription belongs.", + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscription belongs.", + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Schedule", + "is_object": true } }, { - "name": "subscription_id", - "description": "UUID identifying the subscription.", + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } } ], - "required_in_url_fields": [ + "required_request_body_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscription belongs.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscription belongs.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "subscription_id", - "description": "UUID identifying the subscription.", + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } - } - ] - }, - "response": { - "pascal_name": "Subscription", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ + }, { - "name": "subscriber", - "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Subscriber", + "pascal_name": "Schedule", "is_object": true } - } - ], - "required_request_body_fields": [ + }, { - "name": "subscriber", - "description": "Subscriber details for users and destinations to be added as subscribers to the schedule.", + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Subscriber", - "is_object": true + "is_string": true } } ] }, "all_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscription belongs.", + "name": "datasource", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Datasource", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Schedule", + "is_object": true + } + }, + { + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscription belongs.", - "required": true, - "is_path": true, + "name": "etag", + "description": "Optimistic-concurrency precondition: if set to a non-empty value that does\nnot match the resource's current `etag`, the update is rejected as a\nconflict (HTTP 409). Omit this field or send an empty string to update\nunconditionally.", + "is_query": true, "entity": { "is_string": true } }, { - "name": "subscription_id", - "description": "UUID identifying the subscription.", + "name": "name", + "description": "Resource name of the datasource, in the format `datasources/{datasource_id}`. Unlike the\ndatasource's Unity Catalog location (`catalog_name`, `schema_name`, and `datasource_name`),\nthe name does not change when the datasource or its catalog or schema is renamed in Unity\nCatalog.", "required": true, "is_path": true, "entity": { "is_string": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscription belongs.", + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", "required": true, - "is_path": true, + "is_query": true, "entity": { - "is_string": true + "is_field_mask": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscription belongs.", - "required": true, - "is_path": true, + "name": "annotations", + "description": "Free-form key-value annotations on the datasource, managed by the client.", + "is_request_body_field": true, "entity": { - "is_string": true + "map_value": { + "is_string": true + } } }, { - "name": "subscription_id", - "description": "UUID identifying the subscription.", + "name": "autoloader", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "AutoLoader", + "is_object": true + } + }, + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } - } - ] - }, - { - "name": "List", - "description": "List dashboards.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "List dashboards.", - "path": "/api/2.0/lakeview/dashboards", - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "ListDashboardsRequest", - "is_object": true - }, - "response": { - "pascal_name": "ListDashboardsResponse", - "is_object": true - }, - "all_fields": [ + }, { - "name": "page_size", - "description": "The number of dashboards to return per page.", - "is_query": true, + "name": "compute_mode", + "description": "Compute mode for the datasource's ingestion job. If unset, the `default_compute_mode` of\nthe catalog's datasource configuration applies, or `DS_COMPUTE_PERFORMANCE_OPTIMIZED` if\nthe catalog has none.", + "is_request_body_field": true, "entity": { - "is_int": true + "pascal_name": "DatasourceComputeMode", + "enum": [ + { + "content": "DS_COMPUTE_PERFORMANCE_OPTIMIZED" + }, + { + "content": "DS_COMPUTE_STANDARD" + } + ] } }, { - "name": "page_token", - "description": "A page token, received from a previous `ListDashboards` call.\nThis token can be used to retrieve the subsequent page.", - "is_query": true, + "name": "compute_workspace_id", + "description": "ID of the workspace whose compute runs this datasource's ingestion job and\nowns its associated resources, such as the storage the ingested data lands\nin. Server-assigned.", + "is_output_only": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "show_trashed", - "description": "The flag to include dashboards located in the trash.\nIf unspecified, only active dashboards will be returned.", - "is_query": true, + "name": "create_time", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_bool": true + "is_timestamp": true } }, { - "name": "view", - "description": "`DASHBOARD_VIEW_BASIC` only includes summary metadata from the dashboard.", - "is_query": true, + "name": "created_by", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, "entity": { - "pascal_name": "DashboardView", - "enum": [ - { - "content": "DASHBOARD_VIEW_BASIC" - } - ] - } - } - ], - "pagination": { - "token": { - "poll_field": { - "name": "page_token", - "description": "A page token, received from a previous `ListDashboards` call.\nThis token can be used to retrieve the subsequent page.", - "is_query": true, - "entity": { - "is_string": true - } - } - } - } - }, - { - "name": "ListSchedules", - "description": "List dashboard schedules.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", - "summary": "List dashboard schedules.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules", - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "ListSchedulesRequest", - "is_object": true, - "required_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedules belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ], - "required_in_url_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedules belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } + "pascal_name": "Principal", + "is_object": true } - ] - }, - "response": { - "pascal_name": "ListSchedulesResponse", - "is_object": true - }, - "all_fields": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedules belongs.", - "required": true, - "is_path": true, + "name": "datasource_id", + "description": "Unity Catalog securable ID (a UUID) of the datasource. It never changes, including when the\ndatasource is renamed in Unity Catalog, and is the final segment of `name`.", + "is_output_only": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "page_size", - "description": "The number of schedules to return per page.", - "is_query": true, + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", + "required": true, + "is_request_body_field": true, "entity": { - "is_int": true + "is_string": true } }, { - "name": "page_token", - "description": "A page token, received from a previous `ListSchedules` call.\nUse this to retrieve the subsequent page.", - "is_query": true, + "name": "description", + "description": "Free-form description of the datasource.", + "is_request_body_field": true, "entity": { "is_string": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedules belongs.", - "required": true, - "is_path": true, + "name": "effective_catalog_name", + "description": "Current name of the Unity Catalog catalog that contains the datasource, which reflects\ncatalog renames without a change to `catalog_name`. Populated on get, create, and update\nresponses; list responses omit it.", + "is_output_only": true, + "is_request_body_field": true, "entity": { "is_string": true } - } - ], - "pagination": { - "token": { - "poll_field": { - "name": "page_token", - "description": "A page token, received from a previous `ListSchedules` call.\nUse this to retrieve the subsequent page.", - "is_query": true, - "entity": { - "is_string": true - } - } - } - } - }, - { - "name": "ListSubscriptions", - "description": "List schedule subscriptions.\n\nThe caller must be a workspace user with one of the following\n[entitlements](https://docs.databricks.com/security/auth/entitlements):\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", - "summary": "List schedule subscriptions.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}/subscriptions", - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "ListSubscriptionsRequest", - "is_object": true, - "required_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscriptions belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscriptions belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ], - "required_in_url_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscriptions belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - }, - { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscriptions belongs.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ] - }, - "response": { - "pascal_name": "ListSubscriptionsResponse", - "is_object": true - }, - "all_fields": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscriptions belongs.", - "required": true, - "is_path": true, + "name": "effective_datasource_name", + "description": "Current UC leaf name of the datasource (server-owned). Tracks UC renames so\ncallers can observe the live name without having to update the client-owned\n`datasource_name`; unset until resolved.", + "is_output_only": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "page_size", - "description": "The number of subscriptions to return per page.", - "is_query": true, + "name": "effective_run_as_principal", + "description": "The identity the datasource runs as: the resolved `run_as_principal`, or the requester's\nidentity if `run_as_principal` was omitted on create or cleared on update. Given as a user\nemail or service principal application ID, or as the numeric principal ID if the identity\ncan no longer be resolved. Populated on get, create, and update responses; list responses\nomit it.", + "is_output_only": true, + "is_request_body_field": true, "entity": { - "is_int": true + "is_string": true } }, { - "name": "page_token", - "description": "A page token, received from a previous `ListSubscriptions` call.\nUse this to retrieve the subsequent page.", - "is_query": true, + "name": "effective_schema_name", + "description": "Current name of the Unity Catalog schema that contains the datasource, which reflects\nschema renames without a change to `schema_name`. Populated on get, create, and update\nresponses; list responses omit it.", + "is_output_only": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscriptions belongs.", - "required": true, - "is_path": true, + "name": "etag", + "description": "Opaque entity tag for optimistic concurrency control. Returned by get, create, and update\nresponses and by list responses in the `DATASOURCE_VIEW_FULL` view. To make an update\nconditional on the datasource not having changed since it was read, pass this value as the\nupdate request's `etag`. Changes to `status` do not change the etag.", + "is_output_only": true, + "is_request_body_field": true, "entity": { "is_string": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard which the subscriptions belongs.", - "required": true, - "is_path": true, + "name": "existing_table", + "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true + "pascal_name": "ExistingTable", + "is_object": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule which the subscriptions belongs.", - "required": true, - "is_path": true, + "name": "name", + "description": "Resource name of the datasource, in the format `datasources/{datasource_id}`. Unlike the\ndatasource's Unity Catalog location (`catalog_name`, `schema_name`, and `datasource_name`),\nthe name does not change when the datasource or its catalog or schema is renamed in Unity\nCatalog.", + "is_request_body_field": true, "entity": { "is_string": true } - } - ], - "pagination": { - "token": { - "poll_field": { - "name": "page_token", - "description": "A page token, received from a previous `ListSubscriptions` call.\nUse this to retrieve the subsequent page.", - "is_query": true, - "entity": { - "is_string": true - } - } - } - } - }, - { - "name": "Migrate", - "description": "Deprecated: Legacy dashboard migration is no longer supported. Use Lakeview (AI/BI)\ndashboards instead.", - "summary": "Migrate dashboard.", - "path": "/api/2.0/lakeview/dashboards/migrate", - "can_use_json": true, - "is_crud_create": true, - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "MigrateDashboardRequest", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ - { - "name": "source_dashboard_id", - "description": "UUID of the dashboard to be migrated.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } + }, + { + "name": "owner", + "description": "Unity Catalog owner of the datasource, assigned by the server. Create responses omit it.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "Principal", + "is_object": true } - ], - "required_request_body_fields": [ - { - "name": "source_dashboard_id", - "description": "UUID of the dashboard to be migrated.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true + }, + { + "name": "parsers", + "description": "Parsers that schematize the ingested data. Each record is matched against the parsers in\norder and written to the parsed table of the first parser that it matches. Existing-table\nand Unity Catalog connection datasources require at least one parser; an Auto Loader\ndatasource with no parsers writes only its raw table.", + "is_request_body_field": true, + "entity": { + "pascal_name": "ParserRefList", + "array_value": { + "pascal_name": "ParserRef", + "is_object": true } } - ] - }, - "response": { - "pascal_name": "Dashboard", - "is_object": true - }, - "all_fields": [ + }, { - "name": "display_name", - "description": "Display name for the new Lakeview dashboard.", + "name": "run_as_principal", + "description": "The user or service principal that the datasource runs as, given as a user email or\nservice principal application ID. When it is supplied on create or update, the requester\nmust be authorized to run the datasource as that principal, or the request is rejected.\nWhen it is omitted on create, the datasource runs as the requester. On update, a mask that\nincludes `run_as_principal` without a value clears it, so the datasource runs as the\nrequester; a mask that omits it keeps the current identity. Reads return the value as\nsupplied; the identity the datasource runs as is reported in `effective_run_as_principal`.", "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "parent_path", - "description": "The workspace path of the folder to contain the migrated Lakeview dashboard.", + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", + "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Schedule", + "is_object": true } }, { - "name": "source_dashboard_id", - "description": "UUID of the dashboard to be migrated.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", "required": true, "is_request_body_field": true, "entity": { @@ -171164,87 +178955,57 @@ } }, { - "name": "update_parameter_syntax", - "description": "Flag to indicate if mustache parameter syntax ({{ param }}) should be auto-updated\nto named syntax (:param) when converting datasets in the dashboard.", + "name": "status", + "description": "Runtime status of the jobs and pipelines that run this datasource.", + "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_bool": true + "pascal_name": "DatasourceStatus", + "is_object": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "source_dashboard_id", - "description": "UUID of the dashboard to be migrated.", - "required": true, + "name": "unity_catalog_connection", "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true - } - } - ] - }, - { - "name": "Publish", - "description": "Publish the current draft dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "Publish dashboard.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/published", - "can_use_json": true, - "is_crud_create": true, - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "PublishRequest", - "is_object": true, - "required_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to be published.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } + "pascal_name": "UnityCatalogConnection", + "is_object": true } - ], - "required_in_url_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to be published.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } + }, + { + "name": "update_time", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true } - ] - }, - "response": { - "pascal_name": "PublishedDashboard", - "is_object": true - }, - "all_fields": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to be published.", - "required": true, - "is_path": true, + "name": "updated_by", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true + "pascal_name": "Principal", + "is_object": true } }, { - "name": "embed_credentials", - "description": "Flag to indicate if the publisher's credentials should be embedded in the\npublished dashboard. These embedded credentials will be used to execute the\npublished dashboard's queries.", + "name": "version", + "description": "Version number of the datasource, incremented on each update. Informational only; use\n`etag` for optimistic concurrency control.", + "is_output_only": true, "is_request_body_field": true, "entity": { - "is_bool": true + "is_int64": true } }, { "name": "warehouse_id", - "description": "The ID of the warehouse that can be used to override the warehouse which\nwas set in the draft.", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", + "required": true, "is_request_body_field": true, "entity": { "is_string": true @@ -171253,205 +179014,65 @@ ], "required_positional_arguments": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to be published.", + "name": "name", + "description": "Resource name of the datasource, in the format `datasources/{datasource_id}`. Unlike the\ndatasource's Unity Catalog location (`catalog_name`, `schema_name`, and `datasource_name`),\nthe name does not change when the datasource or its catalog or schema is renamed in Unity\nCatalog.", "required": true, "is_path": true, "entity": { "is_string": true } - } - ] - }, - { - "name": "Revert", - "description": "Revert a dashboard's definition in draft mode to the last published version.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "Revert dashboard.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/revert", - "can_use_json": true, - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "RevertDashboardRequest", - "is_object": true, - "required_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ], - "required_in_url_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ] - }, - "response": { - "pascal_name": "RevertDashboardResponse", - "is_object": true - }, - "all_fields": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", "required": true, - "is_path": true, + "is_query": true, "entity": { - "is_string": true + "is_field_mask": true } }, { - "name": "etag", - "description": "The etag for the dashboard. Optionally, it can be provided to verify that the dashboard\nhas not been modified from its last retrieval.", - "is_computed": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - } - ], - "required_positional_arguments": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the catalog's current name\nis reported in `effective_catalog_name`.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } - } - ] - }, - { - "name": "Trash", - "description": "Trash a dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "Trash dashboard.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}", - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "TrashDashboardRequest", - "is_object": true, - "required_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ], - "required_in_url_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ] - }, - "response": { - "pascal_name": "TrashDashboardResponse", - "is_object": true, - "is_empty_response": true - }, - "all_fields": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the datasource. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the schema's current name\nis reported in `effective_schema_name`.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", + "name": "datasource_name", + "description": "Name of the datasource in Unity Catalog, unique within its schema. Required on create and\ncannot be changed afterward. Reads return the value as supplied; the datasource's current\nUnity Catalog name, which reflects renames, is reported in `effective_datasource_name`.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } - } - ] - }, - { - "name": "Unpublish", - "description": "Unpublish the dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "Unpublish dashboard.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/published", - "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "request": { - "pascal_name": "UnpublishDashboardRequest", - "is_object": true, - "required_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ], - "required_in_url_fields": [ - { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", - "required": true, - "is_path": true, - "entity": { - "is_string": true - } - } - ] - }, - "response": { - "pascal_name": "UnpublishDashboardResponse", - "is_object": true, - "is_empty_response": true - }, - "all_fields": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", + "name": "schedule", + "description": "Schedule on which the datasource's ingestion job runs. A datasource cannot be paused, so a\nrequest that sets `schedule.enabled` to `false` is rejected. Continuous schedules are not\nsupported for Unity Catalog connection datasources.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Schedule", + "is_object": true } - } - ], - "required_positional_arguments": [ + }, { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", + "name": "warehouse_id", + "description": "ID of the SQL warehouse that runs the checks Lakewatch performs to validate a create or update\nrequest, such as source and destination access checks. Required and non-blank on every create\nand update request; there is no default warehouse. The requester must be able to use the\nwarehouse. Used only for those checks: it is not stored, is not returned on reads, and does\nnot affect the compute that runs the ingestion job.", "required": true, - "is_path": true, + "is_request_body_field": true, "entity": { "is_string": true } @@ -171459,180 +179080,155 @@ ] }, { - "name": "Update", - "description": "Update a draft dashboard.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "Update dashboard.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}", + "name": "UpdateDatasourceConfig", + "description": "Updates the datasource ingestion configuration for a catalog.", + "summary": "Update the datasource config for a catalog.", + "path": "/api/2.0/lakewatch/{name=catalogs/*/datasourceConfig}", "can_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "UpdateDashboardRequest", + "pascal_name": "UpdateDatasourceConfigRequest", "is_object": true, + "has_field_mask": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", + "name": "name", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } }, { - "name": "dashboard", + "name": "datasource_config", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Dashboard", + "pascal_name": "DatasourceConfig", "is_object": true } + }, + { + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } ], "required_in_url_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", + "name": "name", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } + }, + { + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } ], "required_request_body_fields": [ { - "name": "dashboard", + "name": "datasource_config", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Dashboard", + "pascal_name": "DatasourceConfig", "is_object": true } } ] }, "request_body_field": { - "name": "dashboard", + "name": "datasource_config", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Dashboard", + "pascal_name": "DatasourceConfig", "is_object": true } }, "response": { - "pascal_name": "Dashboard", + "pascal_name": "DatasourceConfig", "is_object": true }, "all_fields": [ { - "name": "dashboard", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "Dashboard", - "is_object": true - } - }, - { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", - "required": true, - "is_path": true, - "is_output_only": true, - "entity": { - "is_string": true - } - }, - { - "name": "dataset_catalog", - "description": "Sets the default catalog for all datasets in this dashboard.\nDoes not impact table references that use fully qualified catalog names (ex: samples.nyctaxi.trips).\nLeave blank to keep each dataset’s existing configuration.", - "is_query": true, - "entity": { - "is_string": true - } - }, - { - "name": "dataset_schema", - "description": "Sets the default schema for all datasets in this dashboard.\nDoes not impact table references that use fully qualified schema names (ex: nyctaxi.trips).\nLeave blank to keep each dataset’s existing configuration.", - "is_query": true, - "entity": { - "is_string": true - } - }, - { - "name": "create_time", - "description": "The timestamp of when the dashboard was created.", - "is_computed": true, - "is_output_only": true, + "name": "datasource_config", + "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "DatasourceConfig", + "is_object": true } }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", - "is_computed": true, - "is_output_only": true, - "is_request_body_field": true, + "name": "etag", + "description": "Optimistic-concurrency precondition: if set and it does not match the\nresource's current `etag`, the update is rejected as a conflict (HTTP 409).", + "is_query": true, "entity": { "is_string": true } }, { - "name": "display_name", - "description": "The display name of the dashboard.", - "is_request_body_field": true, + "name": "name", + "required": true, + "is_path": true, "entity": { "is_string": true } }, { - "name": "etag", - "description": "The etag for the dashboard. Can be optionally provided on updates to ensure that the dashboard\nhas not been modified since the last read.\nThis field is excluded in List Dashboards responses.", - "is_computed": true, - "is_request_body_field": true, + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "required": true, + "is_query": true, "entity": { - "is_string": true + "is_field_mask": true } }, { - "name": "lifecycle_state", - "description": "The state of the dashboard resource. Used for tracking trashed status.", - "is_computed": true, - "is_output_only": true, + "name": "default_compute_mode", + "description": "Default compute mode applied to datasource ingestion jobs when the\nindividual datasource doesn't override it. v1\n`datasources.defaultComputeMode`.", "is_request_body_field": true, "entity": { - "pascal_name": "LifecycleState", + "pascal_name": "DatasourceComputeMode", "enum": [ { - "content": "ACTIVE" + "content": "DS_COMPUTE_PERFORMANCE_OPTIMIZED" }, { - "content": "TRASHED" + "content": "DS_COMPUTE_STANDARD" } ] } }, { - "name": "parent_path", - "description": "The workspace path of the folder containing the dashboard. Includes leading slash and no\ntrailing slash.\nThis field is excluded in List Dashboards responses.", - "is_computed": true, + "name": "default_folder", + "description": "Schema name of the registered folder (in this catalog) that a new datasource\nis placed in when the request does not specify a schema. Must name a schema\nregistered as a folder. Omit to clear. Reads return the value as supplied; the\nfolder's current schema name is reported in `effective_default_folder`.", "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "path", - "description": "The workspace path of the dashboard asset, including the file name.\nExported dashboards always have the file extension `.lvdash.json`.\nThis field is excluded in List Dashboards responses.", - "is_computed": true, + "name": "effective_default_folder", + "description": "The current schema name of the `default_folder` folder. Tracks UC schema\nrenames. Unset when no default is configured, or when the folder's schema no\nlonger exists or is not visible to the caller.", "is_output_only": true, "is_request_body_field": true, "entity": { @@ -171640,8 +179236,16 @@ } }, { - "name": "serialized_dashboard", - "description": "The contents of the dashboard in serialized string form.\nThis field is excluded in List Dashboards responses.\nUse the [get dashboard API](https://docs.databricks.com/api/workspace/lakeview/get)\nto retrieve an example response, which includes the `serialized_dashboard` field.\nThis field provides the structure of the JSON string that represents the dashboard's\nlayout and components.", + "name": "etag", + "description": "Opaque entity tag for optimistic concurrency. Returned on every read;\npass it back as the Update request's `etag` to make the update\nconditional on the resource being unchanged.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "name", "is_request_body_field": true, "entity": { "is_string": true @@ -171649,145 +179253,299 @@ }, { "name": "update_time", - "description": "The timestamp of when the dashboard was last updated by the user.\nThis field is excluded in List Dashboards responses.", - "is_computed": true, "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true + "is_timestamp": true } }, { - "name": "warehouse_id", - "description": "The warehouse ID used to run the dashboard.", + "name": "updated_by", + "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true + "pascal_name": "Principal", + "is_object": true + } + }, + { + "name": "version", + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_int64": true } } ], "required_positional_arguments": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard.", + "name": "name", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } + }, + { + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } ] }, { - "name": "UpdateSchedule", - "description": "Update dashboard schedule.\n\nRequires the [Databricks SQL access](https://docs.databricks.com/security/auth/entitlements)\nentitlement. Grant Databricks SQL access in addition to Workspace access.", - "summary": "Update dashboard schedule.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/schedules/{schedule_id}", + "name": "UpdateRule", + "description": "Updates an existing rule.", + "summary": "Update a rule.", + "path": "/api/2.0/lakewatch/{name=rules/*}", "can_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "GA", - "cli_launch_stage_display": "GA", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "UpdateScheduleRequest", + "pascal_name": "UpdateRuleRequest", "is_object": true, + "has_field_mask": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "name", + "description": "Resource name, in the form `rules/{rule_id}`. Assigned by the server on create; required\non update.", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule.", + "name": "rule", + "description": "The rule with its new field values. `rule.name` identifies the rule to\nupdate.", "required": true, - "is_path": true, - "is_output_only": true, + "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Rule", + "is_object": true } }, { - "name": "schedule", - "description": "The schedule to update.", + "name": "update_mask", + "description": "The set of fields to update. Only fields named in the mask are modified.", "required": true, - "is_request_body_field": true, + "is_query": true, "entity": { - "pascal_name": "Schedule", - "is_object": true + "is_field_mask": true } } ], "required_in_url_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "name", + "description": "Resource name, in the form `rules/{rule_id}`. Assigned by the server on create; required\non update.", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule.", + "name": "update_mask", + "description": "The set of fields to update. Only fields named in the mask are modified.", "required": true, - "is_path": true, - "is_output_only": true, + "is_query": true, "entity": { - "is_string": true + "is_field_mask": true } } ], "required_request_body_fields": [ { - "name": "schedule", - "description": "The schedule to update.", + "name": "rule", + "description": "The rule with its new field values. `rule.name` identifies the rule to\nupdate.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Schedule", + "pascal_name": "Rule", "is_object": true } } ] }, "request_body_field": { - "name": "schedule", - "description": "The schedule to update.", + "name": "rule", + "description": "The rule with its new field values. `rule.name` identifies the rule to\nupdate.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Schedule", + "pascal_name": "Rule", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "CronSchedule", + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", "is_object": true } } ], "required_request_body_fields": [ { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "CronSchedule", + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", "is_object": true } } @@ -171795,29 +179553,167 @@ } }, "response": { - "pascal_name": "Schedule", + "pascal_name": "Rule", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "CronSchedule", + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", "is_object": true } } ], "required_request_body_fields": [ { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "CronSchedule", + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", "is_object": true } } @@ -171825,44 +179721,189 @@ }, "all_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "etag", + "description": "Optimistic-concurrency token from the latest read. A non-empty token that\ndoes not match the current `etag` rejects the update as a conflict (HTTP 409).\nOmit this field or provide an empty string to update unconditionally.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "name", + "description": "Resource name, in the form `rules/{rule_id}`. Assigned by the server on create; required\non update.", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } }, { - "name": "schedule", - "description": "The schedule to update.", + "name": "rule", + "description": "The rule with its new field values. `rule.name` identifies the rule to\nupdate.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "Schedule", + "pascal_name": "Rule", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "CronSchedule", + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", "is_object": true } } ], "required_request_body_fields": [ { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "CronSchedule", + "is_string": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", "is_object": true } } @@ -171870,39 +179911,127 @@ } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule.", + "name": "update_mask", + "description": "The set of fields to update. Only fields named in the mask are modified.", "required": true, - "is_path": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + }, + { + "name": "annotations", + "description": "Free-form client-managed key/value annotations.", + "is_request_body_field": true, + "entity": { + "map_value": { + "is_string": true + } + } + }, + { + "name": "batch", + "description": "Batch SQL rule input.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "RuleInputBatch", + "is_object": true + } + }, + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "category", + "description": "Free-form rule category.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "compute_workspace_id", + "description": "ID of the workspace whose compute runs this rule's jobs and owns its\nassociated resources, such as the SQL warehouse a scheduled rule runs on.\nServer-assigned; a rule's warehouse can only be changed from this workspace.", "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "content_resource_id", + "description": "Immutable UUIDv4 identifying the authored content resource installed as this rule.", + "is_request_body_field": true, "entity": { "is_string": true } }, { "name": "create_time", - "description": "A timestamp indicating when the schedule was created.", - "is_computed": true, + "description": "Time the rule was created.", "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "is_string": true + "is_timestamp": true } }, { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", - "required": true, + "name": "created_by", + "description": "Principal that created the rule.", + "is_output_only": true, "is_request_body_field": true, + "is_optional_object": true, "entity": { - "pascal_name": "CronSchedule", + "pascal_name": "Principal", "is_object": true } }, { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", - "is_computed": true, + "name": "deduplication", + "description": "Signal deduplication mode.", + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleDeduplication", + "enum": [ + { + "content": "DEDUPLICATION_DEFAULT" + }, + { + "content": "DEDUPLICATION_DISABLED" + }, + { + "content": "DEDUPLICATION_ENABLED" + } + ] + } + }, + { + "name": "deduplication_time_window", + "description": "Time window for deduplication, such as `1h`, `24h`, `7d`, or `automatic`.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "description", + "description": "Free-form description.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_catalog_name", + "description": "Current name of the Unity Catalog catalog that contains the rule. Reflects catalog renames,\nwhich do not change `catalog_name`. Unset until resolved.", "is_output_only": true, "is_request_body_field": true, "entity": { @@ -171910,8 +180039,27 @@ } }, { - "name": "display_name", - "description": "The display name for schedule.", + "name": "effective_rule_name", + "description": "Current UC leaf name of the rule (server-owned). Tracks UC renames so callers\ncan observe the live name without having to update the client-owned\n`rule_name`; unset until resolved.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_run_as_principal", + "description": "The identity this rule's job runs as: the resolved `run_as_principal`, or the\nrequester's identity when it was omitted on create or cleared on update. The value is a user\nemail or service-principal application ID, falling back to the numeric principal ID if that\nidentity can no longer be resolved. Populated on single-rule reads (get/create/update); list\nresponses omit it.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_schema_name", + "description": "Current name of the Unity Catalog schema that contains the rule. Reflects schema renames,\nwhich do not change `schema_name`. Unset until resolved.", + "is_output_only": true, "is_request_body_field": true, "entity": { "is_string": true @@ -171919,43 +180067,110 @@ }, { "name": "etag", - "description": "The etag for the schedule. Must be left empty on create, must be provided on updates to ensure\nthat the schedule has not been modified since the last read, and can be optionally provided on delete.", - "is_computed": true, + "description": "Opaque entity tag for optimistic concurrency. Content-version ETags change on\nuser edits and remain stable across runtime status updates.", + "is_output_only": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "pause_status", - "description": "The status indicates whether this schedule is paused or not.", + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "SchedulePauseStatus", + "pascal_name": "RuleFidelity", "enum": [ { - "content": "PAUSED" + "content": "FIDELITY_DEVELOPMENT" }, { - "content": "UNPAUSED" + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" } ] } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule.", - "is_computed": true, - "is_output_only": true, + "name": "mitre", + "description": "Up to 64 MITRE ATT\u0026CK mappings, producing at most 192 flattened alert tags.", + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleMitreMappingList", + "array_value": { + "pascal_name": "RuleMitreMapping", + "is_object": true + } + } + }, + { + "name": "name", + "description": "Resource name, in the form `rules/{rule_id}`. Assigned by the server on create; required\non update.", "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "update_time", - "description": "A timestamp indicating when the schedule was last updated.", - "is_computed": true, + "name": "objective", + "description": "Long-form description of what this rule detects.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "original_content_pack", + "description": "Reference to the content pack this rule was originally installed from.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "ContentPackReference", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", + "is_object": true + } + }, + { + "name": "owner", + "description": "Unity Catalog owner of the rule. Assigned by the server. Populated by `GetRule`.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "Principal", + "is_object": true + } + }, + { + "name": "references", + "description": "Ordered reference URLs carried from the authored rule metadata. A maximum of three references\nof up to 512 characters each is supported. Requests exceeding these limits are rejected.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "rule_id", + "description": "Unity Catalog securable UUID of the rule, and the last segment of `name`. Never changes,\nincluding when the rule's catalog or schema is renamed.", "is_output_only": true, "is_request_body_field": true, "entity": { @@ -171963,105 +180178,318 @@ } }, { - "name": "warehouse_id", - "description": "The warehouse id to run the dashboard with for the schedule.", + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "run_as_principal", + "description": "The principal whose identity this rule's job runs as, given as a\nuser email or service-principal application ID. When supplied on\ncreate/update, Lakewatch resolves the principal, records it on the rule, and\ncreates the delegation to run as that principal — the requester must be\nauthorized to delegate to it, or the request is rejected. When omitted on\ncreate, the requester's own identity is used. An update whose mask does not\ninclude `run_as_principal` keeps the current identity, and the requester must\nstill be authorized to delegate to it; an editor who is not must supply a\nrun_as_principal they can delegate to (for example, their own identity), or\nclear it, either of which reassigns the rule. An update whose mask includes\n`run_as_principal` but supplies no value clears it: the rule then runs as the\nrequester, exactly as when it is omitted on create. Reads return the value as\nsupplied; the identity the rule runs as is reported in\n`effective_run_as_principal`.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "runbook", + "description": "Long-form operational guidance carried from the authored rule metadata. Supports up to 4096\ncharacters. Requests exceeding this limit are rejected.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, "is_request_body_field": true, "entity": { "is_string": true } + }, + { + "name": "status", + "description": "Read-only lifecycle status.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "ResourceStatus", + "is_object": true + } + }, + { + "name": "suppress_until_time", + "description": "If set, this rule's signals do not open new alerts until the given time.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "timerange", + "description": "Time-range configuration for batch rules. If unset, the execution time range is extended by\na fixed `15m` lookback.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "RuleTimeRange", + "is_object": true + } + }, + { + "name": "update_time", + "description": "Time the rule was last updated.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "updated_by", + "description": "Principal that last updated the rule.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "Principal", + "is_object": true + } + }, + { + "name": "version", + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } } ], "required_positional_arguments": [ { - "name": "dashboard_id", - "description": "UUID identifying the dashboard to which the schedule belongs.", + "name": "name", + "description": "Resource name, in the form `rules/{rule_id}`. Assigned by the server on create; required\non update.", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } }, { - "name": "schedule_id", - "description": "UUID identifying the schedule.", + "name": "update_mask", + "description": "The set of fields to update. Only fields named in the mask are modified.", "required": true, - "is_path": true, - "is_output_only": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + }, + { + "name": "catalog_name", + "description": "Name of the Unity Catalog catalog that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the catalog's current name is reported in\n`effective_catalog_name`.", + "required": true, + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "cron_schedule", - "description": "The cron expression describing the frequency of the periodic refresh for this schedule.", + "name": "schema_name", + "description": "Name of the Unity Catalog schema that contains the rule. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the schema's current name is reported in\n`effective_schema_name`.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "CronSchedule", + "is_string": true + } + }, + { + "name": "rule_name", + "description": "Name of the rule within its Unity Catalog schema. Required. Cannot be changed after\ncreation. Reads return the value as supplied; the current UC name is reported in\n`effective_rule_name`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "severity", + "description": "Free-form severity label, such as `Informational`, `Medium`, `High`, or\n`Critical`.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "fidelity", + "description": "Signal quality for this rule.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleFidelity", + "enum": [ + { + "content": "FIDELITY_DEVELOPMENT" + }, + { + "content": "FIDELITY_HIGH" + }, + { + "content": "FIDELITY_INVESTIGATIVE" + }, + { + "content": "FIDELITY_MEDIUM" + } + ] + } + }, + { + "name": "schedule", + "description": "When the rule executes.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "output", + "description": "What to record in each signal.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleOutput", "is_object": true } } ] - } - ] - }, - { - "id": "dashboards.LakeviewEmbedded", - "name": "LakeviewEmbedded", - "description": "Token-based Lakeview APIs for embedding dashboards in external applications.", - "package": { - "name": "dashboards" - }, - "docs_group": "dashboards", - "launch_stage": "GA", - "cli_launch_stage_display": "GA", - "methods": [ + }, { - "name": "GetPublishedDashboardTokenInfo", - "description": "Get a required authorization details and scopes of a published dashboard to mint an OAuth token.\n\nThe caller must be a workspace user with one of the following entitlements:\nWorkspace access, Databricks SQL access, or Consumer access.\n\nAccount-level users who are not members of the workspace cannot call this\nendpoint, even if the dashboard has been shared with them.", - "summary": "Read information of a published dashboard to mint an OAuth token.", - "path": "/api/2.0/lakeview/dashboards/{dashboard_id}/published/tokeninfo", - "is_crud_read": true, + "name": "UpdateRuleConfig", + "description": "Updates the detection-rule configuration for a catalog.", + "summary": "Update the rule config for a catalog.", + "path": "/api/2.0/lakewatch/{name=catalogs/*/ruleConfig}", + "can_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_PREVIEW", - "cli_launch_stage_label": "*Public Preview*", - "cli_launch_stage_banner": "This command is in Public Preview and may change without notice.", - "cli_launch_stage_display": "Public Preview", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { - "pascal_name": "GetPublishedDashboardTokenInfoRequest", + "pascal_name": "UpdateRuleConfigRequest", "is_object": true, + "has_field_mask": true, + "has_required_request_body_fields": true, "required_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", + "name": "name", "required": true, "is_path": true, "entity": { "is_string": true } + }, + { + "name": "rule_config", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleConfig", + "is_object": true + } + }, + { + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } ], "required_in_url_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", + "name": "name", "required": true, "is_path": true, "entity": { "is_string": true } + }, + { + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + } + ], + "required_request_body_fields": [ + { + "name": "rule_config", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleConfig", + "is_object": true + } } ] }, + "request_body_field": { + "name": "rule_config", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleConfig", + "is_object": true + } + }, "response": { - "pascal_name": "GetPublishedDashboardTokenInfoResponse", + "pascal_name": "RuleConfig", "is_object": true }, "all_fields": [ { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", + "name": "etag", + "description": "Optimistic-concurrency precondition: if set and it does not match the\nresource's current `etag`, the update is rejected as a conflict (HTTP 409).", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "name", "required": true, "is_path": true, "entity": { @@ -172069,31 +180497,143 @@ } }, { - "name": "external_value", - "description": "Provided external value to be included in the custom claim.", + "name": "rule_config", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "RuleConfig", + "is_object": true + } + }, + { + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "required": true, "is_query": true, + "entity": { + "is_field_mask": true + } + }, + { + "name": "default_folder", + "description": "Schema name of the registered folder (in this catalog) that a new rule is\nplaced in when the request does not specify a schema. Must name a schema\nregistered as a folder. Omit to clear. Reads return the value as supplied; the\nfolder's current schema name is reported in `effective_default_folder`.", + "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "external_viewer_id", - "description": "Provided external viewer id to be included in the custom claim.", - "is_query": true, + "name": "default_schedule", + "description": "Default schedule for rules that don't specify one.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "RuleSchedule", + "is_object": true + } + }, + { + "name": "default_signal_collation_window", + "description": "Default duration string for signal deduplication when a rule\ndoesn't override it — compact day/hour/minute/second components, e.g.\n`5d`, `1h`. Reads return the value as supplied; there is no server default,\nso it is unset until set. An empty value clears it.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "detection_categories", + "description": "Available detection categories a rule can be tagged with. Reads return the\nvalue as supplied. When empty, rules can be tagged with the default categories:\n`Static Signature`, `Fuzzy Signature`, `Behavioral`, `Statistical`, and\n`Learning (AI/ML)`. The categories in effect are reported in\n`effective_detection_categories`.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "effective_default_folder", + "description": "The current schema name of the `default_folder` folder. Tracks UC schema\nrenames. Unset when no default is configured, or when the folder's schema no\nlonger exists or is not visible to the caller.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "effective_detection_categories", + "description": "The detection categories in effect: `detection_categories` when set,\notherwise the default categories.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "etag", + "description": "Opaque entity tag for optimistic concurrency. Returned on every read;\npass it back as the Update request's `etag` to make the update\nconditional on the resource being unchanged.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "name", + "is_request_body_field": true, "entity": { "is_string": true } + }, + { + "name": "update_time", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "updated_by", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "Principal", + "is_object": true + } + }, + { + "name": "version", + "description": "Monotonic version, bumped on each update. Informational; use `etag` for\noptimistic concurrency.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_int64": true + } } ], "required_positional_arguments": [ { - "name": "dashboard_id", - "description": "UUID identifying the published dashboard.", + "name": "name", "required": true, "is_path": true, "entity": { "is_string": true } + }, + { + "name": "update_mask", + "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } } ] } @@ -245178,6 +253718,10 @@ } ], "workspace_docs_groups": [ + { + "key": "lakewatch", + "display_name": "Lakewatch" + }, { "key": "workspace", "display_name": "Databricks Workspace" diff --git a/.gitattributes b/.gitattributes index 9fca42cbb56..21eb823a61d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -120,6 +120,7 @@ cmd/workspace/jobs/jobs.go linguist-generated=true cmd/workspace/knowledge-assistants/knowledge-assistants.go linguist-generated=true cmd/workspace/lakeview-embedded/lakeview-embedded.go linguist-generated=true cmd/workspace/lakeview/lakeview.go linguist-generated=true +cmd/workspace/lakewatch/lakewatch.go linguist-generated=true cmd/workspace/libraries/libraries.go linguist-generated=true cmd/workspace/llm-proxy-partner-powered-workspace/llm-proxy-partner-powered-workspace.go linguist-generated=true cmd/workspace/materialized-features/materialized-features.go linguist-generated=true diff --git a/.nextchanges/dependency-updates/go-sdk-v0.194.0.md b/.nextchanges/dependency-updates/go-sdk-v0.194.0.md new file mode 100644 index 00000000000..4a361e8d520 --- /dev/null +++ b/.nextchanges/dependency-updates/go-sdk-v0.194.0.md @@ -0,0 +1 @@ +* Update the Go SDK to [v0.194.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.194.0). diff --git a/bundle/internal/validation/generated/enum_fields.go b/bundle/internal/validation/generated/enum_fields.go index 0e704308829..6952cb431ce 100644 --- a/bundle/internal/validation/generated/enum_fields.go +++ b/bundle/internal/validation/generated/enum_fields.go @@ -111,7 +111,7 @@ var EnumFields = map[string][]string{ "resources.jobs.*.tasks[*].ai_function_task.ai_extract.mode": {"MODE_PRECISION"}, "resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.description_element_types[*]": {"DESCRIPTION_ELEMENT_TYPE_ALL", "DESCRIPTION_ELEMENT_TYPE_FIGURE"}, "resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].compute.accelerator_type": {"GPU_1xA10", "GPU_1xH100", "GPU_8xB300", "GPU_8xH100"}, - "resources.jobs.*.tasks[*].ai_runtime_task.priority_class": {"BEST_EFFORT", "CRITICAL", "NORMAL"}, + "resources.jobs.*.tasks[*].ai_runtime_task.priority_class": {"BEST_EFFORT", "NORMAL"}, "resources.jobs.*.tasks[*].compute.hardware_accelerator": {"GPU_1xA10", "GPU_1xH100", "GPU_8xB300", "GPU_8xH100"}, "resources.jobs.*.tasks[*].condition_task.op": {"EQUAL_TO", "GREATER_THAN", "GREATER_THAN_OR_EQUAL", "LESS_THAN", "LESS_THAN_OR_EQUAL", "NOT_EQUAL"}, "resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.file_format": {"FILE_FORMAT_CSV", "FILE_FORMAT_EXCEL", "FILE_FORMAT_TSV"}, @@ -120,7 +120,7 @@ var EnumFields = map[string][]string{ "resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.mode": {"MODE_PRECISION"}, "resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.description_element_types[*]": {"DESCRIPTION_ELEMENT_TYPE_ALL", "DESCRIPTION_ELEMENT_TYPE_FIGURE"}, "resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].compute.accelerator_type": {"GPU_1xA10", "GPU_1xH100", "GPU_8xB300", "GPU_8xH100"}, - "resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.priority_class": {"BEST_EFFORT", "CRITICAL", "NORMAL"}, + "resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.priority_class": {"BEST_EFFORT", "NORMAL"}, "resources.jobs.*.tasks[*].for_each_task.task.compute.hardware_accelerator": {"GPU_1xA10", "GPU_1xH100", "GPU_8xB300", "GPU_8xH100"}, "resources.jobs.*.tasks[*].for_each_task.task.condition_task.op": {"EQUAL_TO", "GREATER_THAN", "GREATER_THAN_OR_EQUAL", "LESS_THAN", "LESS_THAN_OR_EQUAL", "NOT_EQUAL"}, "resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.file_format": {"FILE_FORMAT_CSV", "FILE_FORMAT_EXCEL", "FILE_FORMAT_TSV"}, diff --git a/bundle/schema/jsonschema.json b/bundle/schema/jsonschema.json index 93c4d40e6a3..8b6cf2ab1bf 100644 --- a/bundle/schema/jsonschema.json +++ b/bundle/schema/jsonschema.json @@ -1291,7 +1291,7 @@ "x-databricks-launch-stage": "GA" }, "node_type_id": { - "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.", + "description": "This field encodes, through a single value, the resources available to each of\nthe Spark nodes in this cluster. For example, the Spark nodes can be provisioned\nand optimized for memory or compute intensive workloads. A list of available node\ntypes can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.\nThe node type cannot be changed after the pool is created.", "$ref": "#/$defs/string", "x-databricks-launch-stage": "GA" }, @@ -9653,7 +9653,7 @@ "description": "Destination of the data quality monitoring notification.", "properties": { "destination_ids": { - "description": "The notification-destination IDs (Slack / Teams / webhook) to send the notification to. The\ndestinations must already exist in the workspace; a workspace admin creates them. A maximum of\n25 destination IDs is supported.\nOnly supported on schema monitors, via `anomaly_detection_config`; rejected on table monitors.", + "description": "The notification-destination IDs (Slack / Teams / webhook / Asana / ServiceNow / AWS\nEventBridge) to send the notification to. The destinations must already exist in the\nworkspace; a workspace admin creates them. A maximum of 25 destination IDs is supported.\nOnly supported on schema monitors, via `anomaly_detection_config`; rejected on table monitors.", "$ref": "#/$defs/slice/string", "x-databricks-launch-stage": "GA" }, @@ -9806,40 +9806,34 @@ "description": "Configuration for a task that runs the `ai_classify` function.\n\nThe label set comes from exactly one of two places: `inline_labels`, which\nholds up to 10 labels, or a Unity Catalog table named by `label_table`. Use\n`label_table` for a larger label set.", "properties": { "enable_confidence_scores": { - "description": "[Private Preview] When true, includes a per-label confidence score in the response.", + "description": "[Beta] When true, includes a per-label confidence score in the response.", "$ref": "#/$defs/bool", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "enable_rationales": { - "description": "[Private Preview] When true, includes a rationale explaining each classification in the response.", + "description": "[Beta] When true, includes a rationale explaining each classification in the response.", "$ref": "#/$defs/bool", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "inline_labels": { - "description": "[Private Preview] Labels listed inline, for a small label set.", + "description": "[Beta] Labels listed inline, for a small label set.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.AiClassifyFunctionInlineLabels", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "instructions": { - "description": "[Private Preview] Global description of the task and domain, passed to the model to improve\nclassification quality.", + "description": "[Beta] Global description of the task and domain, passed to the model to improve\nclassification quality.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "multilabel": { - "description": "[Private Preview] When true, more than one label can be returned for each input.", + "description": "[Beta] When true, more than one label can be returned for each input.", "$ref": "#/$defs/bool", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "version": { - "description": "[Private Preview] The ai_classify function version to invoke (for example, `2.1`).", + "description": "[Beta] The ai_classify function version to invoke (for example, `2.1`).", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false, @@ -9860,10 +9854,9 @@ "description": "A label set listed inline.", "properties": { "labels": { - "description": "[Private Preview] The labels an input can be classified as. At least two labels are required\nunless `multilabel` is true, which also accepts a single label.", + "description": "[Beta] The labels an input can be classified as. At least two labels are required\nunless `multilabel` is true, which also accepts a single label.", "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/jobs.AiClassifyFunctionLabel", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false, @@ -9884,16 +9877,14 @@ "description": "One label the input can be classified as.", "properties": { "description": { - "description": "[Private Preview] Guidance describing what belongs under this label.", + "description": "[Beta] Guidance describing what belongs under this label.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "name": { - "description": "[Private Preview] The name returned when an input is classified as this label.", + "description": "[Beta] The name returned when an input is classified as this label.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false, @@ -9914,40 +9905,34 @@ "description": "Configuration for a task that runs the `ai_extract` function.\n\nThe fields to extract come from exactly one of two places: an existing AI\nExtract agent, named by `agent_id`, or the inline `schema` and `instructions`.\nSet `agent_id` or the inline fields, not both.", "properties": { "enable_citations": { - "description": "[Private Preview] When true, includes citation metadata locating each extracted value in the\nsource.", + "description": "[Beta] When true, includes citation metadata locating each extracted value in the\nsource.", "$ref": "#/$defs/bool", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "enable_confidence_scores": { - "description": "[Private Preview] When true, includes a per-field confidence score in the response.", + "description": "[Beta] When true, includes a per-field confidence score in the response.", "$ref": "#/$defs/bool", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "instructions": { - "description": "[Private Preview] Global description of the task and domain, passed to the model to improve\nextraction quality.", + "description": "[Beta] Global description of the task and domain, passed to the model to improve\nextraction quality.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "mode": { - "description": "[Private Preview] The extraction mode. Defaults to standard extraction when unspecified.", + "description": "[Beta] The extraction mode. Defaults to standard extraction when unspecified.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.AiExtractFunctionMode", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "schema": { - "description": "[Private Preview] The extraction schema defining the fields to extract, as a JSON string.\nEither an array of field names (e.g. [\"company\", \"valuation\"]) or an object\nmapping each field name to a type and an optional description. Supported\ntypes are string, integer, number, boolean, enum, object, and array; all\nfields are optional.", + "description": "[Beta] The extraction schema defining the fields to extract, as a JSON string.\nEither an array of field names (e.g. [\"company\", \"valuation\"]) or an object\nmapping each field name to a type and an optional description. Supported\ntypes are string, integer, number, boolean, enum, object, and array; all\nfields are optional.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "version": { - "description": "[Private Preview] The ai_extract function version to invoke (for example, `2.1`).", + "description": "[Beta] The ai_extract function version to invoke (for example, `2.1`).", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false, @@ -9970,7 +9955,7 @@ "MODE_PRECISION" ], "enumDescriptions": [ - "[Private Preview]" + "[Beta]" ] }, { @@ -9986,40 +9971,34 @@ "description": "A task that applies an AI function to a set of input documents or rows.", "properties": { "ai_classify": { - "description": "[Private Preview] Classifies each input document or row into one or more labels.", + "description": "[Beta] Classifies each input document or row into one or more labels.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.AiClassifyFunction", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "ai_extract": { - "description": "[Private Preview] Extracts structured fields from the input documents or rows.", + "description": "[Beta] Extracts structured fields from the input documents or rows.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.AiExtractFunction", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "ai_parse_document": { - "description": "[Private Preview] Parses the input documents into structured text.", + "description": "[Beta] Parses the input documents into structured text.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.AiParseDocumentFunction", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "delta_table": { - "description": "[Private Preview] A Unity Catalog Delta table. The function is applied to each row.", + "description": "[Beta] A Unity Catalog Delta table. The function is applied to each row.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.DeltaTableSource", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "output": { - "description": "[Private Preview] Output destination table. When `table` is unset the task generates a stable name from the\nfunction and task identity so a downstream task can reference it.", + "description": "[Beta] Output destination table. When `table` is unset the task generates a stable name from the\nfunction and task identity so a downstream task can reference it.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.QualifiedName", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "volume": { - "description": "[Private Preview] A Unity Catalog volume. The function is applied to each file.", + "description": "[Beta] A Unity Catalog volume. The function is applied to each file.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.VolumeSource", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false, @@ -10040,28 +10019,24 @@ "description": "Configuration for a task that runs the `ai_parse_document` function.", "properties": { "description_element_types": { - "description": "[Private Preview] Element types to generate AI descriptions for. Leave empty to generate no\ndescriptions; use ALL for every supported type, or list specific types to\nrestrict generation to only those.", + "description": "[Beta] Element types to generate AI descriptions for. Leave empty to generate no\ndescriptions; use ALL for every supported type, or list specific types to\nrestrict generation to only those.", "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/jobs.AiParseDocumentFunctionDescriptionElementType", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "image_output_path": { - "description": "[Private Preview] Unity Catalog volume path where rendered page and element images are written.", + "description": "[Beta] Unity Catalog volume path where rendered page and element images are written.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "page_range": { - "description": "[Private Preview] Pages to parse (1-indexed), as a comma-separated list of page numbers or\nranges (e.g. \"1,3,5-10\").", + "description": "[Beta] Pages to parse (1-indexed), as a comma-separated list of page numbers or\nranges (e.g. \"1,3,5-10\").", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "version": { - "description": "[Private Preview] The ai_parse_document output schema version to invoke (for example, `2.0`).", + "description": "[Beta] The ai_parse_document output schema version to invoke (for example, `2.0`).", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false, @@ -10085,8 +10060,8 @@ "DESCRIPTION_ELEMENT_TYPE_FIGURE" ], "enumDescriptions": [ - "[Private Preview]", - "[Private Preview]" + "[Beta]", + "[Beta]" ] }, { @@ -10170,11 +10145,9 @@ "description": "Scheduling priority class for a workload — its priority and preemptability\nwhen the scheduler ranks pending work.", "enum": [ "BEST_EFFORT", - "NORMAL", - "CRITICAL" + "NORMAL" ], "enumDescriptions": [ - "[Private Preview]", "[Private Preview]", "[Private Preview]" ] @@ -10780,22 +10753,19 @@ "description": "A Unity Catalog Delta table input source. The function is applied to each row.", "properties": { "input_column": { - "description": "[Private Preview] Name of the column holding the content the function is applied to.", + "description": "[Beta] Name of the column holding the content the function is applied to.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "merge_key_columns": { - "description": "[Private Preview] Columns that together identify a row across incremental runs, so results can\nbe matched back to their source rows. When unset, the task derives an\nimplicit key from Delta row tracking. If row tracking is also disabled there\nis no stable key, so each run reprocesses the entire source (a full refresh)\nrather than only the changed rows; set a key column or enable row tracking to\nkeep runs incremental.", + "description": "[Beta] Columns that together identify a row across incremental runs, so results can\nbe matched back to their source rows. When unset, the task derives an\nimplicit key from Delta row tracking. If row tracking is also disabled there\nis no stable key, so each run reprocesses the entire source (a full refresh)\nrather than only the changed rows; set a key column or enable row tracking to\nkeep runs incremental.", "$ref": "#/$defs/slice/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "table_name": { - "description": "[Private Preview] Fully qualified three-part name of the source table (catalog.schema.table).", + "description": "[Beta] Fully qualified three-part name of the source table (catalog.schema.table).", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false, @@ -12185,22 +12155,19 @@ "description": "A three-level Unity Catalog name (catalog.schema.table); any level may be unset.", "properties": { "catalog": { - "description": "[Private Preview] Unity Catalog catalog.", + "description": "[Beta] Unity Catalog catalog.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "schema": { - "description": "[Private Preview] Unity Catalog schema, within the catalog.", + "description": "[Beta] Unity Catalog schema, within the catalog.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "table": { - "description": "[Private Preview] Table, within the catalog and schema.", + "description": "[Beta] Table, within the catalog and schema.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false @@ -12999,10 +12966,9 @@ "type": "object", "properties": { "ai_function_task": { - "description": "[Private Preview] Applies an AI function to a set of input documents or rows.", + "description": "[Beta] Applies an AI function to a set of input documents or rows.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.AiFunctionTask", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "ai_runtime_task": { "description": "[Public Preview] The task runs a multi-gpu compute workload on Databricks AI Runtime. Specify\nthe accelerator type and count, the command to run, and where the workload's\ncode and MLflow output are stored.", @@ -13476,10 +13442,9 @@ "description": "A Unity Catalog volume input source. The function is applied to each file.", "properties": { "volume_path": { - "description": "[Private Preview] Unity Catalog volume path to the input files\n(e.g. `/Volumes/\u003ccatalog\u003e/\u003cschema\u003e/\u003cvolume\u003e/...`).", + "description": "[Beta] Unity Catalog volume path to the input files\n(e.g. `/Volumes/\u003ccatalog\u003e/\u003cschema\u003e/\u003cvolume\u003e/...`).", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false, diff --git a/cmd/workspace/ai-functions/ai-functions.go b/cmd/workspace/ai-functions/ai-functions.go index 942e2e097fc..306dee5c4b1 100644 --- a/cmd/workspace/ai-functions/ai-functions.go +++ b/cmd/workspace/ai-functions/ai-functions.go @@ -4,6 +4,7 @@ package ai_functions import ( "errors" + "fmt" "github.com/databricks/cli/cmd/root" "github.com/databricks/cli/libs/cmdctx" @@ -35,6 +36,10 @@ func New() *cobra.Command { cmd.AddCommand(newAiDecide()) cmd.AddCommand(newAiExtract()) cmd.AddCommand(newAiParseDocument()) + cmd.AddCommand(newCancelBatch()) + cmd.AddCommand(newCreateBatch()) + cmd.AddCommand(newGetBatch()) + cmd.AddCommand(newListBatches()) // Apply optional overrides to this command. for _, fn := range cmdOverrides { @@ -350,4 +355,300 @@ func newAiParseDocument() *cobra.Command { return cmd } +// start cancel-batch command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var cancelBatchOverrides []func( + *cobra.Command, + *aifunctions.CancelBatchRequest, +) + +func newCancelBatch() *cobra.Command { + cmd := &cobra.Command{} + + var cancelBatchReq aifunctions.CancelBatchRequest + + cmd.Use = "cancel-batch NAME" + cmd.Short = `Cancel a batch.` + cmd.Long = `Cancel a batch. + + Cancel a batch. Cancellation is asynchronous: requests in flight drain first, + so read the batch to observe the CANCELLING and CANCELLED statuses. + + Arguments: + NAME: ID of the batch, in the form batch_.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + cancelBatchReq.Name = args[0] + + response, err := w.AiFunctions.CancelBatch(ctx, cancelBatchReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range cancelBatchOverrides { + fn(cmd, &cancelBatchReq) + } + + return cmd +} + +// start create-batch command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var createBatchOverrides []func( + *cobra.Command, + *aifunctions.CreateBatchRequest, +) + +func newCreateBatch() *cobra.Command { + cmd := &cobra.Command{} + + var createBatchReq aifunctions.CreateBatchRequest + createBatchReq.Batch = aifunctions.Batch{} + var createBatchJson flags.JsonFlag + + cmd.Flags().Var(&createBatchJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&createBatchReq.Batch.Name, "name", createBatchReq.Batch.Name, `ID of the batch, in the form batch_.`) + cmd.Flags().StringVar(&createBatchReq.Batch.OutputRef, "output-ref", createBatchReq.Batch.OutputRef, `Path on a Unity Catalog volume to write the JSONL output to.`) + // TODO: map via StringToStringVar: params + // TODO: complex arg: request_counts + + cmd.Use = "create-batch ENDPOINT INPUT_REF" + cmd.Short = `Create a batch.` + cmd.Long = `Create a batch. + + Run an AI function over every request in a file on a Unity Catalog volume. The + batch runs asynchronously; read it to follow its progress. + + Arguments: + ENDPOINT: The AI function to run for every request, for example ai_extract. + INPUT_REF: Path of the JSONL input file on a Unity Catalog volume. Each line is one + request.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + if cmd.Flags().Changed("json") { + err := root.ExactArgs(0)(cmd, args) + if err != nil { + return errors.New("when --json flag is specified, no positional arguments are allowed. Provide 'endpoint', 'input_ref' in your JSON input") + } + return nil + } + check := root.ExactArgs(2) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := createBatchJson.Unmarshal(&createBatchReq.Batch) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + if !cmd.Flags().Changed("json") { + createBatchReq.Batch.Endpoint = args[0] + } + if !cmd.Flags().Changed("json") { + createBatchReq.Batch.InputRef = args[1] + } + + response, err := w.AiFunctions.CreateBatch(ctx, createBatchReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range createBatchOverrides { + fn(cmd, &createBatchReq) + } + + return cmd +} + +// start get-batch command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getBatchOverrides []func( + *cobra.Command, + *aifunctions.GetBatchRequest, +) + +func newGetBatch() *cobra.Command { + cmd := &cobra.Command{} + + var getBatchReq aifunctions.GetBatchRequest + + cmd.Use = "get-batch NAME" + cmd.Short = `Get a batch.` + cmd.Long = `Get a batch. + + Read one batch, with its status and progress. + + Arguments: + NAME: ID of the batch, in the form batch_.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getBatchReq.Name = args[0] + + response, err := w.AiFunctions.GetBatch(ctx, getBatchReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getBatchOverrides { + fn(cmd, &getBatchReq) + } + + return cmd +} + +// start list-batches command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var listBatchesOverrides []func( + *cobra.Command, + *aifunctions.ListBatchesRequest, +) + +func newListBatches() *cobra.Command { + cmd := &cobra.Command{} + + var listBatchesReq aifunctions.ListBatchesRequest + // Registered for all paginated methods. Validated at call time in the + // method-call template. Paginated list methods never have Wait or LRO + // branches, so the method-call path is always reached. + var listBatchesLimit int + + cmd.Flags().IntVar(&listBatchesReq.PageSize, "page-size", listBatchesReq.PageSize, `Maximum number of batches to return in one page.`) + + // Limit flag for total result capping. + cmd.Flags().IntVar(&listBatchesLimit, "limit", 0, `Maximum number of results to return.`) + + // Hidden pagination flags (internal API parameters). + cmd.Flags().StringVar(&listBatchesReq.PageToken, "page-token", listBatchesReq.PageToken, `Pagination token.`) + cmd.Flags().Lookup("page-token").Hidden = true + + cmd.Use = "list-batches" + cmd.Short = `List batches.` + cmd.Long = `List batches. + + List the batches the caller created in this workspace.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(0) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + response := w.AiFunctions.ListBatches(ctx, listBatchesReq) + if listBatchesLimit < 0 { + return fmt.Errorf("--limit must be a non-negative integer, got %d", listBatchesLimit) + } + if listBatchesLimit > 0 { + ctx = cmdio.WithLimit(ctx, listBatchesLimit) + } + + return cmdio.RenderIterator(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range listBatchesOverrides { + fn(cmd, &listBatchesReq) + } + + return cmd +} + // end service AiFunctions diff --git a/cmd/workspace/cmd.go b/cmd/workspace/cmd.go index b8291b0e12c..520921ecb2e 100644 --- a/cmd/workspace/cmd.go +++ b/cmd/workspace/cmd.go @@ -64,6 +64,7 @@ import ( knowledge_assistants "github.com/databricks/cli/cmd/workspace/knowledge-assistants" lakeview "github.com/databricks/cli/cmd/workspace/lakeview" lakeview_embedded "github.com/databricks/cli/cmd/workspace/lakeview-embedded" + lakewatch "github.com/databricks/cli/cmd/workspace/lakewatch" libraries "github.com/databricks/cli/cmd/workspace/libraries" materialized_features "github.com/databricks/cli/cmd/workspace/materialized-features" metastores "github.com/databricks/cli/cmd/workspace/metastores" @@ -204,6 +205,7 @@ func All() []*cobra.Command { out = append(out, knowledge_assistants.New()) out = append(out, lakeview.New()) out = append(out, lakeview_embedded.New()) + out = append(out, lakewatch.New()) out = append(out, libraries.New()) out = append(out, materialized_features.New()) out = append(out, metastores.New()) diff --git a/cmd/workspace/feature-engineering/feature-engineering.go b/cmd/workspace/feature-engineering/feature-engineering.go index aa23ee61e06..963a07551f6 100644 --- a/cmd/workspace/feature-engineering/feature-engineering.go +++ b/cmd/workspace/feature-engineering/feature-engineering.go @@ -40,16 +40,19 @@ func New() *cobra.Command { cmd.AddCommand(newBackfillFeatures()) cmd.AddCommand(newCancelOperation()) cmd.AddCommand(newCreateFeature()) + cmd.AddCommand(newCreateFeatureSpec()) cmd.AddCommand(newCreateKafkaConfig()) cmd.AddCommand(newCreateMaterializationSet()) cmd.AddCommand(newCreateMaterializedFeature()) cmd.AddCommand(newCreateStream()) cmd.AddCommand(newDeleteFeature()) + cmd.AddCommand(newDeleteFeatureSpec()) cmd.AddCommand(newDeleteKafkaConfig()) cmd.AddCommand(newDeleteMaterializationSet()) cmd.AddCommand(newDeleteMaterializedFeature()) cmd.AddCommand(newDeleteStream()) cmd.AddCommand(newGetFeature()) + cmd.AddCommand(newGetFeatureSpec()) cmd.AddCommand(newGetKafkaConfig()) cmd.AddCommand(newGetMaterializationSet()) cmd.AddCommand(newGetMaterializedFeature()) @@ -354,6 +357,95 @@ func newCreateFeature() *cobra.Command { return cmd } +// start create-feature-spec command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var createFeatureSpecOverrides []func( + *cobra.Command, + *ml.CreateFeatureSpecRequest, +) + +func newCreateFeatureSpec() *cobra.Command { + cmd := &cobra.Command{} + + var createFeatureSpecReq ml.CreateFeatureSpecRequest + createFeatureSpecReq.FeatureSpec = ml.FeatureSpec{} + var createFeatureSpecJson flags.JsonFlag + + cmd.Flags().Var(&createFeatureSpecJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + // TODO: array: exclude_columns + // TODO: complex arg: extra_pip_requirements + // TODO: array: features + + cmd.Use = "create-feature-spec NAME" + cmd.Short = `Create a feature spec.` + cmd.Long = `Create a feature spec. + + Arguments: + NAME: Three-part name (catalog.schema.feature_spec) of the feature spec.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + if cmd.Flags().Changed("json") { + err := root.ExactArgs(0)(cmd, args) + if err != nil { + return errors.New("when --json flag is specified, no positional arguments are allowed. Provide 'name' in your JSON input") + } + return nil + } + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := createFeatureSpecJson.Unmarshal(&createFeatureSpecReq.FeatureSpec) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + if !cmd.Flags().Changed("json") { + createFeatureSpecReq.FeatureSpec.Name = args[0] + } + + response, err := w.FeatureEngineering.CreateFeatureSpec(ctx, createFeatureSpecReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range createFeatureSpecOverrides { + fn(cmd, &createFeatureSpecReq) + } + + return cmd +} + // start create-kafka-config command // Slice with functions to override default command behavior. @@ -864,6 +956,66 @@ func newDeleteFeature() *cobra.Command { return cmd } +// start delete-feature-spec command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var deleteFeatureSpecOverrides []func( + *cobra.Command, + *ml.DeleteFeatureSpecRequest, +) + +func newDeleteFeatureSpec() *cobra.Command { + cmd := &cobra.Command{} + + var deleteFeatureSpecReq ml.DeleteFeatureSpecRequest + + cmd.Use = "delete-feature-spec NAME" + cmd.Short = `Delete a feature spec.` + cmd.Long = `Delete a feature spec. + + Arguments: + NAME: Three-part name (catalog.schema.feature_spec) of the feature spec to + delete.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + deleteFeatureSpecReq.Name = args[0] + + err = w.FeatureEngineering.DeleteFeatureSpec(ctx, deleteFeatureSpecReq) + if err != nil { + return err + } + return nil + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range deleteFeatureSpecOverrides { + fn(cmd, &deleteFeatureSpecReq) + } + + return cmd +} + // start delete-kafka-config command // Slice with functions to override default command behavior. @@ -1209,6 +1361,66 @@ func newGetFeature() *cobra.Command { return cmd } +// start get-feature-spec command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getFeatureSpecOverrides []func( + *cobra.Command, + *ml.GetFeatureSpecRequest, +) + +func newGetFeatureSpec() *cobra.Command { + cmd := &cobra.Command{} + + var getFeatureSpecReq ml.GetFeatureSpecRequest + + cmd.Use = "get-feature-spec NAME" + cmd.Short = `Get a feature spec.` + cmd.Long = `Get a feature spec. + + Arguments: + NAME: Three-part name (catalog.schema.feature_spec) of the feature spec to get.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getFeatureSpecReq.Name = args[0] + + response, err := w.FeatureEngineering.GetFeatureSpec(ctx, getFeatureSpecReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getFeatureSpecOverrides { + fn(cmd, &getFeatureSpecReq) + } + + return cmd +} + // start get-kafka-config command // Slice with functions to override default command behavior. diff --git a/cmd/workspace/groups.go b/cmd/workspace/groups.go index 02f7cc8d70a..603fadc788e 100644 --- a/cmd/workspace/groups.go +++ b/cmd/workspace/groups.go @@ -8,6 +8,10 @@ import ( func Groups() []cobra.Group { return []cobra.Group{ + { + ID: "lakewatch", + Title: "Lakewatch", + }, { ID: "workspace", Title: "Databricks Workspace", diff --git a/cmd/workspace/instance-pools/instance-pools.go b/cmd/workspace/instance-pools/instance-pools.go index 5a2b996c2e0..08e8c91b425 100644 --- a/cmd/workspace/instance-pools/instance-pools.go +++ b/cmd/workspace/instance-pools/instance-pools.go @@ -112,7 +112,8 @@ func newCreate() *cobra.Command { each of the Spark nodes in this cluster. For example, the Spark nodes can be provisioned and optimized for memory or compute intensive workloads. A list of available node types can be retrieved by using the - [clusters/listNodeTypes] API call. + [clusters/listNodeTypes] API call. The node type cannot be changed after + the pool is created. [clusters/listNodeTypes]: https://docs.databricks.com/api/workspace/clusters/listnodetypes` @@ -312,7 +313,8 @@ func newEdit() *cobra.Command { each of the Spark nodes in this cluster. For example, the Spark nodes can be provisioned and optimized for memory or compute intensive workloads. A list of available node types can be retrieved by using the - [clusters/listNodeTypes] API call. + [clusters/listNodeTypes] API call. The node type cannot be changed after + the pool is created. [clusters/listNodeTypes]: https://docs.databricks.com/api/workspace/clusters/listnodetypes` diff --git a/cmd/workspace/lakewatch/lakewatch.go b/cmd/workspace/lakewatch/lakewatch.go new file mode 100644 index 00000000000..3450b839fcf --- /dev/null +++ b/cmd/workspace/lakewatch/lakewatch.go @@ -0,0 +1,1727 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package lakewatch + +import ( + "encoding/json" + "errors" + "fmt" + "strings" + + "github.com/databricks/cli/cmd/root" + "github.com/databricks/cli/libs/cmdctx" + "github.com/databricks/cli/libs/cmdio" + "github.com/databricks/cli/libs/flags" + "github.com/databricks/databricks-sdk-go/common/types/fieldmask" + sdktime "github.com/databricks/databricks-sdk-go/common/types/time" + "github.com/databricks/databricks-sdk-go/service/lakewatch" + "github.com/spf13/cobra" +) + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var cmdOverrides []func(*cobra.Command) + +func New() *cobra.Command { + cmd := &cobra.Command{ + Use: "lakewatch", + Short: `*Beta* Manage Lakewatch: security-analytics data sources, detection rules, and per-catalog configuration.`, + Long: `This command is in Beta and may change without notice. + +Manage Lakewatch: security-analytics data sources, detection rules, and + per-catalog configuration.`, + GroupID: "lakewatch", + RunE: root.ReportUnknownSubcommand, + } + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + // Add methods + cmd.AddCommand(newCreateDatasource()) + cmd.AddCommand(newCreateRule()) + cmd.AddCommand(newDeleteDatasource()) + cmd.AddCommand(newDeleteRule()) + cmd.AddCommand(newGetAlertConfig()) + cmd.AddCommand(newGetCommonConfig()) + cmd.AddCommand(newGetDatasource()) + cmd.AddCommand(newGetDatasourceConfig()) + cmd.AddCommand(newGetRule()) + cmd.AddCommand(newGetRuleConfig()) + cmd.AddCommand(newListDatasources()) + cmd.AddCommand(newListRules()) + cmd.AddCommand(newUpdateAlertConfig()) + cmd.AddCommand(newUpdateCommonConfig()) + cmd.AddCommand(newUpdateDatasource()) + cmd.AddCommand(newUpdateDatasourceConfig()) + cmd.AddCommand(newUpdateRule()) + cmd.AddCommand(newUpdateRuleConfig()) + + // Apply optional overrides to this command. + for _, fn := range cmdOverrides { + fn(cmd) + } + + return cmd +} + +// start create-datasource command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var createDatasourceOverrides []func( + *cobra.Command, + *lakewatch.CreateDatasourceRequest, +) + +func newCreateDatasource() *cobra.Command { + cmd := &cobra.Command{} + + var createDatasourceReq lakewatch.CreateDatasourceRequest + createDatasourceReq.Datasource = lakewatch.Datasource{} + var createDatasourceJson flags.JsonFlag + + cmd.Flags().Var(&createDatasourceJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + // TODO: map via StringToStringVar: annotations + // TODO: complex arg: autoloader + cmd.Flags().Var(&createDatasourceReq.Datasource.ComputeMode, "compute-mode", `Compute mode for the datasource's ingestion job. Supported values: [DS_COMPUTE_PERFORMANCE_OPTIMIZED, DS_COMPUTE_STANDARD]`) + // TODO: complex arg: created_by + cmd.Flags().StringVar(&createDatasourceReq.Datasource.Description, "description", createDatasourceReq.Datasource.Description, `Free-form description of the datasource.`) + // TODO: complex arg: existing_table + cmd.Flags().StringVar(&createDatasourceReq.Datasource.Name, "name", createDatasourceReq.Datasource.Name, `Resource name of the datasource, in the format datasources/{datasource_id}.`) + // TODO: complex arg: owner + // TODO: array: parsers + cmd.Flags().StringVar(&createDatasourceReq.Datasource.RunAsPrincipal, "run-as-principal", createDatasourceReq.Datasource.RunAsPrincipal, `The user or service principal that the datasource runs as, given as a user email or service principal application ID.`) + // TODO: complex arg: status + // TODO: complex arg: unity_catalog_connection + // TODO: complex arg: updated_by + + cmd.Use = "create-datasource CATALOG_NAME SCHEMA_NAME DATASOURCE_NAME SCHEDULE WAREHOUSE_ID" + cmd.Short = `*Beta* Create a datasource.` + cmd.Long = `This command is in Beta and may change without notice. + +Create a datasource. + + Creates a new datasource. + + Arguments: + CATALOG_NAME: Name of the Unity Catalog catalog that contains the datasource. Required + on create and cannot be changed afterward. Reads return the value as + supplied; the catalog's current name is reported in + effective_catalog_name. + SCHEMA_NAME: Name of the Unity Catalog schema that contains the datasource. Required on + create and cannot be changed afterward. Reads return the value as + supplied; the schema's current name is reported in + effective_schema_name. + DATASOURCE_NAME: Name of the datasource in Unity Catalog, unique within its schema. + Required on create and cannot be changed afterward. Reads return the value + as supplied; the datasource's current Unity Catalog name, which reflects + renames, is reported in effective_datasource_name. + SCHEDULE: Schedule on which the datasource's ingestion job runs. A datasource cannot + be paused, so a request that sets schedule.enabled to false is + rejected. Continuous schedules are not supported for Unity Catalog + connection datasources. + WAREHOUSE_ID: ID of the SQL warehouse that runs the checks Lakewatch performs to + validate a create or update request, such as source and destination access + checks. Required and non-blank on every create and update request; there + is no default warehouse. The requester must be able to use the warehouse. + Used only for those checks: it is not stored, is not returned on reads, + and does not affect the compute that runs the ingestion job.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + if cmd.Flags().Changed("json") { + err := root.ExactArgs(0)(cmd, args) + if err != nil { + return errors.New("when --json flag is specified, no positional arguments are allowed. Provide 'catalog_name', 'schema_name', 'datasource_name', 'schedule', 'warehouse_id' in your JSON input") + } + return nil + } + check := root.ExactArgs(5) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := createDatasourceJson.Unmarshal(&createDatasourceReq.Datasource) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + if !cmd.Flags().Changed("json") { + createDatasourceReq.Datasource.CatalogName = args[0] + } + if !cmd.Flags().Changed("json") { + createDatasourceReq.Datasource.SchemaName = args[1] + } + if !cmd.Flags().Changed("json") { + createDatasourceReq.Datasource.DatasourceName = args[2] + } + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[3], &createDatasourceReq.Datasource.Schedule) + if err != nil { + return fmt.Errorf("invalid SCHEDULE: %s", args[3]) + } + + } + if !cmd.Flags().Changed("json") { + createDatasourceReq.Datasource.WarehouseId = args[4] + } + + response, err := w.Lakewatch.CreateDatasource(ctx, createDatasourceReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range createDatasourceOverrides { + fn(cmd, &createDatasourceReq) + } + + return cmd +} + +// start create-rule command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var createRuleOverrides []func( + *cobra.Command, + *lakewatch.CreateRuleRequest, +) + +func newCreateRule() *cobra.Command { + cmd := &cobra.Command{} + + var createRuleReq lakewatch.CreateRuleRequest + createRuleReq.Rule = lakewatch.Rule{} + var createRuleJson flags.JsonFlag + + cmd.Flags().Var(&createRuleJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + // TODO: map via StringToStringVar: annotations + // TODO: complex arg: batch + cmd.Flags().StringVar(&createRuleReq.Rule.Category, "category", createRuleReq.Rule.Category, `Free-form rule category.`) + cmd.Flags().StringVar(&createRuleReq.Rule.ContentResourceId, "content-resource-id", createRuleReq.Rule.ContentResourceId, `Immutable UUIDv4 identifying the authored content resource installed as this rule.`) + // TODO: complex arg: created_by + cmd.Flags().Var(&createRuleReq.Rule.Deduplication, "deduplication", `Signal deduplication mode. Supported values: [DEDUPLICATION_DEFAULT, DEDUPLICATION_DISABLED, DEDUPLICATION_ENABLED]`) + cmd.Flags().StringVar(&createRuleReq.Rule.DeduplicationTimeWindow, "deduplication-time-window", createRuleReq.Rule.DeduplicationTimeWindow, `Time window for deduplication, such as 1h, 24h, 7d, or automatic.`) + cmd.Flags().StringVar(&createRuleReq.Rule.Description, "description", createRuleReq.Rule.Description, `Free-form description.`) + // TODO: array: mitre + cmd.Flags().StringVar(&createRuleReq.Rule.Name, "name", createRuleReq.Rule.Name, `Resource name, in the form rules/{rule_id}.`) + cmd.Flags().StringVar(&createRuleReq.Rule.Objective, "objective", createRuleReq.Rule.Objective, `Long-form description of what this rule detects.`) + // TODO: complex arg: original_content_pack + // TODO: complex arg: owner + // TODO: array: references + cmd.Flags().StringVar(&createRuleReq.Rule.RunAsPrincipal, "run-as-principal", createRuleReq.Rule.RunAsPrincipal, `The principal whose identity this rule's job runs as, given as a user email or service-principal application ID.`) + cmd.Flags().StringVar(&createRuleReq.Rule.Runbook, "runbook", createRuleReq.Rule.Runbook, `Long-form operational guidance carried from the authored rule metadata.`) + // TODO: complex arg: status + var suppressUntilTimeParam string + cmd.Flags().StringVar(&suppressUntilTimeParam, "suppress-until-time", suppressUntilTimeParam, `If set, this rule's signals do not open new alerts until the given time.`) + // TODO: complex arg: timerange + // TODO: complex arg: updated_by + + cmd.Use = "create-rule CATALOG_NAME SCHEMA_NAME RULE_NAME SEVERITY FIDELITY SCHEDULE OUTPUT" + cmd.Short = `*Beta* Create a rule.` + cmd.Long = `This command is in Beta and may change without notice. + +Create a rule. + + Creates a new rule. + + Arguments: + CATALOG_NAME: Name of the Unity Catalog catalog that contains the rule. Required. Cannot + be changed after creation. Reads return the value as supplied; the + catalog's current name is reported in effective_catalog_name. + SCHEMA_NAME: Name of the Unity Catalog schema that contains the rule. Required. Cannot + be changed after creation. Reads return the value as supplied; the + schema's current name is reported in effective_schema_name. + RULE_NAME: Name of the rule within its Unity Catalog schema. Required. Cannot be + changed after creation. Reads return the value as supplied; the current UC + name is reported in effective_rule_name. + SEVERITY: Free-form severity label, such as Informational, Medium, High, or + Critical. + FIDELITY: Signal quality for this rule. + Supported values: [FIDELITY_DEVELOPMENT, FIDELITY_HIGH, FIDELITY_INVESTIGATIVE, FIDELITY_MEDIUM] + SCHEDULE: When the rule executes. + OUTPUT: What to record in each signal.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + if cmd.Flags().Changed("json") { + err := root.ExactArgs(0)(cmd, args) + if err != nil { + return errors.New("when --json flag is specified, no positional arguments are allowed. Provide 'catalog_name', 'schema_name', 'rule_name', 'severity', 'fidelity', 'schedule', 'output' in your JSON input") + } + return nil + } + check := root.ExactArgs(7) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := createRuleJson.Unmarshal(&createRuleReq.Rule) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + if !cmd.Flags().Changed("json") { + createRuleReq.Rule.CatalogName = args[0] + } + if !cmd.Flags().Changed("json") { + createRuleReq.Rule.SchemaName = args[1] + } + if !cmd.Flags().Changed("json") { + createRuleReq.Rule.RuleName = args[2] + } + if !cmd.Flags().Changed("json") { + createRuleReq.Rule.Severity = args[3] + } + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[4], &createRuleReq.Rule.Fidelity) + if err != nil { + return fmt.Errorf("invalid FIDELITY: %s", args[4]) + } + + } + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[5], &createRuleReq.Rule.Schedule) + if err != nil { + return fmt.Errorf("invalid SCHEDULE: %s", args[5]) + } + + } + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[6], &createRuleReq.Rule.Output) + if err != nil { + return fmt.Errorf("invalid OUTPUT: %s", args[6]) + } + + } + + if suppressUntilTimeParam != "" { + suppressUntilTimeBytes := []byte(fmt.Sprintf("\"%s\"", suppressUntilTimeParam)) + var suppressUntilTimeField sdktime.Time + err = json.Unmarshal(suppressUntilTimeBytes, &suppressUntilTimeField) + if err != nil { + return fmt.Errorf("invalid SUPPRESS_UNTIL_TIME: %s", suppressUntilTimeParam) + } + createRuleReq.Rule.SuppressUntilTime = &suppressUntilTimeField + } + + response, err := w.Lakewatch.CreateRule(ctx, createRuleReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range createRuleOverrides { + fn(cmd, &createRuleReq) + } + + return cmd +} + +// start delete-datasource command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var deleteDatasourceOverrides []func( + *cobra.Command, + *lakewatch.DeleteDatasourceRequest, +) + +func newDeleteDatasource() *cobra.Command { + cmd := &cobra.Command{} + + var deleteDatasourceReq lakewatch.DeleteDatasourceRequest + + cmd.Use = "delete-datasource NAME" + cmd.Short = `*Beta* Delete a datasource.` + cmd.Long = `This command is in Beta and may change without notice. + +Delete a datasource. + + Deletes a datasource by its resource name.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + deleteDatasourceReq.Name = args[0] + + err = w.Lakewatch.DeleteDatasource(ctx, deleteDatasourceReq) + if err != nil { + return err + } + return nil + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range deleteDatasourceOverrides { + fn(cmd, &deleteDatasourceReq) + } + + return cmd +} + +// start delete-rule command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var deleteRuleOverrides []func( + *cobra.Command, + *lakewatch.DeleteRuleRequest, +) + +func newDeleteRule() *cobra.Command { + cmd := &cobra.Command{} + + var deleteRuleReq lakewatch.DeleteRuleRequest + + cmd.Use = "delete-rule NAME" + cmd.Short = `*Beta* Delete a rule.` + cmd.Long = `This command is in Beta and may change without notice. + +Delete a rule. + + Deletes a rule by its resource name. + + Arguments: + NAME: Resource name of the rule to delete. Format: rules/{rule_id}.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + deleteRuleReq.Name = args[0] + + err = w.Lakewatch.DeleteRule(ctx, deleteRuleReq) + if err != nil { + return err + } + return nil + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range deleteRuleOverrides { + fn(cmd, &deleteRuleReq) + } + + return cmd +} + +// start get-alert-config command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getAlertConfigOverrides []func( + *cobra.Command, + *lakewatch.GetAlertConfigRequest, +) + +func newGetAlertConfig() *cobra.Command { + cmd := &cobra.Command{} + + var getAlertConfigReq lakewatch.GetAlertConfigRequest + + cmd.Use = "get-alert-config NAME" + cmd.Short = `*Beta* Get the alert config for a catalog.` + cmd.Long = `This command is in Beta and may change without notice. + +Get the alert config for a catalog. + + Returns the alert delivery configuration for a catalog.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getAlertConfigReq.Name = args[0] + + response, err := w.Lakewatch.GetAlertConfig(ctx, getAlertConfigReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getAlertConfigOverrides { + fn(cmd, &getAlertConfigReq) + } + + return cmd +} + +// start get-common-config command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getCommonConfigOverrides []func( + *cobra.Command, + *lakewatch.GetCommonConfigRequest, +) + +func newGetCommonConfig() *cobra.Command { + cmd := &cobra.Command{} + + var getCommonConfigReq lakewatch.GetCommonConfigRequest + + cmd.Use = "get-common-config NAME" + cmd.Short = `*Beta* Get the common config for a catalog.` + cmd.Long = `This command is in Beta and may change without notice. + +Get the common config for a catalog. + + Returns the common Lakewatch configuration for a catalog.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getCommonConfigReq.Name = args[0] + + response, err := w.Lakewatch.GetCommonConfig(ctx, getCommonConfigReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getCommonConfigOverrides { + fn(cmd, &getCommonConfigReq) + } + + return cmd +} + +// start get-datasource command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getDatasourceOverrides []func( + *cobra.Command, + *lakewatch.GetDatasourceRequest, +) + +func newGetDatasource() *cobra.Command { + cmd := &cobra.Command{} + + var getDatasourceReq lakewatch.GetDatasourceRequest + + cmd.Use = "get-datasource NAME" + cmd.Short = `*Beta* Get a datasource.` + cmd.Long = `This command is in Beta and may change without notice. + +Get a datasource. + + Returns a single datasource by its resource name.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getDatasourceReq.Name = args[0] + + response, err := w.Lakewatch.GetDatasource(ctx, getDatasourceReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getDatasourceOverrides { + fn(cmd, &getDatasourceReq) + } + + return cmd +} + +// start get-datasource-config command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getDatasourceConfigOverrides []func( + *cobra.Command, + *lakewatch.GetDatasourceConfigRequest, +) + +func newGetDatasourceConfig() *cobra.Command { + cmd := &cobra.Command{} + + var getDatasourceConfigReq lakewatch.GetDatasourceConfigRequest + + cmd.Use = "get-datasource-config NAME" + cmd.Short = `*Beta* Get the datasource config for a catalog.` + cmd.Long = `This command is in Beta and may change without notice. + +Get the datasource config for a catalog. + + Returns the datasource ingestion configuration for a catalog.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getDatasourceConfigReq.Name = args[0] + + response, err := w.Lakewatch.GetDatasourceConfig(ctx, getDatasourceConfigReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getDatasourceConfigOverrides { + fn(cmd, &getDatasourceConfigReq) + } + + return cmd +} + +// start get-rule command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getRuleOverrides []func( + *cobra.Command, + *lakewatch.GetRuleRequest, +) + +func newGetRule() *cobra.Command { + cmd := &cobra.Command{} + + var getRuleReq lakewatch.GetRuleRequest + + cmd.Use = "get-rule NAME" + cmd.Short = `*Beta* Get a rule.` + cmd.Long = `This command is in Beta and may change without notice. + +Get a rule. + + Returns a single rule by its resource name. + + Arguments: + NAME: Full resource name of the detection rule, in the form rules/{rule_id}.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getRuleReq.Name = args[0] + + response, err := w.Lakewatch.GetRule(ctx, getRuleReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getRuleOverrides { + fn(cmd, &getRuleReq) + } + + return cmd +} + +// start get-rule-config command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getRuleConfigOverrides []func( + *cobra.Command, + *lakewatch.GetRuleConfigRequest, +) + +func newGetRuleConfig() *cobra.Command { + cmd := &cobra.Command{} + + var getRuleConfigReq lakewatch.GetRuleConfigRequest + + cmd.Use = "get-rule-config NAME" + cmd.Short = `*Beta* Get the rule config for a catalog.` + cmd.Long = `This command is in Beta and may change without notice. + +Get the rule config for a catalog. + + Returns the detection-rule configuration for a catalog.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getRuleConfigReq.Name = args[0] + + response, err := w.Lakewatch.GetRuleConfig(ctx, getRuleConfigReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getRuleConfigOverrides { + fn(cmd, &getRuleConfigReq) + } + + return cmd +} + +// start list-datasources command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var listDatasourcesOverrides []func( + *cobra.Command, + *lakewatch.ListDatasourcesRequest, +) + +func newListDatasources() *cobra.Command { + cmd := &cobra.Command{} + + var listDatasourcesReq lakewatch.ListDatasourcesRequest + // Registered for all paginated methods. Validated at call time in the + // method-call template. Paginated list methods never have Wait or LRO + // branches, so the method-call path is always reached. + var listDatasourcesLimit int + + cmd.Flags().StringVar(&listDatasourcesReq.Filter, "filter", listDatasourcesReq.Filter, `Filter expression that restricts the results to datasources with a given name, for example datasource_name = "my_source".`) + cmd.Flags().IntVar(&listDatasourcesReq.PageSize, "page-size", listDatasourcesReq.PageSize, `Maximum number of results to return in one page.`) + cmd.Flags().StringVar(&listDatasourcesReq.SchemaName, "schema-name", listDatasourcesReq.SchemaName, `Name of a Unity Catalog schema in catalog_name.`) + cmd.Flags().Var(&listDatasourcesReq.View, "view", `Which fields to return for each datasource. Supported values: [DATASOURCE_VIEW_BASIC, DATASOURCE_VIEW_FULL]`) + + // Limit flag for total result capping. + cmd.Flags().IntVar(&listDatasourcesLimit, "limit", 0, `Maximum number of results to return.`) + + // Hidden pagination flags (internal API parameters). + cmd.Flags().StringVar(&listDatasourcesReq.PageToken, "page-token", listDatasourcesReq.PageToken, `Pagination token.`) + cmd.Flags().Lookup("page-token").Hidden = true + + cmd.Use = "list-datasources CATALOG_NAME" + cmd.Short = `*Beta* List datasources.` + cmd.Long = `This command is in Beta and may change without notice. + +List datasources. + + Lists the datasources in a Unity Catalog catalog, optionally narrowed to one + schema or filtered by name. Results are paginated. Datasources that are still + being created or deleted are not listed. + + Arguments: + CATALOG_NAME: Name of the Unity Catalog catalog to list datasources from. Required; each + request lists the datasources of a single catalog.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + listDatasourcesReq.CatalogName = args[0] + + response := w.Lakewatch.ListDatasources(ctx, listDatasourcesReq) + if listDatasourcesLimit < 0 { + return fmt.Errorf("--limit must be a non-negative integer, got %d", listDatasourcesLimit) + } + if listDatasourcesLimit > 0 { + ctx = cmdio.WithLimit(ctx, listDatasourcesLimit) + } + + return cmdio.RenderIterator(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range listDatasourcesOverrides { + fn(cmd, &listDatasourcesReq) + } + + return cmd +} + +// start list-rules command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var listRulesOverrides []func( + *cobra.Command, + *lakewatch.ListRulesRequest, +) + +func newListRules() *cobra.Command { + cmd := &cobra.Command{} + + var listRulesReq lakewatch.ListRulesRequest + // Registered for all paginated methods. Validated at call time in the + // method-call template. Paginated list methods never have Wait or LRO + // branches, so the method-call path is always reached. + var listRulesLimit int + + cmd.Flags().StringVar(&listRulesReq.Filter, "filter", listRulesReq.Filter, `Filter expression that restricts the results, such as rule_name = "my_rule" to return only the rule with that name.`) + cmd.Flags().IntVar(&listRulesReq.PageSize, "page-size", listRulesReq.PageSize, `Maximum number of rules to return.`) + cmd.Flags().StringVar(&listRulesReq.SchemaName, "schema-name", listRulesReq.SchemaName, `Name of a Unity Catalog schema in catalog_name.`) + cmd.Flags().Var(&listRulesReq.View, "view", `How much of each rule to return. Supported values: [RULE_VIEW_BASIC, RULE_VIEW_FULL]`) + + // Limit flag for total result capping. + cmd.Flags().IntVar(&listRulesLimit, "limit", 0, `Maximum number of results to return.`) + + // Hidden pagination flags (internal API parameters). + cmd.Flags().StringVar(&listRulesReq.PageToken, "page-token", listRulesReq.PageToken, `Pagination token.`) + cmd.Flags().Lookup("page-token").Hidden = true + + cmd.Use = "list-rules CATALOG_NAME" + cmd.Short = `*Beta* List rules.` + cmd.Long = `This command is in Beta and may change without notice. + +List rules. + + Lists rules, with optional filtering and pagination. + + Arguments: + CATALOG_NAME: Name of the Unity Catalog catalog to list rules from. Required.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + listRulesReq.CatalogName = args[0] + + response := w.Lakewatch.ListRules(ctx, listRulesReq) + if listRulesLimit < 0 { + return fmt.Errorf("--limit must be a non-negative integer, got %d", listRulesLimit) + } + if listRulesLimit > 0 { + ctx = cmdio.WithLimit(ctx, listRulesLimit) + } + + return cmdio.RenderIterator(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range listRulesOverrides { + fn(cmd, &listRulesReq) + } + + return cmd +} + +// start update-alert-config command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var updateAlertConfigOverrides []func( + *cobra.Command, + *lakewatch.UpdateAlertConfigRequest, +) + +func newUpdateAlertConfig() *cobra.Command { + cmd := &cobra.Command{} + + var updateAlertConfigReq lakewatch.UpdateAlertConfigRequest + updateAlertConfigReq.AlertConfig = lakewatch.AlertConfig{} + var updateAlertConfigJson flags.JsonFlag + + cmd.Flags().Var(&updateAlertConfigJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&updateAlertConfigReq.Etag, "etag", updateAlertConfigReq.Etag, `Optimistic-concurrency precondition: if set and it does not match the resource's current etag, the update is rejected as a conflict (HTTP 409).`) + cmd.Flags().StringVar(&updateAlertConfigReq.AlertConfig.DefaultSecurityAlertCollationWindow, "default-security-alert-collation-window", updateAlertConfigReq.AlertConfig.DefaultSecurityAlertCollationWindow, `Window for collating Signals into security alerts.`) + cmd.Flags().StringVar(&updateAlertConfigReq.AlertConfig.DefaultSystemAlertCollationWindow, "default-system-alert-collation-window", updateAlertConfigReq.AlertConfig.DefaultSystemAlertCollationWindow, `Window for collating SystemEvents into system alerts.`) + cmd.Flags().StringVar(&updateAlertConfigReq.AlertConfig.Name, "name", updateAlertConfigReq.AlertConfig.Name, ``) + // TODO: complex arg: security_alert_export_config + // TODO: complex arg: system_alert_export_config + // TODO: complex arg: updated_by + + cmd.Use = "update-alert-config NAME UPDATE_MASK" + cmd.Short = `*Beta* Update the alert config for a catalog.` + cmd.Long = `This command is in Beta and may change without notice. + +Update the alert config for a catalog. + + Updates the alert delivery configuration for a catalog. + + Arguments: + NAME: + UPDATE_MASK: The field mask must be a single string, with multiple fields separated by + commas (no spaces). The field path is relative to the resource object, + using a dot (.) to navigate sub-fields (e.g., author.given_name). + Specification of elements in sequence or map fields is not allowed, as + only the entire collection field can be specified. Field names must + exactly match the resource field names. + + A field mask of * indicates full replacement. It’s recommended to + always explicitly list the fields being updated and avoid using * + wildcards, as it can lead to unintended results if the API changes in the + future.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(2) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := updateAlertConfigJson.Unmarshal(&updateAlertConfigReq.AlertConfig) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + updateAlertConfigReq.Name = args[0] + if args[1] != "" { + updateMaskArray := strings.Split(args[1], ",") + updateAlertConfigReq.UpdateMask = *fieldmask.New(updateMaskArray) + } + + response, err := w.Lakewatch.UpdateAlertConfig(ctx, updateAlertConfigReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range updateAlertConfigOverrides { + fn(cmd, &updateAlertConfigReq) + } + + return cmd +} + +// start update-common-config command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var updateCommonConfigOverrides []func( + *cobra.Command, + *lakewatch.UpdateCommonConfigRequest, +) + +func newUpdateCommonConfig() *cobra.Command { + cmd := &cobra.Command{} + + var updateCommonConfigReq lakewatch.UpdateCommonConfigRequest + updateCommonConfigReq.CommonConfig = lakewatch.CommonConfig{} + var updateCommonConfigJson flags.JsonFlag + + cmd.Flags().Var(&updateCommonConfigJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&updateCommonConfigReq.Etag, "etag", updateCommonConfigReq.Etag, `Optimistic-concurrency precondition: if set and it does not match the resource's current etag, the update is rejected as a conflict (HTTP 409).`) + cmd.Flags().StringVar(&updateCommonConfigReq.CommonConfig.CustomContentPackPath, "custom-content-pack-path", updateCommonConfigReq.CommonConfig.CustomContentPackPath, `UC volume path holding user-authored custom content packs, e.g.`) + cmd.Flags().StringVar(&updateCommonConfigReq.CommonConfig.CustomPresetsPath, "custom-presets-path", updateCommonConfigReq.CommonConfig.CustomPresetsPath, `UC volume path holding user-authored custom presets, e.g.`) + cmd.Flags().StringVar(&updateCommonConfigReq.CommonConfig.Name, "name", updateCommonConfigReq.CommonConfig.Name, ``) + cmd.Flags().BoolVar(&updateCommonConfigReq.CommonConfig.PerResourcePermissionsEnabled, "per-resource-permissions-enabled", updateCommonConfigReq.CommonConfig.PerResourcePermissionsEnabled, `Whether users may grant permissions on individual resources rather than only at the Folder level.`) + // TODO: complex arg: updated_by + + cmd.Use = "update-common-config NAME UPDATE_MASK" + cmd.Short = `*Beta* Update the common config for a catalog.` + cmd.Long = `This command is in Beta and may change without notice. + +Update the common config for a catalog. + + Updates the common Lakewatch configuration for a catalog. + + Arguments: + NAME: + UPDATE_MASK: The field mask must be a single string, with multiple fields separated by + commas (no spaces). The field path is relative to the resource object, + using a dot (.) to navigate sub-fields (e.g., author.given_name). + Specification of elements in sequence or map fields is not allowed, as + only the entire collection field can be specified. Field names must + exactly match the resource field names. + + A field mask of * indicates full replacement. It’s recommended to + always explicitly list the fields being updated and avoid using * + wildcards, as it can lead to unintended results if the API changes in the + future.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(2) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := updateCommonConfigJson.Unmarshal(&updateCommonConfigReq.CommonConfig) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + updateCommonConfigReq.Name = args[0] + if args[1] != "" { + updateMaskArray := strings.Split(args[1], ",") + updateCommonConfigReq.UpdateMask = *fieldmask.New(updateMaskArray) + } + + response, err := w.Lakewatch.UpdateCommonConfig(ctx, updateCommonConfigReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range updateCommonConfigOverrides { + fn(cmd, &updateCommonConfigReq) + } + + return cmd +} + +// start update-datasource command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var updateDatasourceOverrides []func( + *cobra.Command, + *lakewatch.UpdateDatasourceRequest, +) + +func newUpdateDatasource() *cobra.Command { + cmd := &cobra.Command{} + + var updateDatasourceReq lakewatch.UpdateDatasourceRequest + updateDatasourceReq.Datasource = lakewatch.Datasource{} + var updateDatasourceJson flags.JsonFlag + + cmd.Flags().Var(&updateDatasourceJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&updateDatasourceReq.Etag, "etag", updateDatasourceReq.Etag, `Optimistic-concurrency precondition: if set to a non-empty value that does not match the resource's current etag, the update is rejected as a conflict (HTTP 409).`) + // TODO: map via StringToStringVar: annotations + // TODO: complex arg: autoloader + cmd.Flags().Var(&updateDatasourceReq.Datasource.ComputeMode, "compute-mode", `Compute mode for the datasource's ingestion job. Supported values: [DS_COMPUTE_PERFORMANCE_OPTIMIZED, DS_COMPUTE_STANDARD]`) + // TODO: complex arg: created_by + cmd.Flags().StringVar(&updateDatasourceReq.Datasource.Description, "description", updateDatasourceReq.Datasource.Description, `Free-form description of the datasource.`) + // TODO: complex arg: existing_table + cmd.Flags().StringVar(&updateDatasourceReq.Datasource.Name, "name", updateDatasourceReq.Datasource.Name, `Resource name of the datasource, in the format datasources/{datasource_id}.`) + // TODO: complex arg: owner + // TODO: array: parsers + cmd.Flags().StringVar(&updateDatasourceReq.Datasource.RunAsPrincipal, "run-as-principal", updateDatasourceReq.Datasource.RunAsPrincipal, `The user or service principal that the datasource runs as, given as a user email or service principal application ID.`) + // TODO: complex arg: status + // TODO: complex arg: unity_catalog_connection + // TODO: complex arg: updated_by + + cmd.Use = "update-datasource NAME UPDATE_MASK CATALOG_NAME SCHEMA_NAME DATASOURCE_NAME SCHEDULE WAREHOUSE_ID" + cmd.Short = `*Beta* Update a datasource.` + cmd.Long = `This command is in Beta and may change without notice. + +Update a datasource. + + Updates an existing datasource. + + Arguments: + NAME: Resource name of the datasource, in the format + datasources/{datasource_id}. Unlike the datasource's Unity Catalog + location (catalog_name, schema_name, and datasource_name), the name + does not change when the datasource or its catalog or schema is renamed in + Unity Catalog. + UPDATE_MASK: The field mask must be a single string, with multiple fields separated by + commas (no spaces). The field path is relative to the resource object, + using a dot (.) to navigate sub-fields (e.g., author.given_name). + Specification of elements in sequence or map fields is not allowed, as + only the entire collection field can be specified. Field names must + exactly match the resource field names. + + A field mask of * indicates full replacement. It’s recommended to + always explicitly list the fields being updated and avoid using * + wildcards, as it can lead to unintended results if the API changes in the + future. + CATALOG_NAME: Name of the Unity Catalog catalog that contains the datasource. Required + on create and cannot be changed afterward. Reads return the value as + supplied; the catalog's current name is reported in + effective_catalog_name. + SCHEMA_NAME: Name of the Unity Catalog schema that contains the datasource. Required on + create and cannot be changed afterward. Reads return the value as + supplied; the schema's current name is reported in + effective_schema_name. + DATASOURCE_NAME: Name of the datasource in Unity Catalog, unique within its schema. + Required on create and cannot be changed afterward. Reads return the value + as supplied; the datasource's current Unity Catalog name, which reflects + renames, is reported in effective_datasource_name. + SCHEDULE: Schedule on which the datasource's ingestion job runs. A datasource cannot + be paused, so a request that sets schedule.enabled to false is + rejected. Continuous schedules are not supported for Unity Catalog + connection datasources. + WAREHOUSE_ID: ID of the SQL warehouse that runs the checks Lakewatch performs to + validate a create or update request, such as source and destination access + checks. Required and non-blank on every create and update request; there + is no default warehouse. The requester must be able to use the warehouse. + Used only for those checks: it is not stored, is not returned on reads, + and does not affect the compute that runs the ingestion job.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + if cmd.Flags().Changed("json") { + err := root.ExactArgs(2)(cmd, args) + if err != nil { + return errors.New("when --json flag is specified, provide only NAME, UPDATE_MASK as positional arguments. Provide 'catalog_name', 'schema_name', 'datasource_name', 'schedule', 'warehouse_id' in your JSON input") + } + return nil + } + check := root.ExactArgs(7) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := updateDatasourceJson.Unmarshal(&updateDatasourceReq.Datasource) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + updateDatasourceReq.Name = args[0] + if args[1] != "" { + updateMaskArray := strings.Split(args[1], ",") + updateDatasourceReq.UpdateMask = *fieldmask.New(updateMaskArray) + } + if !cmd.Flags().Changed("json") { + updateDatasourceReq.Datasource.CatalogName = args[2] + } + if !cmd.Flags().Changed("json") { + updateDatasourceReq.Datasource.SchemaName = args[3] + } + if !cmd.Flags().Changed("json") { + updateDatasourceReq.Datasource.DatasourceName = args[4] + } + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[5], &updateDatasourceReq.Datasource.Schedule) + if err != nil { + return fmt.Errorf("invalid SCHEDULE: %s", args[5]) + } + + } + if !cmd.Flags().Changed("json") { + updateDatasourceReq.Datasource.WarehouseId = args[6] + } + + response, err := w.Lakewatch.UpdateDatasource(ctx, updateDatasourceReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range updateDatasourceOverrides { + fn(cmd, &updateDatasourceReq) + } + + return cmd +} + +// start update-datasource-config command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var updateDatasourceConfigOverrides []func( + *cobra.Command, + *lakewatch.UpdateDatasourceConfigRequest, +) + +func newUpdateDatasourceConfig() *cobra.Command { + cmd := &cobra.Command{} + + var updateDatasourceConfigReq lakewatch.UpdateDatasourceConfigRequest + updateDatasourceConfigReq.DatasourceConfig = lakewatch.DatasourceConfig{} + var updateDatasourceConfigJson flags.JsonFlag + + cmd.Flags().Var(&updateDatasourceConfigJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&updateDatasourceConfigReq.Etag, "etag", updateDatasourceConfigReq.Etag, `Optimistic-concurrency precondition: if set and it does not match the resource's current etag, the update is rejected as a conflict (HTTP 409).`) + cmd.Flags().Var(&updateDatasourceConfigReq.DatasourceConfig.DefaultComputeMode, "default-compute-mode", `Default compute mode applied to datasource ingestion jobs when the individual datasource doesn't override it. Supported values: [DS_COMPUTE_PERFORMANCE_OPTIMIZED, DS_COMPUTE_STANDARD]`) + cmd.Flags().StringVar(&updateDatasourceConfigReq.DatasourceConfig.DefaultFolder, "default-folder", updateDatasourceConfigReq.DatasourceConfig.DefaultFolder, `Schema name of the registered folder (in this catalog) that a new datasource is placed in when the request does not specify a schema.`) + cmd.Flags().StringVar(&updateDatasourceConfigReq.DatasourceConfig.Name, "name", updateDatasourceConfigReq.DatasourceConfig.Name, ``) + // TODO: complex arg: updated_by + + cmd.Use = "update-datasource-config NAME UPDATE_MASK" + cmd.Short = `*Beta* Update the datasource config for a catalog.` + cmd.Long = `This command is in Beta and may change without notice. + +Update the datasource config for a catalog. + + Updates the datasource ingestion configuration for a catalog. + + Arguments: + NAME: + UPDATE_MASK: The field mask must be a single string, with multiple fields separated by + commas (no spaces). The field path is relative to the resource object, + using a dot (.) to navigate sub-fields (e.g., author.given_name). + Specification of elements in sequence or map fields is not allowed, as + only the entire collection field can be specified. Field names must + exactly match the resource field names. + + A field mask of * indicates full replacement. It’s recommended to + always explicitly list the fields being updated and avoid using * + wildcards, as it can lead to unintended results if the API changes in the + future.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(2) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := updateDatasourceConfigJson.Unmarshal(&updateDatasourceConfigReq.DatasourceConfig) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + updateDatasourceConfigReq.Name = args[0] + if args[1] != "" { + updateMaskArray := strings.Split(args[1], ",") + updateDatasourceConfigReq.UpdateMask = *fieldmask.New(updateMaskArray) + } + + response, err := w.Lakewatch.UpdateDatasourceConfig(ctx, updateDatasourceConfigReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range updateDatasourceConfigOverrides { + fn(cmd, &updateDatasourceConfigReq) + } + + return cmd +} + +// start update-rule command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var updateRuleOverrides []func( + *cobra.Command, + *lakewatch.UpdateRuleRequest, +) + +func newUpdateRule() *cobra.Command { + cmd := &cobra.Command{} + + var updateRuleReq lakewatch.UpdateRuleRequest + updateRuleReq.Rule = lakewatch.Rule{} + var updateRuleJson flags.JsonFlag + + cmd.Flags().Var(&updateRuleJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&updateRuleReq.Etag, "etag", updateRuleReq.Etag, `Optimistic-concurrency token from the latest read.`) + // TODO: map via StringToStringVar: annotations + // TODO: complex arg: batch + cmd.Flags().StringVar(&updateRuleReq.Rule.Category, "category", updateRuleReq.Rule.Category, `Free-form rule category.`) + cmd.Flags().StringVar(&updateRuleReq.Rule.ContentResourceId, "content-resource-id", updateRuleReq.Rule.ContentResourceId, `Immutable UUIDv4 identifying the authored content resource installed as this rule.`) + // TODO: complex arg: created_by + cmd.Flags().Var(&updateRuleReq.Rule.Deduplication, "deduplication", `Signal deduplication mode. Supported values: [DEDUPLICATION_DEFAULT, DEDUPLICATION_DISABLED, DEDUPLICATION_ENABLED]`) + cmd.Flags().StringVar(&updateRuleReq.Rule.DeduplicationTimeWindow, "deduplication-time-window", updateRuleReq.Rule.DeduplicationTimeWindow, `Time window for deduplication, such as 1h, 24h, 7d, or automatic.`) + cmd.Flags().StringVar(&updateRuleReq.Rule.Description, "description", updateRuleReq.Rule.Description, `Free-form description.`) + // TODO: array: mitre + cmd.Flags().StringVar(&updateRuleReq.Rule.Name, "name", updateRuleReq.Rule.Name, `Resource name, in the form rules/{rule_id}.`) + cmd.Flags().StringVar(&updateRuleReq.Rule.Objective, "objective", updateRuleReq.Rule.Objective, `Long-form description of what this rule detects.`) + // TODO: complex arg: original_content_pack + // TODO: complex arg: owner + // TODO: array: references + cmd.Flags().StringVar(&updateRuleReq.Rule.RunAsPrincipal, "run-as-principal", updateRuleReq.Rule.RunAsPrincipal, `The principal whose identity this rule's job runs as, given as a user email or service-principal application ID.`) + cmd.Flags().StringVar(&updateRuleReq.Rule.Runbook, "runbook", updateRuleReq.Rule.Runbook, `Long-form operational guidance carried from the authored rule metadata.`) + // TODO: complex arg: status + var suppressUntilTimeParam string + cmd.Flags().StringVar(&suppressUntilTimeParam, "suppress-until-time", suppressUntilTimeParam, `If set, this rule's signals do not open new alerts until the given time.`) + // TODO: complex arg: timerange + // TODO: complex arg: updated_by + + cmd.Use = "update-rule NAME UPDATE_MASK CATALOG_NAME SCHEMA_NAME RULE_NAME SEVERITY FIDELITY SCHEDULE OUTPUT" + cmd.Short = `*Beta* Update a rule.` + cmd.Long = `This command is in Beta and may change without notice. + +Update a rule. + + Updates an existing rule. + + Arguments: + NAME: Resource name, in the form rules/{rule_id}. Assigned by the server on + create; required on update. + UPDATE_MASK: The set of fields to update. Only fields named in the mask are modified. + CATALOG_NAME: Name of the Unity Catalog catalog that contains the rule. Required. Cannot + be changed after creation. Reads return the value as supplied; the + catalog's current name is reported in effective_catalog_name. + SCHEMA_NAME: Name of the Unity Catalog schema that contains the rule. Required. Cannot + be changed after creation. Reads return the value as supplied; the + schema's current name is reported in effective_schema_name. + RULE_NAME: Name of the rule within its Unity Catalog schema. Required. Cannot be + changed after creation. Reads return the value as supplied; the current UC + name is reported in effective_rule_name. + SEVERITY: Free-form severity label, such as Informational, Medium, High, or + Critical. + FIDELITY: Signal quality for this rule. + Supported values: [FIDELITY_DEVELOPMENT, FIDELITY_HIGH, FIDELITY_INVESTIGATIVE, FIDELITY_MEDIUM] + SCHEDULE: When the rule executes. + OUTPUT: What to record in each signal.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + if cmd.Flags().Changed("json") { + err := root.ExactArgs(2)(cmd, args) + if err != nil { + return errors.New("when --json flag is specified, provide only NAME, UPDATE_MASK as positional arguments. Provide 'catalog_name', 'schema_name', 'rule_name', 'severity', 'fidelity', 'schedule', 'output' in your JSON input") + } + return nil + } + check := root.ExactArgs(9) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := updateRuleJson.Unmarshal(&updateRuleReq.Rule) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + updateRuleReq.Name = args[0] + if args[1] != "" { + updateMaskArray := strings.Split(args[1], ",") + updateRuleReq.UpdateMask = *fieldmask.New(updateMaskArray) + } + if !cmd.Flags().Changed("json") { + updateRuleReq.Rule.CatalogName = args[2] + } + if !cmd.Flags().Changed("json") { + updateRuleReq.Rule.SchemaName = args[3] + } + if !cmd.Flags().Changed("json") { + updateRuleReq.Rule.RuleName = args[4] + } + if !cmd.Flags().Changed("json") { + updateRuleReq.Rule.Severity = args[5] + } + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[6], &updateRuleReq.Rule.Fidelity) + if err != nil { + return fmt.Errorf("invalid FIDELITY: %s", args[6]) + } + + } + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[7], &updateRuleReq.Rule.Schedule) + if err != nil { + return fmt.Errorf("invalid SCHEDULE: %s", args[7]) + } + + } + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[8], &updateRuleReq.Rule.Output) + if err != nil { + return fmt.Errorf("invalid OUTPUT: %s", args[8]) + } + + } + + if suppressUntilTimeParam != "" { + suppressUntilTimeBytes := []byte(fmt.Sprintf("\"%s\"", suppressUntilTimeParam)) + var suppressUntilTimeField sdktime.Time + err = json.Unmarshal(suppressUntilTimeBytes, &suppressUntilTimeField) + if err != nil { + return fmt.Errorf("invalid SUPPRESS_UNTIL_TIME: %s", suppressUntilTimeParam) + } + updateRuleReq.Rule.SuppressUntilTime = &suppressUntilTimeField + } + + response, err := w.Lakewatch.UpdateRule(ctx, updateRuleReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range updateRuleOverrides { + fn(cmd, &updateRuleReq) + } + + return cmd +} + +// start update-rule-config command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var updateRuleConfigOverrides []func( + *cobra.Command, + *lakewatch.UpdateRuleConfigRequest, +) + +func newUpdateRuleConfig() *cobra.Command { + cmd := &cobra.Command{} + + var updateRuleConfigReq lakewatch.UpdateRuleConfigRequest + updateRuleConfigReq.RuleConfig = lakewatch.RuleConfig{} + var updateRuleConfigJson flags.JsonFlag + + cmd.Flags().Var(&updateRuleConfigJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&updateRuleConfigReq.Etag, "etag", updateRuleConfigReq.Etag, `Optimistic-concurrency precondition: if set and it does not match the resource's current etag, the update is rejected as a conflict (HTTP 409).`) + cmd.Flags().StringVar(&updateRuleConfigReq.RuleConfig.DefaultFolder, "default-folder", updateRuleConfigReq.RuleConfig.DefaultFolder, `Schema name of the registered folder (in this catalog) that a new rule is placed in when the request does not specify a schema.`) + // TODO: complex arg: default_schedule + cmd.Flags().StringVar(&updateRuleConfigReq.RuleConfig.DefaultSignalCollationWindow, "default-signal-collation-window", updateRuleConfigReq.RuleConfig.DefaultSignalCollationWindow, `Default duration string for signal deduplication when a rule doesn't override it — compact day/hour/minute/second components, e.g.`) + // TODO: array: detection_categories + // TODO: array: effective_detection_categories + cmd.Flags().StringVar(&updateRuleConfigReq.RuleConfig.Name, "name", updateRuleConfigReq.RuleConfig.Name, ``) + // TODO: complex arg: updated_by + + cmd.Use = "update-rule-config NAME UPDATE_MASK" + cmd.Short = `*Beta* Update the rule config for a catalog.` + cmd.Long = `This command is in Beta and may change without notice. + +Update the rule config for a catalog. + + Updates the detection-rule configuration for a catalog. + + Arguments: + NAME: + UPDATE_MASK: The field mask must be a single string, with multiple fields separated by + commas (no spaces). The field path is relative to the resource object, + using a dot (.) to navigate sub-fields (e.g., author.given_name). + Specification of elements in sequence or map fields is not allowed, as + only the entire collection field can be specified. Field names must + exactly match the resource field names. + + A field mask of * indicates full replacement. It’s recommended to + always explicitly list the fields being updated and avoid using * + wildcards, as it can lead to unintended results if the API changes in the + future.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(2) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := updateRuleConfigJson.Unmarshal(&updateRuleConfigReq.RuleConfig) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + updateRuleConfigReq.Name = args[0] + if args[1] != "" { + updateMaskArray := strings.Split(args[1], ",") + updateRuleConfigReq.UpdateMask = *fieldmask.New(updateMaskArray) + } + + response, err := w.Lakewatch.UpdateRuleConfig(ctx, updateRuleConfigReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range updateRuleConfigOverrides { + fn(cmd, &updateRuleConfigReq) + } + + return cmd +} + +// end service Lakewatch diff --git a/go.mod b/go.mod index 663f6eb30e1..2ddb60b8b74 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/charmbracelet/huh v1.0.0 // MIT github.com/charmbracelet/lipgloss v1.1.0 // MIT github.com/charmbracelet/x/ansi v0.11.9 // MIT - github.com/databricks/databricks-sdk-go v0.193.0 // Apache-2.0 + github.com/databricks/databricks-sdk-go v0.194.0 // Apache-2.0 github.com/databricks/sdk-go/auth v0.2.0 // Apache-2.0 github.com/databricks/sdk-go/core v0.1.0 // Apache-2.0 github.com/databricks/sdk-go/files v0.3.0 // Apache-2.0 diff --git a/go.sum b/go.sum index a5c6fff33d8..5049b80858e 100644 --- a/go.sum +++ b/go.sum @@ -60,8 +60,8 @@ github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= github.com/danieljoos/wincred v1.2.3 h1:v7dZC2x32Ut3nEfRH+vhoZGvN72+dQ/snVXo/vMFLdQ= github.com/danieljoos/wincred v1.2.3/go.mod h1:6qqX0WNrS4RzPZ1tnroDzq9kY3fu1KwE7MRLQK4X0bs= -github.com/databricks/databricks-sdk-go v0.193.0 h1:lxMaFEKO4PErcg9E2CBnLQGbzwrFYA3kK9S//HZM9mM= -github.com/databricks/databricks-sdk-go v0.193.0/go.mod h1:udBw6nxkaqa0fgPQ7ZW1kGFkltQncYx+qFJeVFmxtz8= +github.com/databricks/databricks-sdk-go v0.194.0 h1:/6lZFkAcnjocOfUBsi7oSXVwp8W+IaKDlcQFe4UYGPM= +github.com/databricks/databricks-sdk-go v0.194.0/go.mod h1:udBw6nxkaqa0fgPQ7ZW1kGFkltQncYx+qFJeVFmxtz8= github.com/databricks/sdk-go/auth v0.2.0 h1:543fVMvJ6pVxBymfjGGkkmfiHDbUqX7y9lZseEcE4tQ= github.com/databricks/sdk-go/auth v0.2.0/go.mod h1:eNJdFzBAfu1y32a3wPcTnjaUkjhS9VfyCNblKFPIPEo= github.com/databricks/sdk-go/core v0.1.0 h1:ZolzW/KVIJy1xXQ0zTsu/QYsEB4vQAEApbbq4D3RGHc= diff --git a/python/databricks/bundles/data_quality_monitors/_models/notification_destination.py b/python/databricks/bundles/data_quality_monitors/_models/notification_destination.py index 85340855579..c122219a2c0 100644 --- a/python/databricks/bundles/data_quality_monitors/_models/notification_destination.py +++ b/python/databricks/bundles/data_quality_monitors/_models/notification_destination.py @@ -19,9 +19,9 @@ class NotificationDestination: destination_ids: VariableOrList[str] = field(default_factory=list) """ - The notification-destination IDs (Slack / Teams / webhook) to send the notification to. The - destinations must already exist in the workspace; a workspace admin creates them. A maximum of - 25 destination IDs is supported. + The notification-destination IDs (Slack / Teams / webhook / Asana / ServiceNow / AWS + EventBridge) to send the notification to. The destinations must already exist in the + workspace; a workspace admin creates them. A maximum of 25 destination IDs is supported. Only supported on schema monitors, via `anomaly_detection_config`; rejected on table monitors. """ @@ -49,9 +49,9 @@ class NotificationDestinationDict(TypedDict, total=False): destination_ids: VariableOrList[str] """ - The notification-destination IDs (Slack / Teams / webhook) to send the notification to. The - destinations must already exist in the workspace; a workspace admin creates them. A maximum of - 25 destination IDs is supported. + The notification-destination IDs (Slack / Teams / webhook / Asana / ServiceNow / AWS + EventBridge) to send the notification to. The destinations must already exist in the + workspace; a workspace admin creates them. A maximum of 25 destination IDs is supported. Only supported on schema monitors, via `anomaly_detection_config`; rejected on table monitors. """ diff --git a/python/databricks/bundles/instance_pools/_models/instance_pool.py b/python/databricks/bundles/instance_pools/_models/instance_pool.py index 2b10f210284..45d3a5f23ba 100644 --- a/python/databricks/bundles/instance_pools/_models/instance_pool.py +++ b/python/databricks/bundles/instance_pools/_models/instance_pool.py @@ -62,6 +62,7 @@ class InstancePool(Resource): the Spark nodes in this cluster. For example, the Spark nodes can be provisioned and optimized for memory or compute intensive workloads. A list of available node types can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call. + The node type cannot be changed after the pool is created. """ aws_attributes: VariableOrOptional[InstancePoolAwsAttributes] = None @@ -185,6 +186,7 @@ class InstancePoolDict(TypedDict, total=False): the Spark nodes in this cluster. For example, the Spark nodes can be provisioned and optimized for memory or compute intensive workloads. A list of available node types can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call. + The node type cannot be changed after the pool is created. """ aws_attributes: VariableOrOptional[InstancePoolAwsAttributesParam] diff --git a/python/databricks/bundles/jobs/_models/ai_classify_function.py b/python/databricks/bundles/jobs/_models/ai_classify_function.py index 7698e420781..2058c25f4ce 100644 --- a/python/databricks/bundles/jobs/_models/ai_classify_function.py +++ b/python/databricks/bundles/jobs/_models/ai_classify_function.py @@ -18,8 +18,6 @@ @dataclass(kw_only=True) class AiClassifyFunction: """ - :meta private: [EXPERIMENTAL] - Configuration for a task that runs the `ai_classify` function. The label set comes from exactly one of two places: `inline_labels`, which @@ -31,35 +29,35 @@ class AiClassifyFunction: """ :meta private: [EXPERIMENTAL] - [Private Preview] The ai_classify function version to invoke (for example, `2.1`). + [Beta] The ai_classify function version to invoke (for example, `2.1`). """ enable_confidence_scores: VariableOrOptional[bool] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, includes a per-label confidence score in the response. + [Beta] When true, includes a per-label confidence score in the response. """ enable_rationales: VariableOrOptional[bool] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, includes a rationale explaining each classification in the response. + [Beta] When true, includes a rationale explaining each classification in the response. """ inline_labels: VariableOrOptional[AiClassifyFunctionInlineLabels] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] Labels listed inline, for a small label set. + [Beta] Labels listed inline, for a small label set. """ instructions: VariableOrOptional[str] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] Global description of the task and domain, passed to the model to improve + [Beta] Global description of the task and domain, passed to the model to improve classification quality. """ @@ -67,7 +65,7 @@ class AiClassifyFunction: """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, more than one label can be returned for each input. + [Beta] When true, more than one label can be returned for each input. """ @classmethod @@ -85,35 +83,35 @@ class AiClassifyFunctionDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The ai_classify function version to invoke (for example, `2.1`). + [Beta] The ai_classify function version to invoke (for example, `2.1`). """ enable_confidence_scores: VariableOrOptional[bool] """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, includes a per-label confidence score in the response. + [Beta] When true, includes a per-label confidence score in the response. """ enable_rationales: VariableOrOptional[bool] """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, includes a rationale explaining each classification in the response. + [Beta] When true, includes a rationale explaining each classification in the response. """ inline_labels: VariableOrOptional[AiClassifyFunctionInlineLabelsParam] """ :meta private: [EXPERIMENTAL] - [Private Preview] Labels listed inline, for a small label set. + [Beta] Labels listed inline, for a small label set. """ instructions: VariableOrOptional[str] """ :meta private: [EXPERIMENTAL] - [Private Preview] Global description of the task and domain, passed to the model to improve + [Beta] Global description of the task and domain, passed to the model to improve classification quality. """ @@ -121,7 +119,7 @@ class AiClassifyFunctionDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, more than one label can be returned for each input. + [Beta] When true, more than one label can be returned for each input. """ diff --git a/python/databricks/bundles/jobs/_models/ai_classify_function_inline_labels.py b/python/databricks/bundles/jobs/_models/ai_classify_function_inline_labels.py index 16c30ab6cd0..c8c1e1c2bb0 100644 --- a/python/databricks/bundles/jobs/_models/ai_classify_function_inline_labels.py +++ b/python/databricks/bundles/jobs/_models/ai_classify_function_inline_labels.py @@ -18,8 +18,6 @@ @dataclass(kw_only=True) class AiClassifyFunctionInlineLabels: """ - :meta private: [EXPERIMENTAL] - A label set listed inline. """ @@ -27,7 +25,7 @@ class AiClassifyFunctionInlineLabels: """ :meta private: [EXPERIMENTAL] - [Private Preview] The labels an input can be classified as. At least two labels are required + [Beta] The labels an input can be classified as. At least two labels are required unless `multilabel` is true, which also accepts a single label. """ @@ -46,7 +44,7 @@ class AiClassifyFunctionInlineLabelsDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The labels an input can be classified as. At least two labels are required + [Beta] The labels an input can be classified as. At least two labels are required unless `multilabel` is true, which also accepts a single label. """ diff --git a/python/databricks/bundles/jobs/_models/ai_classify_function_label.py b/python/databricks/bundles/jobs/_models/ai_classify_function_label.py index 912a5286625..240969f603c 100644 --- a/python/databricks/bundles/jobs/_models/ai_classify_function_label.py +++ b/python/databricks/bundles/jobs/_models/ai_classify_function_label.py @@ -14,8 +14,6 @@ @dataclass(kw_only=True) class AiClassifyFunctionLabel: """ - :meta private: [EXPERIMENTAL] - One label the input can be classified as. """ @@ -23,14 +21,14 @@ class AiClassifyFunctionLabel: """ :meta private: [EXPERIMENTAL] - [Private Preview] The name returned when an input is classified as this label. + [Beta] The name returned when an input is classified as this label. """ description: VariableOrOptional[str] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] Guidance describing what belongs under this label. + [Beta] Guidance describing what belongs under this label. """ @classmethod @@ -48,14 +46,14 @@ class AiClassifyFunctionLabelDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The name returned when an input is classified as this label. + [Beta] The name returned when an input is classified as this label. """ description: VariableOrOptional[str] """ :meta private: [EXPERIMENTAL] - [Private Preview] Guidance describing what belongs under this label. + [Beta] Guidance describing what belongs under this label. """ diff --git a/python/databricks/bundles/jobs/_models/ai_extract_function.py b/python/databricks/bundles/jobs/_models/ai_extract_function.py index 1d991f99636..452d9dce450 100644 --- a/python/databricks/bundles/jobs/_models/ai_extract_function.py +++ b/python/databricks/bundles/jobs/_models/ai_extract_function.py @@ -18,8 +18,6 @@ @dataclass(kw_only=True) class AiExtractFunction: """ - :meta private: [EXPERIMENTAL] - Configuration for a task that runs the `ai_extract` function. The fields to extract come from exactly one of two places: an existing AI @@ -31,14 +29,14 @@ class AiExtractFunction: """ :meta private: [EXPERIMENTAL] - [Private Preview] The ai_extract function version to invoke (for example, `2.1`). + [Beta] The ai_extract function version to invoke (for example, `2.1`). """ enable_citations: VariableOrOptional[bool] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, includes citation metadata locating each extracted value in the + [Beta] When true, includes citation metadata locating each extracted value in the source. """ @@ -46,14 +44,14 @@ class AiExtractFunction: """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, includes a per-field confidence score in the response. + [Beta] When true, includes a per-field confidence score in the response. """ instructions: VariableOrOptional[str] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] Global description of the task and domain, passed to the model to improve + [Beta] Global description of the task and domain, passed to the model to improve extraction quality. """ @@ -61,14 +59,14 @@ class AiExtractFunction: """ :meta private: [EXPERIMENTAL] - [Private Preview] The extraction mode. Defaults to standard extraction when unspecified. + [Beta] The extraction mode. Defaults to standard extraction when unspecified. """ schema: VariableOrOptional[str] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] The extraction schema defining the fields to extract, as a JSON string. + [Beta] The extraction schema defining the fields to extract, as a JSON string. Either an array of field names (e.g. ["company", "valuation"]) or an object mapping each field name to a type and an optional description. Supported types are string, integer, number, boolean, enum, object, and array; all @@ -90,14 +88,14 @@ class AiExtractFunctionDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The ai_extract function version to invoke (for example, `2.1`). + [Beta] The ai_extract function version to invoke (for example, `2.1`). """ enable_citations: VariableOrOptional[bool] """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, includes citation metadata locating each extracted value in the + [Beta] When true, includes citation metadata locating each extracted value in the source. """ @@ -105,14 +103,14 @@ class AiExtractFunctionDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, includes a per-field confidence score in the response. + [Beta] When true, includes a per-field confidence score in the response. """ instructions: VariableOrOptional[str] """ :meta private: [EXPERIMENTAL] - [Private Preview] Global description of the task and domain, passed to the model to improve + [Beta] Global description of the task and domain, passed to the model to improve extraction quality. """ @@ -120,14 +118,14 @@ class AiExtractFunctionDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The extraction mode. Defaults to standard extraction when unspecified. + [Beta] The extraction mode. Defaults to standard extraction when unspecified. """ schema: VariableOrOptional[str] """ :meta private: [EXPERIMENTAL] - [Private Preview] The extraction schema defining the fields to extract, as a JSON string. + [Beta] The extraction schema defining the fields to extract, as a JSON string. Either an array of field names (e.g. ["company", "valuation"]) or an object mapping each field name to a type and an optional description. Supported types are string, integer, number, boolean, enum, object, and array; all diff --git a/python/databricks/bundles/jobs/_models/ai_extract_function_mode.py b/python/databricks/bundles/jobs/_models/ai_extract_function_mode.py index af77c8e9680..560d6ac0af6 100644 --- a/python/databricks/bundles/jobs/_models/ai_extract_function_mode.py +++ b/python/databricks/bundles/jobs/_models/ai_extract_function_mode.py @@ -6,8 +6,6 @@ class AiExtractFunctionMode(Enum): """ - :meta private: [EXPERIMENTAL] - The extraction mode. """ diff --git a/python/databricks/bundles/jobs/_models/ai_function_task.py b/python/databricks/bundles/jobs/_models/ai_function_task.py index 8904bbf5986..99c7c332380 100644 --- a/python/databricks/bundles/jobs/_models/ai_function_task.py +++ b/python/databricks/bundles/jobs/_models/ai_function_task.py @@ -38,8 +38,6 @@ @dataclass(kw_only=True) class AiFunctionTask: """ - :meta private: [EXPERIMENTAL] - A task that applies an AI function to a set of input documents or rows. """ @@ -47,7 +45,7 @@ class AiFunctionTask: """ :meta private: [EXPERIMENTAL] - [Private Preview] Output destination table. When `table` is unset the task generates a stable name from the + [Beta] Output destination table. When `table` is unset the task generates a stable name from the function and task identity so a downstream task can reference it. """ @@ -55,35 +53,35 @@ class AiFunctionTask: """ :meta private: [EXPERIMENTAL] - [Private Preview] Classifies each input document or row into one or more labels. + [Beta] Classifies each input document or row into one or more labels. """ ai_extract: VariableOrOptional[AiExtractFunction] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] Extracts structured fields from the input documents or rows. + [Beta] Extracts structured fields from the input documents or rows. """ ai_parse_document: VariableOrOptional[AiParseDocumentFunction] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] Parses the input documents into structured text. + [Beta] Parses the input documents into structured text. """ delta_table: VariableOrOptional[DeltaTableSource] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] A Unity Catalog Delta table. The function is applied to each row. + [Beta] A Unity Catalog Delta table. The function is applied to each row. """ volume: VariableOrOptional[VolumeSource] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] A Unity Catalog volume. The function is applied to each file. + [Beta] A Unity Catalog volume. The function is applied to each file. """ @classmethod @@ -101,7 +99,7 @@ class AiFunctionTaskDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Output destination table. When `table` is unset the task generates a stable name from the + [Beta] Output destination table. When `table` is unset the task generates a stable name from the function and task identity so a downstream task can reference it. """ @@ -109,35 +107,35 @@ class AiFunctionTaskDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Classifies each input document or row into one or more labels. + [Beta] Classifies each input document or row into one or more labels. """ ai_extract: VariableOrOptional[AiExtractFunctionParam] """ :meta private: [EXPERIMENTAL] - [Private Preview] Extracts structured fields from the input documents or rows. + [Beta] Extracts structured fields from the input documents or rows. """ ai_parse_document: VariableOrOptional[AiParseDocumentFunctionParam] """ :meta private: [EXPERIMENTAL] - [Private Preview] Parses the input documents into structured text. + [Beta] Parses the input documents into structured text. """ delta_table: VariableOrOptional[DeltaTableSourceParam] """ :meta private: [EXPERIMENTAL] - [Private Preview] A Unity Catalog Delta table. The function is applied to each row. + [Beta] A Unity Catalog Delta table. The function is applied to each row. """ volume: VariableOrOptional[VolumeSourceParam] """ :meta private: [EXPERIMENTAL] - [Private Preview] A Unity Catalog volume. The function is applied to each file. + [Beta] A Unity Catalog volume. The function is applied to each file. """ diff --git a/python/databricks/bundles/jobs/_models/ai_parse_document_function.py b/python/databricks/bundles/jobs/_models/ai_parse_document_function.py index f91dc29dd93..25bca763c33 100644 --- a/python/databricks/bundles/jobs/_models/ai_parse_document_function.py +++ b/python/databricks/bundles/jobs/_models/ai_parse_document_function.py @@ -22,8 +22,6 @@ @dataclass(kw_only=True) class AiParseDocumentFunction: """ - :meta private: [EXPERIMENTAL] - Configuration for a task that runs the `ai_parse_document` function. """ @@ -31,7 +29,7 @@ class AiParseDocumentFunction: """ :meta private: [EXPERIMENTAL] - [Private Preview] The ai_parse_document output schema version to invoke (for example, `2.0`). + [Beta] The ai_parse_document output schema version to invoke (for example, `2.0`). """ description_element_types: VariableOrList[ @@ -40,7 +38,7 @@ class AiParseDocumentFunction: """ :meta private: [EXPERIMENTAL] - [Private Preview] Element types to generate AI descriptions for. Leave empty to generate no + [Beta] Element types to generate AI descriptions for. Leave empty to generate no descriptions; use ALL for every supported type, or list specific types to restrict generation to only those. """ @@ -49,14 +47,14 @@ class AiParseDocumentFunction: """ :meta private: [EXPERIMENTAL] - [Private Preview] Unity Catalog volume path where rendered page and element images are written. + [Beta] Unity Catalog volume path where rendered page and element images are written. """ page_range: VariableOrOptional[str] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] Pages to parse (1-indexed), as a comma-separated list of page numbers or + [Beta] Pages to parse (1-indexed), as a comma-separated list of page numbers or ranges (e.g. "1,3,5-10"). """ @@ -75,7 +73,7 @@ class AiParseDocumentFunctionDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The ai_parse_document output schema version to invoke (for example, `2.0`). + [Beta] The ai_parse_document output schema version to invoke (for example, `2.0`). """ description_element_types: VariableOrList[ @@ -84,7 +82,7 @@ class AiParseDocumentFunctionDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Element types to generate AI descriptions for. Leave empty to generate no + [Beta] Element types to generate AI descriptions for. Leave empty to generate no descriptions; use ALL for every supported type, or list specific types to restrict generation to only those. """ @@ -93,14 +91,14 @@ class AiParseDocumentFunctionDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Unity Catalog volume path where rendered page and element images are written. + [Beta] Unity Catalog volume path where rendered page and element images are written. """ page_range: VariableOrOptional[str] """ :meta private: [EXPERIMENTAL] - [Private Preview] Pages to parse (1-indexed), as a comma-separated list of page numbers or + [Beta] Pages to parse (1-indexed), as a comma-separated list of page numbers or ranges (e.g. "1,3,5-10"). """ diff --git a/python/databricks/bundles/jobs/_models/ai_parse_document_function_description_element_type.py b/python/databricks/bundles/jobs/_models/ai_parse_document_function_description_element_type.py index 5edc65b1477..f48675137f5 100644 --- a/python/databricks/bundles/jobs/_models/ai_parse_document_function_description_element_type.py +++ b/python/databricks/bundles/jobs/_models/ai_parse_document_function_description_element_type.py @@ -6,8 +6,6 @@ class AiParseDocumentFunctionDescriptionElementType(Enum): """ - :meta private: [EXPERIMENTAL] - An element type that AI descriptions can be generated for. """ diff --git a/python/databricks/bundles/jobs/_models/ai_runtime_task_priority_class.py b/python/databricks/bundles/jobs/_models/ai_runtime_task_priority_class.py index 1dd09afd131..c2f84db1f18 100644 --- a/python/databricks/bundles/jobs/_models/ai_runtime_task_priority_class.py +++ b/python/databricks/bundles/jobs/_models/ai_runtime_task_priority_class.py @@ -14,9 +14,8 @@ class AiRuntimeTaskPriorityClass(Enum): BEST_EFFORT = "BEST_EFFORT" NORMAL = "NORMAL" - CRITICAL = "CRITICAL" AiRuntimeTaskPriorityClassParam = ( - Literal["BEST_EFFORT", "NORMAL", "CRITICAL"] | AiRuntimeTaskPriorityClass + Literal["BEST_EFFORT", "NORMAL"] | AiRuntimeTaskPriorityClass ) diff --git a/python/databricks/bundles/jobs/_models/delta_table_source.py b/python/databricks/bundles/jobs/_models/delta_table_source.py index d82984c459d..7bffa5a7001 100644 --- a/python/databricks/bundles/jobs/_models/delta_table_source.py +++ b/python/databricks/bundles/jobs/_models/delta_table_source.py @@ -14,8 +14,6 @@ @dataclass(kw_only=True) class DeltaTableSource: """ - :meta private: [EXPERIMENTAL] - A Unity Catalog Delta table input source. The function is applied to each row. """ @@ -23,21 +21,21 @@ class DeltaTableSource: """ :meta private: [EXPERIMENTAL] - [Private Preview] Name of the column holding the content the function is applied to. + [Beta] Name of the column holding the content the function is applied to. """ table_name: VariableOr[str] """ :meta private: [EXPERIMENTAL] - [Private Preview] Fully qualified three-part name of the source table (catalog.schema.table). + [Beta] Fully qualified three-part name of the source table (catalog.schema.table). """ merge_key_columns: VariableOrList[str] = field(default_factory=list) """ :meta private: [EXPERIMENTAL] - [Private Preview] Columns that together identify a row across incremental runs, so results can + [Beta] Columns that together identify a row across incremental runs, so results can be matched back to their source rows. When unset, the task derives an implicit key from Delta row tracking. If row tracking is also disabled there is no stable key, so each run reprocesses the entire source (a full refresh) @@ -60,21 +58,21 @@ class DeltaTableSourceDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Name of the column holding the content the function is applied to. + [Beta] Name of the column holding the content the function is applied to. """ table_name: VariableOr[str] """ :meta private: [EXPERIMENTAL] - [Private Preview] Fully qualified three-part name of the source table (catalog.schema.table). + [Beta] Fully qualified three-part name of the source table (catalog.schema.table). """ merge_key_columns: VariableOrList[str] """ :meta private: [EXPERIMENTAL] - [Private Preview] Columns that together identify a row across incremental runs, so results can + [Beta] Columns that together identify a row across incremental runs, so results can be matched back to their source rows. When unset, the task derives an implicit key from Delta row tracking. If row tracking is also disabled there is no stable key, so each run reprocesses the entire source (a full refresh) diff --git a/python/databricks/bundles/jobs/_models/qualified_name.py b/python/databricks/bundles/jobs/_models/qualified_name.py index 34e85a1aca4..9a56bcba5ab 100644 --- a/python/databricks/bundles/jobs/_models/qualified_name.py +++ b/python/databricks/bundles/jobs/_models/qualified_name.py @@ -14,8 +14,6 @@ @dataclass(kw_only=True) class QualifiedName: """ - :meta private: [EXPERIMENTAL] - A three-level Unity Catalog name (catalog.schema.table); any level may be unset. """ @@ -23,21 +21,21 @@ class QualifiedName: """ :meta private: [EXPERIMENTAL] - [Private Preview] Unity Catalog catalog. + [Beta] Unity Catalog catalog. """ schema: VariableOrOptional[str] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] Unity Catalog schema, within the catalog. + [Beta] Unity Catalog schema, within the catalog. """ table: VariableOrOptional[str] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] Table, within the catalog and schema. + [Beta] Table, within the catalog and schema. """ @classmethod @@ -55,21 +53,21 @@ class QualifiedNameDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Unity Catalog catalog. + [Beta] Unity Catalog catalog. """ schema: VariableOrOptional[str] """ :meta private: [EXPERIMENTAL] - [Private Preview] Unity Catalog schema, within the catalog. + [Beta] Unity Catalog schema, within the catalog. """ table: VariableOrOptional[str] """ :meta private: [EXPERIMENTAL] - [Private Preview] Table, within the catalog and schema. + [Beta] Table, within the catalog and schema. """ diff --git a/python/databricks/bundles/jobs/_models/task.py b/python/databricks/bundles/jobs/_models/task.py index b0e414635fc..c2660176e15 100644 --- a/python/databricks/bundles/jobs/_models/task.py +++ b/python/databricks/bundles/jobs/_models/task.py @@ -119,7 +119,7 @@ class Task: """ :meta private: [EXPERIMENTAL] - [Private Preview] Applies an AI function to a set of input documents or rows. + [Beta] Applies an AI function to a set of input documents or rows. """ ai_runtime_task: VariableOrOptional[AiRuntimeTask] = None @@ -373,7 +373,7 @@ class TaskDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Applies an AI function to a set of input documents or rows. + [Beta] Applies an AI function to a set of input documents or rows. """ ai_runtime_task: VariableOrOptional[AiRuntimeTaskParam] diff --git a/python/databricks/bundles/jobs/_models/volume_source.py b/python/databricks/bundles/jobs/_models/volume_source.py index e15ceaa7e97..d2810b063fd 100644 --- a/python/databricks/bundles/jobs/_models/volume_source.py +++ b/python/databricks/bundles/jobs/_models/volume_source.py @@ -14,8 +14,6 @@ @dataclass(kw_only=True) class VolumeSource: """ - :meta private: [EXPERIMENTAL] - A Unity Catalog volume input source. The function is applied to each file. """ @@ -23,7 +21,7 @@ class VolumeSource: """ :meta private: [EXPERIMENTAL] - [Private Preview] Unity Catalog volume path to the input files + [Beta] Unity Catalog volume path to the input files (e.g. `/Volumes////...`). """ @@ -42,7 +40,7 @@ class VolumeSourceDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Unity Catalog volume path to the input files + [Beta] Unity Catalog volume path to the input files (e.g. `/Volumes////...`). """ From 75f3554fb2226d27f22c8bdbaf89c78340b8018e Mon Sep 17 00:00:00 2001 From: "pieter.noordhuis" Date: Thu, 5 Nov 2026 13:37:55 +0000 Subject: [PATCH 2/3] Fix tests for Go SDK v0.194.0 - Don't register the generated `sandbox` workspace command alongside the hand-written one. Cobra sorts commands with an unstable sort, so adding `lakewatch` flipped which of the two duplicates won dispatch. Unhide the hand-written command so `sandbox` stays listed in `databricks --help`. - Drop `CRITICAL` from `air` priority classes; the SDK removed it from `jobs.AiRuntimeTaskPriorityClass`. - Update help output for the new `lakewatch` command. - Add the PR link to the SDK changelog fragment. Co-authored-by: Isaac --- .nextchanges/air/priority-class-critical.md | 1 + .../dependency-updates/go-sdk-v0.194.0.md | 2 +- acceptance/air/config-help/output.txt | 4 ++-- acceptance/air/convert-to-dabs/output.txt | 2 +- acceptance/air/convert-to-dabs/train.yaml | 2 +- acceptance/help/output.txt | 7 ++++--- cmd/air/compute.go | 9 ++++----- cmd/air/compute_test.go | 12 ++++++------ cmd/air/convert_to_dabs_test.go | 4 ++-- cmd/air/runsubmit_test.go | 3 +-- cmd/air/validateconfig_test.go | 4 ++-- cmd/cmd.go | 14 +++++++++++++- cmd/cmd_test.go | 18 ++++++++++++++++++ cmd/sandbox/sandbox.go | 1 - 14 files changed, 56 insertions(+), 27 deletions(-) create mode 100644 .nextchanges/air/priority-class-critical.md create mode 100644 cmd/cmd_test.go diff --git a/.nextchanges/air/priority-class-critical.md b/.nextchanges/air/priority-class-critical.md new file mode 100644 index 00000000000..cc97685f162 --- /dev/null +++ b/.nextchanges/air/priority-class-critical.md @@ -0,0 +1 @@ +* Remove `CRITICAL` as a valid `compute.priority_class` value; the AI Runtime API no longer accepts it. ([#7371](https://github.com/databricks/cli/pull/7371)) diff --git a/.nextchanges/dependency-updates/go-sdk-v0.194.0.md b/.nextchanges/dependency-updates/go-sdk-v0.194.0.md index 4a361e8d520..2da8fe281cf 100644 --- a/.nextchanges/dependency-updates/go-sdk-v0.194.0.md +++ b/.nextchanges/dependency-updates/go-sdk-v0.194.0.md @@ -1 +1 @@ -* Update the Go SDK to [v0.194.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.194.0). +* Update the Go SDK to [v0.194.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.194.0). ([#7371](https://github.com/databricks/cli/pull/7371)) diff --git a/acceptance/air/config-help/output.txt b/acceptance/air/config-help/output.txt index 4df01151206..d30ddde837f 100644 --- a/acceptance/air/config-help/output.txt +++ b/acceptance/air/config-help/output.txt @@ -83,7 +83,7 @@ config.compute num_accelerators Total number of GPUs to allocate. accelerator_type Which accelerator to run on, e.g. GPU_1xA10. pool_id GPU pool to run on, by id. - priority_class Scheduling priority within the pool: BEST_EFFORT (lowest, preemptable), NORMAL, or CRITICAL (highest). + priority_class Scheduling priority within the pool: BEST_EFFORT (lowest, preemptable) or NORMAL. Use "-h config.compute." for details on a field. @@ -104,7 +104,7 @@ config.compute.pool_id >>> [CLI] air run -h config.compute.priority_class config.compute.priority_class - Scheduling priority within the pool: BEST_EFFORT (lowest, preemptable), NORMAL, or CRITICAL (highest). Requires pool_id. + Scheduling priority within the pool: BEST_EFFORT (lowest, preemptable) or NORMAL. Requires pool_id. Type: string Required: no diff --git a/acceptance/air/convert-to-dabs/output.txt b/acceptance/air/convert-to-dabs/output.txt index a37e97d3c3f..4b80cc0e0c5 100644 --- a/acceptance/air/convert-to-dabs/output.txt +++ b/acceptance/air/convert-to-dabs/output.txt @@ -57,7 +57,7 @@ resources: provisioned_capacity_id: capacity-1 code_source_path: ./dist/code_source.tgz mlflow_artifact_location: dbfs:/Volumes/main/default/artifacts - priority_class: CRITICAL + priority_class: NORMAL unity_catalog_image_path: main.air.training:prod environments: - environment_key: default diff --git a/acceptance/air/convert-to-dabs/train.yaml b/acceptance/air/convert-to-dabs/train.yaml index fd0ba90f1e5..63ea29014c2 100644 --- a/acceptance/air/convert-to-dabs/train.yaml +++ b/acceptance/air/convert-to-dabs/train.yaml @@ -6,7 +6,7 @@ compute: accelerator_type: GPU_1xA10 num_accelerators: 1 pool_id: capacity-1 - priority_class: CRITICAL + priority_class: NORMAL mlflow_artifact_location: dbfs:/Volumes/main/default/artifacts environment: unity_catalog_image: main.air.training:prod diff --git a/acceptance/help/output.txt b/acceptance/help/output.txt index 632c09ca2c1..c45b23df508 100644 --- a/acceptance/help/output.txt +++ b/acceptance/help/output.txt @@ -3,6 +3,9 @@ Databricks CLI Usage: databricks [command] +Lakewatch + lakewatch *Beta* Manage Lakewatch: security-analytics data sources, detection rules, and per-catalog configuration. + Databricks Workspace fs Filesystem related commands git-credentials Registers personal access token for Databricks to do operations on behalf of the user. @@ -20,9 +23,6 @@ Compute policy-compliance-for-clusters The policy compliance APIs allow you to view and manage the policy compliance status of clusters in your workspace. policy-families View available policy families. -Sandbox - sandbox *Beta* Create, manage, and control the lifecycle of sandboxes -- isolated, pre-configured, low-latency Serverless compute environments for running code. - Lakeflow jobs The Jobs API allows you to create, edit, and delete jobs. pipelines The Lakeflow Spark Declarative Pipelines API allows you to create, edit, delete, start, and view details about pipelines. @@ -182,6 +182,7 @@ Domains Developer Tools air *Public Preview* Run and manage AI Runtime training workloads bundle Declarative Automation Bundles let you express data/AI/analytics projects as code. + sandbox Manage Databricks Sandbox environments sync Synchronize a local directory to a workspace directory Additional Commands: diff --git a/cmd/air/compute.go b/cmd/air/compute.go index 20a3895c09b..03fa6d75a5e 100644 --- a/cmd/air/compute.go +++ b/cmd/air/compute.go @@ -48,12 +48,11 @@ type priorityClass string const ( priorityClassBestEffort priorityClass = "BEST_EFFORT" priorityClassNormal priorityClass = "NORMAL" - priorityClassCritical priorityClass = "CRITICAL" ) // priorityClasses lists every valid value, low to high. Used for validation // error messages. -var priorityClasses = []priorityClass{priorityClassBestEffort, priorityClassNormal, priorityClassCritical} +var priorityClasses = []priorityClass{priorityClassBestEffort, priorityClassNormal} func validPriorityClassesHint() string { names := make([]string, len(priorityClasses)) @@ -65,10 +64,10 @@ func validPriorityClassesHint() string { // parsePriorityClass normalizes a YAML priority_class to the enum's contract // value. Unlike accelerator_type, the match is case-insensitive: the input is -// trimmed and upper-cased, so `critical` and `CRITICAL` both resolve. +// trimmed and upper-cased, so `normal` and `NORMAL` both resolve. func parsePriorityClass(value string) (priorityClass, error) { switch p := priorityClass(strings.ToUpper(strings.TrimSpace(value))); p { - case priorityClassBestEffort, priorityClassNormal, priorityClassCritical: + case priorityClassBestEffort, priorityClassNormal: return p, nil } return "", fmt.Errorf("invalid priority_class %q: %s", value, validPriorityClassesHint()) @@ -95,7 +94,7 @@ type computeConfig struct { NumAccelerators int `yaml:"num_accelerators" help:"Total number of GPUs to allocate. Must be a positive multiple of the accelerator type's per-node GPU count. See https://docs.databricks.com/aws/en/machine-learning/ai-runtime/cli/yaml-config#reference for supported GPU types."` AcceleratorType string `yaml:"accelerator_type" help:"Which accelerator to run on, e.g. GPU_1xA10. See https://docs.databricks.com/aws/en/machine-learning/ai-runtime/cli/yaml-config#reference for the current list of supported GPU types. Matched case-sensitively."` PoolID *string `yaml:"pool_id" help:"GPU pool to run on, by id. A GPU pool is a pre-provisioned accelerator reservation; contact your Databricks account team to provision one. Must be 1-255 characters. List available pools with 'air pools list'."` - PriorityClass *string `yaml:"priority_class" help:"Scheduling priority within the pool: BEST_EFFORT (lowest, preemptable), NORMAL, or CRITICAL (highest). Requires pool_id."` + PriorityClass *string `yaml:"priority_class" help:"Scheduling priority within the pool: BEST_EFFORT (lowest, preemptable) or NORMAL. Requires pool_id."` } // validate checks the compute block against the backend's constraints. diff --git a/cmd/air/compute_test.go b/cmd/air/compute_test.go index a8d472c3f70..3a8186eff05 100644 --- a/cmd/air/compute_test.go +++ b/cmd/air/compute_test.go @@ -66,13 +66,13 @@ func TestGPUsPerNode(t *testing.T) { func TestParsePriorityClass(t *testing.T) { // Case-insensitive: mixed/lower case and surrounding whitespace normalize to // the enum's contract value. - for _, in := range []string{"CRITICAL", "critical", "Critical", " critical "} { + for _, in := range []string{"NORMAL", "normal", "Normal", " normal "} { got, err := parsePriorityClass(in) require.NoError(t, err) - assert.Equal(t, priorityClassCritical, got) + assert.Equal(t, priorityClassNormal, got) } - for _, in := range []string{"urgent", "", "high"} { + for _, in := range []string{"urgent", "", "high", "CRITICAL"} { _, err := parsePriorityClass(in) require.Error(t, err) assert.Contains(t, err.Error(), "valid values are") @@ -82,9 +82,9 @@ func TestParsePriorityClass(t *testing.T) { func TestComputeConfigValidateNormalizesPriorityClass(t *testing.T) { // A lower-case value is upper-cased in place so the submitted payload carries // the enum's contract value. - cfg := computeConfig{NumAccelerators: 1, AcceleratorType: "GPU_1xH100", PoolID: new("cap"), PriorityClass: new("critical")} + cfg := computeConfig{NumAccelerators: 1, AcceleratorType: "GPU_1xH100", PoolID: new("cap"), PriorityClass: new("best_effort")} require.NoError(t, cfg.validate()) - assert.Equal(t, "CRITICAL", *cfg.PriorityClass) + assert.Equal(t, "BEST_EFFORT", *cfg.PriorityClass) } func TestComputeConfigValidate(t *testing.T) { @@ -114,7 +114,7 @@ func TestComputeConfigValidate(t *testing.T) { {"B300 count twelve", computeConfig{NumAccelerators: 12, AcceleratorType: "GPU_8xB300"}, "multiple of 8"}, {"B300 zero", computeConfig{NumAccelerators: 0, AcceleratorType: "GPU_8xB300"}, "must be positive"}, {"B300 negative", computeConfig{NumAccelerators: -8, AcceleratorType: "GPU_8xB300"}, "must be positive"}, - {"priority class", computeConfig{NumAccelerators: 1, AcceleratorType: "GPU_1xH100", PoolID: new("cap"), PriorityClass: new("critical")}, ""}, + {"priority class", computeConfig{NumAccelerators: 1, AcceleratorType: "GPU_1xH100", PoolID: new("cap"), PriorityClass: new("normal")}, ""}, {"priority class requires reservation", computeConfig{NumAccelerators: 1, AcceleratorType: "GPU_1xH100", PriorityClass: new("NORMAL")}, "requires compute.pool_id"}, {"invalid priority class", computeConfig{NumAccelerators: 1, AcceleratorType: "GPU_1xH100", PoolID: new("cap"), PriorityClass: new("urgent")}, "invalid priority_class"}, } diff --git a/cmd/air/convert_to_dabs_test.go b/cmd/air/convert_to_dabs_test.go index cbffa6b224c..b3fb98b78ed 100644 --- a/cmd/air/convert_to_dabs_test.go +++ b/cmd/air/convert_to_dabs_test.go @@ -193,10 +193,10 @@ func TestConvertToDabsPreservesPoolPriorityAndUnityCatalogImage(t *testing.T) { }{ {name: "unset"}, {name: "pool", poolID: "capacity-1"}, - {name: "pool-priority", poolID: "capacity-1", priorityClass: "CRITICAL"}, + {name: "pool-priority", poolID: "capacity-1", priorityClass: "NORMAL"}, {name: "image", imagePath: "main.air.training:prod"}, {name: "pool-image", poolID: "capacity-1", imagePath: "main.air.training:prod"}, - {name: "pool-priority-image", poolID: "capacity-1", priorityClass: "CRITICAL", imagePath: "main.air.training:prod"}, + {name: "pool-priority-image", poolID: "capacity-1", priorityClass: "NORMAL", imagePath: "main.air.training:prod"}, } { t.Run(tc.name, func(t *testing.T) { cfg := minimalConfig diff --git a/cmd/air/runsubmit_test.go b/cmd/air/runsubmit_test.go index d722edac163..8126f13b298 100644 --- a/cmd/air/runsubmit_test.go +++ b/cmd/air/runsubmit_test.go @@ -141,12 +141,11 @@ func TestSubmitRun(t *testing.T) { }{ {name: "on-demand"}, {name: "pool", poolID: "capacity-1"}, - {name: "pool-critical", poolID: "capacity-1", priorityClass: "CRITICAL"}, {name: "pool-normal", poolID: "capacity-1", priorityClass: "NORMAL"}, {name: "pool-best-effort", poolID: "capacity-1", priorityClass: "BEST_EFFORT"}, {name: "image", unityCatalogImagePath: "main.air.training:prod"}, {name: "pool-image", poolID: "capacity-1", unityCatalogImagePath: "main.air.training:prod"}, - {name: "pool-priority-image", poolID: "capacity-1", priorityClass: "CRITICAL", unityCatalogImagePath: "main.air.training:prod"}, + {name: "pool-priority-image", poolID: "capacity-1", priorityClass: "BEST_EFFORT", unityCatalogImagePath: "main.air.training:prod"}, } { t.Run(tc.name, func(t *testing.T) { server := testserver.New(t) diff --git a/cmd/air/validateconfig_test.go b/cmd/air/validateconfig_test.go index f0a0f3e38c8..0ebc4c288bd 100644 --- a/cmd/air/validateconfig_test.go +++ b/cmd/air/validateconfig_test.go @@ -435,13 +435,13 @@ func TestValidateConfigRequestCarriesPriorityClass(t *testing.T) { cfg := baseRunConfig() cfg.Compute.PoolID = new("cap-8xh100-res") - cfg.Compute.PriorityClass = new("CRITICAL") + cfg.Compute.PriorityClass = new("NORMAL") err := preflightValidate(t.Context(), validationTestWorkspaceClient(t, srv.URL), cfg, "/Workspace/Users/me/cmd.sh", nil, "token") require.NoError(t, err) task := gotReq["task"].(map[string]any) // priority_class is task-level; provisioned_capacity_id stays on the compute spec. - assert.Equal(t, "CRITICAL", task["priority_class"]) + assert.Equal(t, "NORMAL", task["priority_class"]) compute := task["deployments"].([]any)[0].(map[string]any)["compute"].(map[string]any) assert.Equal(t, "cap-8xh100-res", compute["provisioned_capacity_id"]) } diff --git a/cmd/cmd.go b/cmd/cmd.go index 7888af65068..9bc26de1785 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -66,9 +66,21 @@ func New(ctx context.Context) *cobra.Command { // Add account subcommand. cli.AddCommand(accountCommand()) + // Hand-written commands that replace a generated workspace command of the + // same name. Cobra resolves duplicate names by position after an unstable + // sort, so the generated command must not be registered at all. + sandboxCmd := sandbox.New() + replacedWorkspaceCommands := map[string]bool{ + sandboxCmd.Name(): true, + } + // Add workspace subcommands. workspaceCommands := workspace.All() for _, cmd := range workspaceCommands { + if replacedWorkspaceCommands[cmd.Name()] { + continue + } + // Order the permissions subcommands after the main commands. for _, sub := range cmd.Commands() { // some commands override groups in overrides.go, leave them as-is @@ -118,7 +130,7 @@ func New(ctx context.Context) *cobra.Command { cli.AddCommand(configure.New()) cli.AddCommand(fs.New()) cli.AddCommand(labs.New(ctx)) - cli.AddCommand(sandbox.New()) + cli.AddCommand(sandboxCmd) cli.AddCommand(sync.New()) cli.AddCommand(version.New()) cli.AddCommand(quickstart.New()) diff --git a/cmd/cmd_test.go b/cmd/cmd_test.go new file mode 100644 index 00000000000..0ed19a1a2bb --- /dev/null +++ b/cmd/cmd_test.go @@ -0,0 +1,18 @@ +package cmd_test + +import ( + "testing" + + "github.com/databricks/cli/cmd" + "github.com/stretchr/testify/assert" +) + +func TestRootCommandNamesAreUnique(t *testing.T) { + cli := cmd.New(t.Context()) + + seen := map[string]bool{} + for _, sub := range cli.Commands() { + assert.False(t, seen[sub.Name()], "duplicate top-level command %q", sub.Name()) + seen[sub.Name()] = true + } +} diff --git a/cmd/sandbox/sandbox.go b/cmd/sandbox/sandbox.go index 39ff208129b..059a5ce9493 100644 --- a/cmd/sandbox/sandbox.go +++ b/cmd/sandbox/sandbox.go @@ -10,7 +10,6 @@ func New() *cobra.Command { Use: "sandbox", Short: "Manage Databricks Sandbox environments", GroupID: "development", - Hidden: true, Long: `Manage Databricks Sandbox environments. Sandbox provides SSH-accessible development environments backed by From 7b1062b8c0f769ab44477e121287f8ad61ae3710 Mon Sep 17 00:00:00 2001 From: "pieter.noordhuis" Date: Thu, 5 Nov 2026 14:07:26 +0000 Subject: [PATCH 3/3] Mark the sandbox command as Beta in help output Co-authored-by: Isaac --- acceptance/help/output.txt | 2 +- cmd/sandbox/sandbox.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/acceptance/help/output.txt b/acceptance/help/output.txt index c45b23df508..a76bb50e050 100644 --- a/acceptance/help/output.txt +++ b/acceptance/help/output.txt @@ -182,7 +182,7 @@ Domains Developer Tools air *Public Preview* Run and manage AI Runtime training workloads bundle Declarative Automation Bundles let you express data/AI/analytics projects as code. - sandbox Manage Databricks Sandbox environments + sandbox *Beta* Manage Databricks Sandbox environments sync Synchronize a local directory to a workspace directory Additional Commands: diff --git a/cmd/sandbox/sandbox.go b/cmd/sandbox/sandbox.go index 059a5ce9493..9b40c16d370 100644 --- a/cmd/sandbox/sandbox.go +++ b/cmd/sandbox/sandbox.go @@ -8,7 +8,7 @@ import ( func New() *cobra.Command { cmd := &cobra.Command{ Use: "sandbox", - Short: "Manage Databricks Sandbox environments", + Short: "*Beta* Manage Databricks Sandbox environments", GroupID: "development", Long: `Manage Databricks Sandbox environments.