diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index c30ba6afac0..0cf8a83d600 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -c68a27fa9c9d838e839c584be8018eb3b68377d5 \ No newline at end of file +991b0723352f59606b0043604aa9206ec294b07d \ No newline at end of file diff --git a/.codegen/cli.json b/.codegen/cli.json index 2e98a5a8f42..61835fb4a8c 100644 --- a/.codegen/cli.json +++ b/.codegen/cli.json @@ -1,7 +1,4 @@ { - "metadata": { - "generator_version": "cliv1" - }, "schemas": { "agentbricks.CancelCustomLlmOptimizationRunRequest": {}, "agentbricks.CreateCustomLlmRequest": { @@ -142,6 +139,1096 @@ } } }, + "aisearch.ColumnInfo": { + "description": "Column information (name and data type) for an index column. Surfaced on `Index.column_info`.", + "fields": { + "name": { + "description": "Name of the column.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "type_text": { + "description": "Data type of the column (e.g., \"string\", \"int\", \"array\u003cfloat\u003e\").", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.CreateEndpointRequest": { + "fields": { + "endpoint": { + "description": "The Endpoint resource to create. Fields other than `endpoint.name` carry the desired\nconfiguration; `endpoint.name` is server-assigned from `parent` and `endpoint_id`.", + "ref": "aisearch.Endpoint", + "launch_stage": "PRIVATE_PREVIEW" + }, + "endpoint_id": { + "description": "The user-supplied short name for the Endpoint, per AIP-133. The server composes the\nfull `Endpoint.name` as `{parent}/endpoints/{endpoint_id}`. AIP-133 does not list\n`endpoint_id` as a fields-may-be-required entry, so we annotate it OPTIONAL on the\nwire; the server still rejects empty values with INVALID_PARAMETER_VALUE.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.CreateIndexRequest": { + "fields": { + "index": { + "description": "The Index resource to create. Fields other than `index.name` carry the desired\nconfiguration; `index.name` is server-assigned from `parent` and `index_id`.", + "ref": "aisearch.Index", + "launch_stage": "PRIVATE_PREVIEW" + }, + "index_id": { + "description": "The user-supplied Unity Catalog table name for the Index, per AIP-133. The server\ncomposes the full `Index.name` as `{parent}/indexes/{index_id}`. AIP-133 does not\nlist `index_id` as a fields-may-be-required entry, so we annotate it OPTIONAL on the\nwire; the server still rejects empty values with INVALID_PARAMETER_VALUE.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.CustomTag": { + "description": "User-defined key/value tag attached to an AI Search endpoint for cost attribution and access control.", + "fields": { + "key": { + "description": "Key field for an AI Search endpoint tag.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "value": { + "description": "[Optional] Value field for an AI Search endpoint tag.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.DataModificationResult": { + "description": "Per-row outcome of a data-plane upsert or delete operation.", + "fields": { + "failed_primary_keys": { + "description": "Primary keys of rows that failed to process.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "success_row_count": { + "description": "Count of rows processed successfully.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.DataModificationStatus": { + "description": "Overall outcome of a data-plane upsert or delete. Mirrors the legacy\n`databricks.brickindexscheduler.UpsertDeleteDataStatus` value-for-value.", + "enum": [ + "SUCCESS", + "PARTIAL_SUCCESS", + "FAILURE" + ], + "enum_launch_stages": { + "FAILURE": "PRIVATE_PREVIEW", + "PARTIAL_SUCCESS": "PRIVATE_PREVIEW", + "SUCCESS": "PRIVATE_PREVIEW" + } + }, + "aisearch.DeleteEndpointRequest": {}, + "aisearch.DeleteIndexRequest": {}, + "aisearch.DeltaSyncIndexSpec": { + "description": "Specification for a Delta Sync index — the index is kept in sync with a source Delta table.", + "fields": { + "columns_to_sync": { + "description": "[Optional] Select the columns to sync with the index. If left blank, all columns\nfrom the source table are synced. The primary key column and embedding source or\nvector column are always synced.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "embedding_source_columns": { + "description": "The columns that contain the embedding source.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "embedding_vector_columns": { + "description": "The columns that contain the embedding vectors.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "embedding_writeback_table": { + "description": "[Optional] Name of the Delta table to sync the index contents and computed embeddings to.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "pipeline_id": { + "description": "The ID of the pipeline that is used to sync the index.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "pipeline_type": { + "description": "Pipeline execution mode. Required on create — the backend rejects an unset value.\nStorage Optimized endpoints accept only `TRIGGERED`; Standard endpoints accept both.\nNo explicit `stage` — a REQUIRED field staged below its service would be dropped from\ncombined specs while remaining in `required`, tripping the OpenAPI required-vs-properties\nconsistency check. The field inherits the service's launch stage.", + "ref": "aisearch.PipelineType", + "launch_stage": "PRIVATE_PREVIEW" + }, + "source_table": { + "description": "The full name of the source Delta table.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.DirectAccessIndexSpec": { + "description": "Specification for a Direct Access index — the customer manages vectors and metadata directly.", + "fields": { + "embedding_source_columns": { + "description": "The columns that contain the embedding source.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "embedding_vector_columns": { + "description": "The columns that contain the embedding vectors.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "schema_json": { + "description": "The schema of the index in JSON format. Supported types are `integer`, `long`,\n`float`, `double`, `boolean`, `string`, `date`, `timestamp`. Supported types for\nvector columns: `array\u003cfloat\u003e`, `array\u003cdouble\u003e`.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.EmbeddingSourceColumn": { + "description": "Name of an embedding source column and its associated embedding model endpoint.", + "fields": { + "embedding_model_endpoint": { + "description": "Name of the embedding model endpoint, used by default for both ingestion and querying.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "model_endpoint_name_for_query": { + "description": "Name of the embedding model endpoint which, if specified, is used for querying (not ingestion).", + "launch_stage": "PRIVATE_PREVIEW" + }, + "name": { + "description": "Name of the source column.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "aisearch.EmbeddingVectorColumn": { + "description": "Name and dimension of an embedding vector column.", + "fields": { + "embedding_dimension": { + "description": "Dimension of the embedding vector.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "name": { + "description": "Name of the column.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "aisearch.Endpoint": { + "description": "An AI Search endpoint — compute infrastructure that hosts AI Search indexes\nand serves queries against them. Customers create, query, and delete endpoints;\nthe system manages provisioning, scaling, and health status.", + "fields": { + "budget_policy_id": { + "description": "The user-selected budget policy id for the endpoint.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "create_time": { + "description": "Time the endpoint was created.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "creator": { + "description": "Creator of the endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "custom_tags": { + "description": "The custom tags assigned to the endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "effective_budget_policy_id": { + "description": "The budget policy id applied to the endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "endpoint_status": { + "description": "Current status of the endpoint", + "ref": "aisearch.EndpointStatus", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "endpoint_type": { + "description": "Type of endpoint. Required on create and immutable thereafter.", + "ref": "aisearch.EndpointType", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE" + ] + }, + "id": { + "description": "Unique identifier of the endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "index_count": { + "description": "Number of indexes on the endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "last_updated_user": { + "description": "User who last updated the endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "name": { + "description": "Name of the AI Search endpoint. Server-assigned full resource path\n(`workspaces/{workspace}/endpoints/{endpoint}`) on output. On create, the\nuser-supplied short name is conveyed via `CreateEndpointRequest.endpoint_id`;\nthe server composes the full `name` and returns it on the response.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "replica_count": { + "description": "The client-supplied desired number of replicas for the endpoint, applied at\ncreate/update time. Mutually exclusive with `target_qps`.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "scaling_info": { + "description": "Scaling information for the endpoint", + "ref": "aisearch.EndpointScalingInfo", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "target_qps": { + "description": "Target QPS for the endpoint. Mutually exclusive with `replica_count`. Best-effort;\nthe system does not guarantee this QPS will be achieved.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "throughput_info": { + "description": "Throughput information for the endpoint", + "ref": "aisearch.EndpointThroughputInfo", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "update_time": { + "description": "Time the endpoint was last updated.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "usage_policy_id": { + "description": "The usage policy id applied to the endpoint.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.EndpointScalingInfo": { + "description": "Scaling information for a Storage Optimized endpoint — current scaling state and the\nrequested QPS target the system is scaling toward.", + "fields": { + "requested_target_qps": { + "description": "The requested QPS target for the endpoint. Best-effort; the system does not\nguarantee this QPS will be achieved.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "state": { + "description": "The current state of the scaling change request.", + "ref": "aisearch.ScalingChangeState", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.EndpointStatus": { + "description": "Lifecycle and health state of an AI Search endpoint, along with any human-readable detail\nabout that state.", + "fields": { + "message": { + "description": "Human-readable detail about the endpoint's current state or the reason for a state transition.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "state": { + "description": "Current lifecycle state of the endpoint. See `State` for the meaning of each value.", + "ref": "aisearch.EndpointStatusState", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.EndpointStatusState": { + "description": "Lifecycle state of an AI Search endpoint, used by both Standard and Storage Optimized SKUs.", + "enum": [ + "PROVISIONING", + "ONLINE", + "OFFLINE", + "RED_STATE", + "YELLOW_STATE", + "DELETED" + ], + "enum_launch_stages": { + "DELETED": "PRIVATE_PREVIEW", + "OFFLINE": "PRIVATE_PREVIEW", + "ONLINE": "PRIVATE_PREVIEW", + "PROVISIONING": "PRIVATE_PREVIEW", + "RED_STATE": "PRIVATE_PREVIEW", + "YELLOW_STATE": "PRIVATE_PREVIEW" + } + }, + "aisearch.EndpointThroughputInfo": { + "description": "Throughput information for an AI Search endpoint, including requested and current concurrency settings.", + "fields": { + "change_request_message": { + "description": "Additional information about the throughput change request", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "change_request_state": { + "description": "The state of the most recent throughput change request", + "ref": "aisearch.ThroughputChangeRequestState", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "current_concurrency": { + "description": "The current concurrency (total CPU) allocated to the endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "current_concurrency_utilization_percentage": { + "description": "The current utilization of concurrency as a percentage (0-100)", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "current_num_replicas": { + "description": "The current number of replicas allocated to the endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "maximum_concurrency_allowed": { + "description": "The maximum concurrency allowed for this endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "minimal_concurrency_allowed": { + "description": "The minimum concurrency allowed for this endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "requested_concurrency": { + "description": "The requested concurrency (total CPU) for the endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "requested_num_replicas": { + "description": "The requested number of replicas for the endpoint", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.EndpointType": { + "description": "Type of endpoint.", + "enum": [ + "STORAGE_OPTIMIZED", + "STANDARD" + ], + "enum_launch_stages": { + "STANDARD": "PRIVATE_PREVIEW", + "STORAGE_OPTIMIZED": "PRIVATE_PREVIEW" + } + }, + "aisearch.FacetResultData": { + "description": "Facet aggregation rows returned by a query.", + "fields": { + "facet_array": { + "description": "Facet rows; each row is `[facet_column_name, value_or_range, count]`.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "facet_row_count": { + "description": "Number of facet rows returned.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.GetEndpointRequest": {}, + "aisearch.GetIndexRequest": {}, + "aisearch.Index": { + "description": "An AI Search index — a searchable collection of vectors and metadata hosted on an\nAI Search endpoint. Indexes are children of endpoints; customers create, get, list,\nand delete them. The `{index}` segment of the resource name is the index's Unity\nCatalog table name.", + "fields": { + "creator": { + "description": "Creator of the index.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "delta_sync_index_spec": { + "description": "Specification for a Delta Sync index. Set when `index_type` is `DELTA_SYNC`.", + "ref": "aisearch.DeltaSyncIndexSpec", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE", + "OPTIONAL" + ] + }, + "direct_access_index_spec": { + "description": "Specification for a Direct Access index. Set when `index_type` is `DIRECT_ACCESS`.", + "ref": "aisearch.DirectAccessIndexSpec", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE", + "OPTIONAL" + ] + }, + "endpoint": { + "description": "Name of the endpoint associated with the index. Ignored on create — the endpoint is\ntaken from `CreateIndexRequest.parent`; populated only on output.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "index_subtype": { + "description": "The subtype of the index. Set on create and immutable thereafter.", + "ref": "aisearch.IndexSubtype", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE", + "OPTIONAL" + ] + }, + "index_type": { + "description": "Type of index. Required on create and immutable thereafter.", + "ref": "aisearch.IndexType", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE" + ] + }, + "name": { + "description": "Name of the AI Search index. Server-assigned full resource path\n(`workspaces/{workspace}/endpoints/{endpoint}/indexes/{index}`) on output, where\n`{index}` is the index's Unity Catalog table name. On create, the user-supplied UC\ntable name is conveyed via `CreateIndexRequest.index_id`; the server composes the\nfull `name` and returns it on the response.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "primary_key": { + "description": "Primary key of the index. Set on create and immutable thereafter.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE" + ] + }, + "status": { + "description": "Current status of the index.", + "ref": "aisearch.IndexStatus", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.IndexStatus": { + "description": "Lifecycle and health state of an AI Search index, along with human-readable\ndetail about that state and basic indexing progress.", + "fields": { + "index_url": { + "description": "Index API URL used to perform operations on the index.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "indexed_row_count": { + "description": "Number of rows indexed.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "message": { + "description": "Human-readable detail about the index's current state.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "ready": { + "description": "Whether the index is ready for search.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.IndexSubtype": { + "description": "The subtype of the AI Search index, determining the indexing and retrieval strategy.\n- `VECTOR`: Not a supported create value — do not select it. Use `HYBRID` (vector + hybrid\nsearch) or `FULL_TEXT` (full-text only). It is the proto2 default (`= 0`) solely to mirror\nthe legacy `index_v2.proto` enum value-for-value; it is not an offered index subtype.\n- `FULL_TEXT`: An index that uses full-text search without vector embeddings.\n- `HYBRID`: An index that uses vector embeddings for similarity search and hybrid search.", + "enum": [ + "VECTOR", + "FULL_TEXT", + "HYBRID" + ], + "enum_launch_stages": { + "FULL_TEXT": "PRIVATE_PREVIEW", + "HYBRID": "PRIVATE_PREVIEW", + "VECTOR": "PRIVATE_PREVIEW" + }, + "enum_descriptions": { + "FULL_TEXT": "An index that uses full-text search without vector embeddings.", + "HYBRID": "An index that uses vector embeddings for similarity search and hybrid search.", + "VECTOR": "Not a supported create value — do not select it. Use `HYBRID` (vector + hybrid" + } + }, + "aisearch.IndexType": { + "description": "There are 2 types of AI Search indexes:\n- `DELTA_SYNC`: An index that automatically syncs with a source Delta Table,\nautomatically and incrementally updating the index as the underlying data in\nthe Delta Table changes.\n- `DIRECT_ACCESS`: An index that supports direct read and write of vectors and\nmetadata through our REST and SDK APIs. With this model, the user manages\nindex updates.", + "enum": [ + "DELTA_SYNC", + "DIRECT_ACCESS" + ], + "enum_launch_stages": { + "DELTA_SYNC": "PRIVATE_PREVIEW", + "DIRECT_ACCESS": "PRIVATE_PREVIEW" + }, + "enum_descriptions": { + "DELTA_SYNC": "An index that automatically syncs with a source Delta Table,", + "DIRECT_ACCESS": "An index that supports direct read and write of vectors and" + } + }, + "aisearch.ListEndpointsRequest": { + "fields": { + "page_size": { + "description": "Best-effort upper bound on the number of results to return. Honored as an upper\nbound by the shim: `page_size` only narrows the legacy backend's response, never\nwidens it, so the practical cap is `min(page_size, legacy_fixed_page_size)`.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "page_token": { + "description": "Page token from a previous response. If not provided, returns the first page.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.ListEndpointsResponse": { + "description": "Response for ListEndpoints carrying the page of endpoints and an optional continuation token.", + "fields": { + "endpoints": { + "description": "The endpoints in the workspace.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "next_page_token": { + "description": "A token that can be used to get the next page of results. Empty when there are no more results.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.ListIndexesRequest": { + "fields": { + "page_size": { + "description": "Best-effort upper bound on the number of results to return. Honored as an upper\nbound by the shim: `page_size` only narrows the legacy backend's response, never\nwidens it, so the practical cap is `min(page_size, legacy_fixed_page_size)`.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "page_token": { + "description": "Page token from a previous response. If not provided, returns the first page.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.ListIndexesResponse": { + "description": "Response for ListIndexes carrying the page of indexes and an optional continuation token.", + "fields": { + "indexes": { + "description": "The indexes on the endpoint. The field is named `indexes` (not the irregular plural\n`indices`) to satisfy core::0132, which derives the response field name from the\nListIndexes method. core::0158::response-plural-first-field independently computes the\nresource plural as `indices` and is satisfied via a scoped field exception below.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "next_page_token": { + "description": "A token that can be used to get the next page of results. Empty when there are no more results.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.PipelineType": { + "description": "Pipeline execution mode for a Delta Sync index. Required on create for Delta Sync\nindexes; the legacy backend rejects an unset value with INVALID_PARAMETER_VALUE.\n- `TRIGGERED`: the pipeline stops after refreshing the source table once, using the\ndata available when the update started.\n- `CONTINUOUS`: the pipeline processes new data as it arrives in the source table to\nkeep the index fresh.", + "enum": [ + "TRIGGERED", + "CONTINUOUS" + ], + "enum_launch_stages": { + "CONTINUOUS": "PRIVATE_PREVIEW", + "TRIGGERED": "PRIVATE_PREVIEW" + }, + "enum_descriptions": { + "CONTINUOUS": "the pipeline processes new data as it arrives in the source table to", + "TRIGGERED": "the pipeline stops after refreshing the source table once, using the" + } + }, + "aisearch.QueryIndexRequest": { + "description": "Request to query (search) an AI Search index. The legacy `num_results` count is exposed as\n`max_results`; v1 returns up to `max_results` rows in a single response (no cursor pagination\n— see the note on `max_results` below).", + "fields": { + "columns": { + "description": "Column names to include in each result row.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "columns_to_rerank": { + "description": "Columns whose values are sent to the reranker.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "facets": { + "description": "Facets to compute over the matched results (e.g. `\"category TOP 5\"`).", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "filters_json": { + "description": "JSON string describing query filters (e.g. `{\"id \u003e\": 5}`).", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "max_results": { + "description": "Maximum number of results to return (the legacy `num_results`). Defaults to 10.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "query_columns": { + "description": "Text columns to search for `query_text`. When empty, all text columns are searched.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "query_text": { + "description": "Query text. Required for Delta Sync indexes that compute embeddings from a model endpoint.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "query_type": { + "description": "Query type: `ANN`, `HYBRID`, or `FULL_TEXT`. Defaults to `ANN`.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "query_vector": { + "description": "Query vector. Required for Direct Access indexes and Delta Sync indexes with self-managed\nvectors.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "reranker": { + "description": "If set, results are reranked before being returned.", + "ref": "aisearch.RerankerConfig", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "score_threshold": { + "description": "Score threshold for the approximate nearest-neighbor search. Defaults to 0.0.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "sort_columns": { + "description": "Sort clauses, e.g. `[\"rating DESC\", \"price ASC\"]`. Overrides relevance ordering.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.QueryIndexResponse": { + "description": "Response for QueryIndex carrying the matched rows and their column metadata.", + "fields": { + "facet_result": { + "description": "Facet aggregation rows, when facets were requested.", + "ref": "aisearch.FacetResultData", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "manifest": { + "description": "Metadata describing the result columns.", + "ref": "aisearch.ResultManifest", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "result": { + "description": "The matched result rows.", + "ref": "aisearch.ResultData", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.RemoveDataRequest": { + "description": "Request to remove rows by primary key from a Direct Access AI Search index.\nNamed RemoveData (not DeleteData) so the linter does not classify it as a standard\nAIP-135 Delete method — it deletes rows within an index, not the index resource.", + "fields": { + "primary_keys": { + "description": "Primary keys of the rows to remove.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "aisearch.RemoveDataResponse": { + "description": "Response for RemoveData.", + "fields": { + "result": { + "description": "Per-row outcome of the delete.", + "ref": "aisearch.DataModificationResult", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "status": { + "description": "Overall status of the delete.", + "ref": "aisearch.DataModificationStatus", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.RerankerConfig": { + "description": "Configuration for reranking query results with a reranker model.", + "fields": { + "model": { + "description": "Reranker identifier: \"databricks_reranker\" for the base model, or a Model Serving\nendpoint name when `model_type` is MODEL_TYPE_FINETUNED.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "model_type": { + "description": "Discriminator for how `model` is interpreted.", + "ref": "aisearch.RerankerConfigModelType", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "parameters": { + "description": "Parameters controlling reranking.", + "ref": "aisearch.RerankerConfigRerankerParameters", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.RerankerConfigModelType": { + "description": "How the `model` field is interpreted.", + "enum": [ + "MODEL_TYPE_BASE", + "MODEL_TYPE_FINETUNED" + ], + "enum_launch_stages": { + "MODEL_TYPE_BASE": "PRIVATE_PREVIEW", + "MODEL_TYPE_FINETUNED": "PRIVATE_PREVIEW" + } + }, + "aisearch.RerankerConfigRerankerParameters": { + "description": "Parameters controlling how the reranker processes results.", + "fields": { + "columns_to_rerank": { + "description": "Columns whose values are concatenated and sent to the reranker.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.ResultData": { + "description": "The rows of a query result set.", + "fields": { + "data_array": { + "description": "Result rows; each row is a list of column values aligned with the manifest columns.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "row_count": { + "description": "Number of rows in the result set.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.ResultManifest": { + "description": "Metadata describing the columns of a query result set.", + "fields": { + "column_count": { + "description": "Number of columns in the result set.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "columns": { + "description": "Information about each column in the result set.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "facet_column_count": { + "description": "Number of columns in the facet result.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "facet_columns": { + "description": "Information about each facet column.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.ScalingChangeState": { + "description": "State of the most recent scaling change request for a Storage Optimized endpoint.", + "enum": [ + "SCALING_CHANGE_UNSPECIFIED", + "SCALING_CHANGE_APPLIED", + "SCALING_CHANGE_IN_PROGRESS" + ], + "enum_launch_stages": { + "SCALING_CHANGE_APPLIED": "PRIVATE_PREVIEW", + "SCALING_CHANGE_IN_PROGRESS": "PRIVATE_PREVIEW", + "SCALING_CHANGE_UNSPECIFIED": "PRIVATE_PREVIEW" + } + }, + "aisearch.ScanIndexRequest": { + "description": "Request to scan (paginate over) the rows of an AI Search index. Models the legacy\n`num_results` / `last_primary_key` cursor as AIP-158 `page_size` / `page_token`.", + "fields": { + "page_size": { + "description": "Maximum number of rows to return in this page.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "page_token": { + "description": "Page token from a previous response; if unset, scanning starts from the beginning.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "aisearch.ScanIndexResponse": { + "description": "Response for ScanIndex carrying a page of rows and an optional continuation token.", + "fields": { + "data": { + "description": "The rows in this page, each a struct of column name to value.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "next_page_token": { + "description": "Token for the next page; empty when the scan is exhausted.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "aisearch.SyncIndexRequest": { + "description": "Request to synchronize a Delta Sync AI Search index with its source Delta table." + }, + "aisearch.SyncIndexResponse": { + "description": "Response for SyncIndex. Empty today; reserved so future sync metadata (e.g. an\noperation handle) can be added without breaking the wire contract." + }, + "aisearch.ThroughputChangeRequestState": { + "description": "State of the most recent throughput change request issued against a Storage Optimized\nendpoint. Surfaced on `EndpointThroughputInfo.change_request_state`.", + "enum": [ + "CHANGE_SUCCESS", + "CHANGE_FAILED", + "CHANGE_REACHED_MINIMUM", + "CHANGE_REACHED_MAXIMUM", + "CHANGE_IN_PROGRESS", + "CHANGE_ADJUSTED" + ], + "enum_launch_stages": { + "CHANGE_ADJUSTED": "PRIVATE_PREVIEW", + "CHANGE_FAILED": "PRIVATE_PREVIEW", + "CHANGE_IN_PROGRESS": "PRIVATE_PREVIEW", + "CHANGE_REACHED_MAXIMUM": "PRIVATE_PREVIEW", + "CHANGE_REACHED_MINIMUM": "PRIVATE_PREVIEW", + "CHANGE_SUCCESS": "PRIVATE_PREVIEW" + } + }, + "aisearch.UpdateEndpointRequest": { + "fields": { + "endpoint": { + "description": "The Endpoint resource to update. `endpoint.name` carries the full resource path.", + "ref": "aisearch.Endpoint", + "launch_stage": "PRIVATE_PREVIEW" + }, + "update_mask": { + "description": "The list of fields to update.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "aisearch.UpsertDataRequest": { + "description": "Request to upsert rows into a Direct Access AI Search index.", + "fields": { + "inputs_json": { + "description": "JSON document describing the rows to upsert.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "aisearch.UpsertDataResponse": { + "description": "Response for UpsertData.", + "fields": { + "result": { + "description": "Per-row outcome of the upsert.", + "ref": "aisearch.DataModificationResult", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "status": { + "description": "Overall status of the upsert.", + "ref": "aisearch.DataModificationStatus", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, "apps.App": { "fields": { "active_deployment": { @@ -1186,6 +2273,13 @@ "OUTPUT_ONLY" ] }, + "running_instances": { + "description": "The number of running instances of this application.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "state": { "description": "State of the application.", "ref": "apps.ApplicationState", @@ -1960,7 +3054,7 @@ "fields": { "unity_catalog": { "ref": "apps.UnityCatalog", - "launch_stage": "GA" + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -1969,15 +3063,15 @@ "fields": { "logs_table": { "description": "Unity Catalog table for OTEL logs.", - "launch_stage": "GA" + "launch_stage": "PUBLIC_PREVIEW" }, "metrics_table": { "description": "Unity Catalog table for OTEL metrics.", - "launch_stage": "GA" + "launch_stage": "PUBLIC_PREVIEW" }, "traces_table": { "description": "Unity Catalog table for OTEL traces (spans).", - "launch_stage": "GA" + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -2864,12 +3958,12 @@ } } }, - "bundle.CompleteVersionRequest": { + "bundledeployments.CompleteVersionRequest": { "description": "A request to complete a Version.", "fields": { "completion_reason": { "description": "The reason for completing the version. Must be a terminal reason:\nVERSION_COMPLETE_SUCCESS, VERSION_COMPLETE_FAILURE, or\nVERSION_COMPLETE_FORCE_ABORT.", - "ref": "bundle.VersionComplete", + "ref": "bundledeployments.VersionComplete", "launch_stage": "PRIVATE_PREVIEW" }, "force": { @@ -2881,11 +3975,11 @@ } } }, - "bundle.CreateDeploymentRequest": { + "bundledeployments.CreateDeploymentRequest": { "fields": { "deployment": { "description": "The deployment to create.", - "ref": "bundle.Deployment", + "ref": "bundledeployments.Deployment", "launch_stage": "PRIVATE_PREVIEW" }, "deployment_id": { @@ -2894,11 +3988,11 @@ } } }, - "bundle.CreateOperationRequest": { + "bundledeployments.CreateOperationRequest": { "fields": { "operation": { "description": "The resource operation to create.", - "ref": "bundle.Operation", + "ref": "bundledeployments.Operation", "launch_stage": "PRIVATE_PREVIEW" }, "resource_key": { @@ -2907,11 +4001,11 @@ } } }, - "bundle.CreateVersionRequest": { + "bundledeployments.CreateVersionRequest": { "fields": { "version": { "description": "The version to create.", - "ref": "bundle.Version", + "ref": "bundledeployments.Version", "launch_stage": "PRIVATE_PREVIEW" }, "version_id": { @@ -2920,8 +4014,8 @@ } } }, - "bundle.DeleteDeploymentRequest": {}, - "bundle.Deployment": { + "bundledeployments.DeleteDeploymentRequest": {}, + "bundledeployments.Deployment": { "description": "A bundle deployment registered with the control plane.", "fields": { "create_time": { @@ -2940,7 +4034,7 @@ }, "deployment_mode": { "description": "Bundle target deployment mode (development or production), derived from the\nmost recent version's mode.", - "ref": "bundle.DeploymentMode", + "ref": "bundledeployments.DeploymentMode", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OUTPUT_ONLY" @@ -2961,10 +4055,18 @@ ] }, "display_name": { - "description": "Human-readable name for the deployment.", + "description": "Human-readable name for the deployment. Output only: it is denormalized from\nthe latest version, not set directly on the deployment.", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ - "OPTIONAL" + "OUTPUT_ONLY" + ] + }, + "git_info": { + "description": "Git provenance of the deployment's source, derived from the latest version.", + "ref": "bundledeployments.GitInfo", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" ] }, "last_version_id": { @@ -2983,17 +4085,17 @@ }, "status": { "description": "Current status of the deployment.", - "ref": "bundle.DeploymentStatus", + "ref": "bundledeployments.DeploymentStatus", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OUTPUT_ONLY" ] }, "target_name": { - "description": "The bundle target name associated with this deployment.", + "description": "The bundle target name associated with this deployment. Output only: it is\ndenormalized from the latest version, not set directly on the deployment.", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ - "OPTIONAL" + "OUTPUT_ONLY" ] }, "update_time": { @@ -3002,10 +4104,18 @@ "behaviors": [ "OUTPUT_ONLY" ] + }, + "workspace_info": { + "description": "Workspace location of the deployment, derived from the latest version.", + "ref": "bundledeployments.WorkspaceInfo", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] } } }, - "bundle.DeploymentMode": { + "bundledeployments.DeploymentMode": { "description": "Bundle target deployment mode. Mirrors the `mode` field on a bundle target\nin `databricks.yml` (see https://docs.databricks.com/dev-tools/bundles/deployment-modes).", "enum": [ "DEPLOYMENT_MODE_DEVELOPMENT", @@ -3016,7 +4126,7 @@ "DEPLOYMENT_MODE_PRODUCTION": "PRIVATE_PREVIEW" } }, - "bundle.DeploymentResourceType": { + "bundledeployments.DeploymentResourceType": { "description": "Type of a deployment resource.", "enum": [ "DEPLOYMENT_RESOURCE_TYPE_JOB", @@ -3069,7 +4179,7 @@ "DEPLOYMENT_RESOURCE_TYPE_VOLUME": "PRIVATE_PREVIEW" } }, - "bundle.DeploymentStatus": { + "bundledeployments.DeploymentStatus": { "description": "Status of a deployment.", "enum": [ "DEPLOYMENT_STATUS_ACTIVE", @@ -3084,14 +4194,31 @@ "DEPLOYMENT_STATUS_IN_PROGRESS": "PRIVATE_PREVIEW" } }, - "bundle.GetDeploymentRequest": {}, - "bundle.GetOperationRequest": {}, - "bundle.GetResourceRequest": {}, - "bundle.GetVersionRequest": {}, - "bundle.HeartbeatRequest": { + "bundledeployments.GetDeploymentRequest": {}, + "bundledeployments.GetOperationRequest": {}, + "bundledeployments.GetResourceRequest": {}, + "bundledeployments.GetVersionRequest": {}, + "bundledeployments.GitInfo": { + "description": "Git provenance of a bundle's source, captured at deploy time. Lets consumers\nlink a deployed resource back to its source in version control.", + "fields": { + "branch": { + "description": "Branch the source was deployed from.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "commit": { + "description": "Commit SHA of the deployed source.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "origin_url": { + "description": "URL of the git remote the source was deployed from.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "bundledeployments.HeartbeatRequest": { "description": "A request to send a heartbeat for a Version." }, - "bundle.HeartbeatResponse": { + "bundledeployments.HeartbeatResponse": { "description": "Response for Heartbeat.", "fields": { "expire_time": { @@ -3103,7 +4230,7 @@ } } }, - "bundle.ListDeploymentsRequest": { + "bundledeployments.ListDeploymentsRequest": { "fields": { "page_size": { "description": "The maximum number of deployments to return. The service may return\nfewer than this value.\nIf unspecified, at most 50 deployments will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.", @@ -3121,7 +4248,7 @@ } } }, - "bundle.ListDeploymentsResponse": { + "bundledeployments.ListDeploymentsResponse": { "description": "Response for ListDeployments.", "fields": { "deployments": { @@ -3137,7 +4264,7 @@ } } }, - "bundle.ListOperationsRequest": { + "bundledeployments.ListOperationsRequest": { "fields": { "page_size": { "description": "The maximum number of operations to return. The service may return\nfewer than this value.\nIf unspecified, at most 50 operations will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.", @@ -3155,7 +4282,7 @@ } } }, - "bundle.ListOperationsResponse": { + "bundledeployments.ListOperationsResponse": { "description": "Response for ListOperations.", "fields": { "next_page_token": { @@ -3171,7 +4298,7 @@ } } }, - "bundle.ListResourcesRequest": { + "bundledeployments.ListResourcesRequest": { "fields": { "page_size": { "description": "The maximum number of resources to return. The service may return\nfewer than this value.\nIf unspecified, at most 50 resources will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.", @@ -3189,7 +4316,7 @@ } } }, - "bundle.ListResourcesResponse": { + "bundledeployments.ListResourcesResponse": { "description": "Response for ListResources.", "fields": { "next_page_token": { @@ -3205,7 +4332,7 @@ } } }, - "bundle.ListVersionsRequest": { + "bundledeployments.ListVersionsRequest": { "fields": { "page_size": { "description": "The maximum number of versions to return. The service may return\nfewer than this value.\nIf unspecified, at most 50 versions will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.", @@ -3223,7 +4350,7 @@ } } }, - "bundle.ListVersionsResponse": { + "bundledeployments.ListVersionsResponse": { "description": "Response for ListVersions.", "fields": { "next_page_token": { @@ -3239,12 +4366,12 @@ } } }, - "bundle.Operation": { + "bundledeployments.Operation": { "description": "An operation on a single resource performed during a version.\nOperations are append-only and record the result of applying a resource\nchange to the workspace.", "fields": { "action_type": { "description": "The type of operation performed on this resource.", - "ref": "bundle.OperationActionType", + "ref": "bundledeployments.OperationActionType", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "IMMUTABLE" @@ -3272,10 +4399,11 @@ ] }, "resource_id": { - "description": "ID reference for the actual resource in the workspace\n(e.g. the job ID, pipeline ID).", + "description": "ID of the actual resource in the workspace (e.g. the job ID, pipeline ID).\nRequired for every operation except CREATE and RECREATE, which produce a\nnew resource whose ID is not yet known when the operation is recorded.", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ - "IMMUTABLE" + "IMMUTABLE", + "OPTIONAL" ] }, "resource_key": { @@ -3287,7 +4415,7 @@ }, "resource_type": { "description": "The type of the deployment resource this operation applies to. Derived\nfrom the `resource_key` prefix (e.g. \"jobs\" → JOB); the caller does not\nset this field.", - "ref": "bundle.DeploymentResourceType", + "ref": "bundledeployments.DeploymentResourceType", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OUTPUT_ONLY" @@ -3302,7 +4430,7 @@ }, "status": { "description": "Whether the operation succeeded or failed.", - "ref": "bundle.OperationStatus", + "ref": "bundledeployments.OperationStatus", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "IMMUTABLE" @@ -3310,7 +4438,7 @@ } } }, - "bundle.OperationActionType": { + "bundledeployments.OperationActionType": { "description": "Type of action performed on a resource during a deployment.", "enum": [ "OPERATION_ACTION_TYPE_RESIZE", @@ -3335,7 +4463,7 @@ "OPERATION_ACTION_TYPE_UPDATE_WITH_ID": "PRIVATE_PREVIEW" } }, - "bundle.OperationStatus": { + "bundledeployments.OperationStatus": { "description": "Status of a resource operation.", "enum": [ "OPERATION_STATUS_SUCCEEDED", @@ -3346,12 +4474,12 @@ "OPERATION_STATUS_SUCCEEDED": "PRIVATE_PREVIEW" } }, - "bundle.Resource": { + "bundledeployments.Resource": { "description": "A resource managed by a deployment. Resources are implicitly created,\nupdated, or deleted when operations are recorded on a version.", "fields": { "last_action_type": { "description": "The action performed on this resource during the last version.", - "ref": "bundle.OperationActionType", + "ref": "bundledeployments.OperationActionType", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OUTPUT_ONLY" @@ -3387,7 +4515,7 @@ }, "resource_type": { "description": "The type of the deployment resource.", - "ref": "bundle.DeploymentResourceType", + "ref": "bundledeployments.DeploymentResourceType", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "IMMUTABLE" @@ -3402,7 +4530,7 @@ } } }, - "bundle.Version": { + "bundledeployments.Version": { "description": "A single invocation of a deploy or destroy command against a deployment.\nCreating a version acquires an exclusive lock on the parent deployment.", "fields": { "cli_version": { @@ -3428,7 +4556,7 @@ }, "completion_reason": { "description": "Why the version was completed. Unset while in progress.\nSet when status transitions to COMPLETED.", - "ref": "bundle.VersionComplete", + "ref": "bundledeployments.VersionComplete", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OUTPUT_ONLY" @@ -3450,7 +4578,7 @@ }, "deployment_mode": { "description": "Bundle target deployment mode (development or production), captured at the\ntime of this version.", - "ref": "bundle.DeploymentMode", + "ref": "bundledeployments.DeploymentMode", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "IMMUTABLE" @@ -3463,6 +4591,14 @@ "IMMUTABLE" ] }, + "git_info": { + "description": "Git provenance of the source, captured at the time of this version.", + "ref": "bundledeployments.GitInfo", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE" + ] + }, "name": { "description": "Resource name of the version.\nFormat: deployments/{deployment_id}/versions/{version_id}", "launch_stage": "PRIVATE_PREVIEW", @@ -3472,7 +4608,7 @@ }, "status": { "description": "Status of the version: IN_PROGRESS or COMPLETED.", - "ref": "bundle.VersionStatus", + "ref": "bundledeployments.VersionStatus", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OUTPUT_ONLY" @@ -3494,7 +4630,15 @@ }, "version_type": { "description": "Type of version (deploy or destroy).", - "ref": "bundle.VersionType", + "ref": "bundledeployments.VersionType", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE" + ] + }, + "workspace_info": { + "description": "Workspace location of the deployment, captured at the time of this version.", + "ref": "bundledeployments.WorkspaceInfo", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "IMMUTABLE" @@ -3502,7 +4646,7 @@ } } }, - "bundle.VersionComplete": { + "bundledeployments.VersionComplete": { "description": "Reason why a version was completed.", "enum": [ "VERSION_COMPLETE_SUCCESS", @@ -3517,7 +4661,7 @@ "VERSION_COMPLETE_SUCCESS": "PRIVATE_PREVIEW" } }, - "bundle.VersionStatus": { + "bundledeployments.VersionStatus": { "description": "Status of a version.", "enum": [ "VERSION_STATUS_IN_PROGRESS", @@ -3528,7 +4672,7 @@ "VERSION_STATUS_IN_PROGRESS": "PRIVATE_PREVIEW" } }, - "bundle.VersionType": { + "bundledeployments.VersionType": { "description": "Type of version.", "enum": [ "VERSION_TYPE_DEPLOY", @@ -3539,6 +4683,27 @@ "VERSION_TYPE_DESTROY": "PRIVATE_PREVIEW" } }, + "bundledeployments.WorkspaceInfo": { + "description": "Workspace location of a bundle deployment, captured at deploy time.", + "fields": { + "file_path": { + "description": "Absolute workspace path where the deployed bundle files live. Mirrors the\nworkspace.file_path field in DABs bundle config.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "git_folder_path": { + "description": "When deployed from a Databricks Git folder, the absolute workspace path of\nthat folder; empty for local deploys.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "root_path": { + "description": "Absolute workspace path of the deployment root — the base path the deployed\nfiles live under. Mirrors workspace.root_path in the DABs bundle config;\nfile_path is its files subdirectory.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "source_linked": { + "description": "Whether files are served directly from the source sync root instead of\nbeing copied into file_path.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "catalog.AccessRequestDestinations": { "fields": { "are_any_destinations_hidden": { @@ -4047,6 +5212,13 @@ "description": "Username of catalog creator.", "launch_stage": "GA" }, + "custom_max_retention_hours": { + "description": "Custom maximum retention period in hours for the catalog", + "launch_stage": "PUBLIC_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "effective_predictive_optimization_flag": { "ref": "catalog.EffectivePredictiveOptimizationFlag", "launch_stage": "GA" @@ -4359,6 +5531,14 @@ "ref": "catalog.CredentialType", "launch_stage": "GA" }, + "environment_settings": { + "description": "[Create,Update:OPT] Connection environment settings as EnvironmentSettings object.", + "ref": "catalog.EnvironmentSettings", + "launch_stage": "PUBLIC_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "full_name": { "description": "Full name of connection.", "launch_stage": "GA" @@ -4410,7 +5590,7 @@ } }, "catalog.ConnectionType": { - "description": "Next Id: 126", + "description": "Next Id: 127", "enum": [ "UNKNOWN_CONNECTION_TYPE", "MYSQL", @@ -4432,6 +5612,7 @@ "TERADATA", "HTTP", "POWER_BI", + "DYNAMICS365", "CONFLUENCE", "META_MARKETING", "HUBSPOT", @@ -4444,6 +5625,7 @@ "BIGQUERY": "GA", "CONFLUENCE": "GA", "DATABRICKS": "GA", + "DYNAMICS365": "GA", "GA4_RAW_DATA": "GA", "GITHUB": "PUBLIC_BETA", "GLUE": "GA", @@ -4589,6 +5771,13 @@ "description": "The name of the connection to an external data source.", "launch_stage": "GA" }, + "custom_max_retention_hours": { + "description": "Custom maximum retention period in hours for the catalog", + "launch_stage": "PUBLIC_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "managed_encryption_settings": { "description": "Control CMK encryption for managed catalog data", "ref": "catalog.EncryptionSettings", @@ -4631,6 +5820,14 @@ "ref": "catalog.ConnectionType", "launch_stage": "GA" }, + "environment_settings": { + "description": "[Create,Update:OPT] Connection environment settings as EnvironmentSettings object.", + "ref": "catalog.EnvironmentSettings", + "launch_stage": "PUBLIC_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "name": { "description": "Name of the connection.", "launch_stage": "GA" @@ -5142,6 +6339,13 @@ "description": "User-provided free-form text description.", "launch_stage": "GA" }, + "custom_max_retention_hours": { + "description": "Custom maximum retention period in hours for the schema.", + "launch_stage": "PUBLIC_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "name": { "description": "Name of schema, relative to parent catalog.", "launch_stage": "GA" @@ -5389,7 +6593,7 @@ } }, "catalog.CredentialType": { - "description": "Next Id: 19", + "description": "Next Id: 20", "enum": [ "UNKNOWN_CREDENTIAL_TYPE", "USERNAME_PASSWORD", @@ -5928,6 +7132,16 @@ } } }, + "catalog.EnvironmentSettings": { + "fields": { + "environment_version": { + "launch_stage": "PUBLIC_PREVIEW" + }, + "java_dependencies": { + "launch_stage": "PUBLIC_PREVIEW" + } + } + }, "catalog.ExistsRequest": {}, "catalog.ExternalLineageExternalMetadata": { "fields": { @@ -9257,6 +10471,13 @@ "description": "Username of schema creator.", "launch_stage": "GA" }, + "custom_max_retention_hours": { + "description": "Custom maximum retention period in hours for the schema.", + "launch_stage": "PUBLIC_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "effective_predictive_optimization_flag": { "ref": "catalog.EffectivePredictiveOptimizationFlag", "launch_stage": "GA" @@ -9460,7 +10681,7 @@ } }, "catalog.SecurableKind": { - "description": "Latest kind: MEMORY_STORE_STANDARD = 342; Next id: 343.\nReserved numbers: 316, 317, 327, 330, 341 (former ENDPOINT_LLM_*,\nMODEL_SERVICE_STANDARD, MODEL_SERVICE_SYSTEM_DELTASHARING, MCP_SERVICE_STANDARD).", + "description": "Latest kind: CONNECTION_MARKETO_OAUTH_M2M = 347; Next id: 348.\nReserved numbers: 316, 317, 327, 330, 341 (former ENDPOINT_LLM_*,\nMODEL_SERVICE_STANDARD, MODEL_SERVICE_SYSTEM_DELTASHARING, MCP_SERVICE_STANDARD).", "enum": [ "TABLE_STANDARD", "TABLE_EXTERNAL", @@ -10312,6 +11533,13 @@ "description": "User-provided free-form text description.", "launch_stage": "GA" }, + "custom_max_retention_hours": { + "description": "Custom maximum retention period in hours for the catalog", + "launch_stage": "PUBLIC_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "enable_predictive_optimization": { "description": "Whether predictive optimization should be enabled for this object and objects under it.", "ref": "catalog.EnablePredictiveOptimization", @@ -10355,6 +11583,14 @@ }, "catalog.UpdateConnection": { "fields": { + "environment_settings": { + "description": "[Create,Update:OPT] Connection environment settings as EnvironmentSettings object.", + "ref": "catalog.EnvironmentSettings", + "launch_stage": "PUBLIC_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "new_name": { "description": "New name for the connection.", "launch_stage": "GA" @@ -10850,6 +12086,13 @@ "description": "User-provided free-form text description.", "launch_stage": "GA" }, + "custom_max_retention_hours": { + "description": "Custom maximum retention period in hours for the schema.", + "launch_stage": "PUBLIC_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "enable_predictive_optimization": { "description": "Whether predictive optimization should be enabled for this object and objects under it.", "ref": "catalog.EnablePredictiveOptimization", @@ -12314,6 +13557,10 @@ "ref": "compute.AzureAvailability", "launch_stage": "GA" }, + "capacity_reservation_group": { + "description": "The Azure capacity reservation group resource ID to use for launching VMs.\nWhen specified, VMs will be launched using the provided capacity reservation.\n\nCapacity reservations can only be specified when the workspace uses injected vnet (i.e. customer defined vnet not\nmanaged by databricks). Ensure the databricks-login-prod Enterprise Application is granted the following four permissions:\n1. Microsoft.Compute/capacityReservationGroups/read\n2. Microsoft.Compute/capacityReservationGroups/deploy/action\n3. Microsoft.Compute/capacityReservationGroups/capacityReservations/read\n4. Microsoft.Compute/capacityReservationGroups/capacityReservations/deploy/action\n\nFormat: `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}`", + "launch_stage": "PUBLIC_PREVIEW" + }, "first_on_demand": { "description": "The first `first_on_demand` nodes of the cluster will be placed on on-demand instances.\nThis value should be greater than 0, to make sure the cluster driver node is placed on an\non-demand instance. If this value is greater than or equal to the current cluster size, all\nnodes will be placed on on-demand instances. If this value is less than the current cluster\nsize, `first_on_demand` nodes will be placed on on-demand instances and the remainder will\nbe placed on `availability` instances. Note that this value does not affect\ncluster size and cannot currently be mutated over the lifetime of a cluster.", "launch_stage": "GA" @@ -15766,7 +17013,7 @@ "launch_stage": "GA" }, "num_cores": { - "description": "Number of CPU cores available for this node type.\nNote that this can be fractional, e.g., 2.5 cores, if the the number of cores on a\nmachine instance is not divisible by the number of Spark nodes on that machine.", + "description": "Number of CPU cores available for this node type.\nNote that this can be fractional, e.g., 2.5 cores, if the number of cores on a\nmachine instance is not divisible by the number of Spark nodes on that machine.", "launch_stage": "GA" }, "num_gpus": { @@ -18382,7 +19629,7 @@ "description": "Request to revert a dashboard draft to its last published state.", "fields": { "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.\nTODO(TSE-3937): update to new non-CMK-encrypted label when available", + "description": "The etag for the dashboard. Optionally, it can be provided to verify that the dashboard\nhas not been modified from its last retrieval.", "launch_stage": "GA" } } @@ -18755,11 +20002,11 @@ "fields": { "key": { "description": "The key of the custom tag.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "value": { "description": "The value of the custom tag.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -18777,7 +20024,7 @@ "launch_stage": "PUBLIC_PREVIEW" }, "database_name": { - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "launch_stage": "PUBLIC_PREVIEW" }, "name": { @@ -19169,7 +20416,7 @@ "database.DeleteDatabaseInstanceRequest": { "fields": { "force": { - "description": "By default, a instance cannot be deleted if it has descendant instances created via PITR. If\nthis flag is specified as true, all descendent instances will be deleted as well.", + "description": "By default, an instance cannot be deleted if it has descendant instances created via PITR. If\nthis flag is specified as true, all descendent instances will be deleted as well.", "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" @@ -19679,6 +20926,14 @@ "database.SyncedTableSpec": { "description": "Specification of a synced database table.", "fields": { + "accelerated_sync": { + "description": "When true, enables accelerated sync mode for the initial data load.\nThis significantly improves performance for large tables.\nRequires workspace-level enablement.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "INPUT_ONLY", + "OPTIONAL" + ] + }, "create_database_objects_if_missing": { "description": "If true, the synced table's logical database and schema resources in PG\nwill be created if they do not already exist.", "launch_stage": "PUBLIC_PREVIEW", @@ -19732,6 +20987,43 @@ "behaviors": [ "OPTIONAL" ] + }, + "type_overrides": { + "description": "Override the default Delta-\u003ePG type mapping for specific columns.\nA TypeOverride with PG_SPECIFIC_TYPE_UNSPECIFIED is rejected; a valid pg_type must be set.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "database.SyncedTableSpecPgSpecificType": { + "description": "PostgreSQL-specific target types that can override the default Delta-to-PG mapping.", + "enum": [ + "PG_SPECIFIC_TYPE_VECTOR" + ], + "enum_launch_stages": { + "PG_SPECIFIC_TYPE_VECTOR": "PRIVATE_PREVIEW" + } + }, + "database.SyncedTableSpecTypeOverride": { + "description": "Overrides the default Delta-to-PostgreSQL type mapping for a single column.", + "fields": { + "column_name": { + "description": "Name of the source column whose target PostgreSQL type should be overridden.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "pg_type": { + "description": "PostgreSQL-specific target type to use for the column.", + "ref": "database.SyncedTableSpecPgSpecificType", + "launch_stage": "PRIVATE_PREVIEW" + }, + "size": { + "description": "Size parameter for the target type. Required when pg_type is PG_SPECIFIC_TYPE_VECTOR\n(specifies the vector dimension, e.g., 1024).", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] } } }, @@ -20576,15 +21868,15 @@ "failover_group": { "description": "The failover group to create.", "ref": "disasterrecovery.FailoverGroup", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "failover_group_id": { "description": "Client-provided identifier for the failover group. Used to construct the\nresource name as {parent}/failover-groups/{failover_group_id}.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "validate_only": { "description": "When true, validates the request without creating the failover group.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] @@ -20596,15 +21888,15 @@ "stable_url": { "description": "The stable URL to create.", "ref": "disasterrecovery.StableUrl", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "stable_url_id": { "description": "Client-provided identifier for the stable URL. Used to construct the\nresource name as {parent}/stable-urls/{stable_url_id}.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "validate_only": { "description": "When true, validates the request without creating the stable URL.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] @@ -20615,7 +21907,7 @@ "fields": { "etag": { "description": "Opaque version string for optimistic locking. If provided, must match the\ncurrent etag. If omitted, the delete proceeds without an etag check.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] @@ -20628,7 +21920,7 @@ "fields": { "etag": { "description": "Opaque version string for optimistic locking. If provided, must match the\ncurrent etag. If omitted, the failover proceeds regardless of current state.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] @@ -20636,11 +21928,11 @@ "failover_type": { "description": "The type of failover to perform.", "ref": "disasterrecovery.FailoverFailoverGroupRequestFailoverType", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "target_primary_region": { - "description": "The target primary region. Must be one of the derived regions and different\nfrom the current effective_primary_region. Serves as an idempotency check.", - "launch_stage": "PRIVATE_PREVIEW" + "description": "The target primary region. Must be one of the participating regions and different\nfrom the current effective_primary_region. Serves as an idempotency check.", + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -20650,33 +21942,33 @@ "FORCED" ], "enum_launch_stages": { - "FORCED": "PRIVATE_PREVIEW" + "FORCED": "PUBLIC_PREVIEW" } }, "disasterrecovery.FailoverGroup": { - "description": "A failover group manages disaster recovery across workspace sets,\ncoordinating UCDR and CPDR replication.", + "description": "A failover group manages disaster recovery across workspace sets,\ncoordinating Unity Catalog and workspace assets replication.", "fields": { "create_time": { "description": "Time at which this failover group was created.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OUTPUT_ONLY" ] }, "effective_primary_region": { "description": "Current effective primary region. Replication flows FROM workspaces in this region.\nChanges after a successful failover.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OUTPUT_ONLY" ] }, "etag": { "description": "Opaque version string for optimistic locking. Server-generated, returned in responses.\nMust be provided on Update requests to prevent concurrent modifications.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "initial_primary_region": { "description": "Initial primary region. Used only in Create requests to set the starting\nprimary region. Not returned in responses.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "IMMUTABLE", "INPUT_ONLY" @@ -20684,21 +21976,21 @@ }, "name": { "description": "Fully qualified resource name in the format\naccounts/{account_id}/failover-groups/{failover_group_id}.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "IMMUTABLE" ] }, "regions": { "description": "List of all regions participating in this failover group.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "IMMUTABLE" ] }, "replication_point": { "description": "The latest point in time to which data has been replicated.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OUTPUT_ONLY" ] @@ -20706,7 +21998,7 @@ "state": { "description": "Aggregate state of the failover group.", "ref": "disasterrecovery.FailoverGroupState", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OUTPUT_ONLY" ] @@ -20714,21 +22006,21 @@ "unity_catalog_assets": { "description": "Unity Catalog replication configuration.", "ref": "disasterrecovery.UcReplicationConfig", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] }, "update_time": { "description": "Time at which this failover group was last modified.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OUTPUT_ONLY" ] }, "workspace_sets": { "description": "Workspace sets, each containing workspaces that replicate to each other.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -20745,14 +22037,14 @@ "DELETION_FAILED" ], "enum_launch_stages": { - "ACTIVE": "PRIVATE_PREVIEW", - "CREATING": "PRIVATE_PREVIEW", - "CREATION_FAILED": "PRIVATE_PREVIEW", - "DELETING": "PRIVATE_PREVIEW", - "DELETION_FAILED": "PRIVATE_PREVIEW", - "FAILING_OVER": "PRIVATE_PREVIEW", - "FAILOVER_FAILED": "PRIVATE_PREVIEW", - "INITIAL_REPLICATION": "PRIVATE_PREVIEW" + "ACTIVE": "PUBLIC_PREVIEW", + "CREATING": "PUBLIC_PREVIEW", + "CREATION_FAILED": "PUBLIC_PREVIEW", + "DELETING": "PUBLIC_PREVIEW", + "DELETION_FAILED": "PUBLIC_PREVIEW", + "FAILING_OVER": "PUBLIC_PREVIEW", + "FAILOVER_FAILED": "PUBLIC_PREVIEW", + "INITIAL_REPLICATION": "PUBLIC_PREVIEW" } }, "disasterrecovery.GetFailoverGroupRequest": {}, @@ -20761,14 +22053,14 @@ "fields": { "page_size": { "description": "Maximum number of failover groups to return per page:\n- when set to a value greater than 0, the page length is the minimum of this value\nand a server configured value;\n- when set to 0 or unset, the page length is set to a server configured value\n(recommended);\n- when set to a value less than 0, an invalid parameter error is returned.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] }, "page_token": { "description": "Page token received from a previous ListFailoverGroups call.\nProvide this to retrieve the subsequent page.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] @@ -20780,11 +22072,11 @@ "fields": { "failover_groups": { "description": "The failover groups for this account.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "next_page_token": { "description": "A token that can be sent as page_token to retrieve the next page.\nIf omitted, there are no subsequent pages.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -20792,14 +22084,14 @@ "fields": { "page_size": { "description": "Maximum number of stable URLs to return per page:\n- when set to a value greater than 0, the page length is the minimum of this value\nand a server configured value;\n- when set to 0 or unset, the page length is set to a server configured value\n(recommended);\n- when set to a value less than 0, an invalid parameter error is returned.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] }, "page_token": { "description": "Page token received from a previous ListStableUrls call.\nProvide this to retrieve the subsequent page.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] @@ -20811,11 +22103,11 @@ "fields": { "next_page_token": { "description": "A token that can be sent as page_token to retrieve the next page.\nIf omitted, there are no subsequent pages.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "stable_urls": { "description": "The stable URLs for this account.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -20824,11 +22116,11 @@ "fields": { "name": { "description": "Resource name for this location.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "uri_by_region": { "description": "URI for each region. Each entry maps a region name to a storage URI.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -20837,11 +22129,11 @@ "fields": { "region": { "description": "The region name.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "uri": { "description": "The storage URI for this region.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -20849,15 +22141,15 @@ "description": "A stable URL provides a failover-aware endpoint for accessing a workspace.\nIts lifecycle is independent of any failover group.", "fields": { "failover_group_name": { - "description": "Fully qualified resource name of the FailoverGroup this stable URL is\ncurrently linked to, in the format\n`accounts/{account_id}/failover-groups/{failover_group_id}`. Empty when\nthe stable URL is not attached to any failover group. Server-controlled:\nwritten by CreateFailoverGroup / UpdateFailoverGroup on link, cleared by\nDeleteFailoverGroup / UpdateFailoverGroup on unlink.", - "launch_stage": "PRIVATE_PREVIEW", + "description": "Fully qualified resource name of the FailoverGroup this stable URL is\ncurrently linked to, in the format\n`accounts/{account_id}/failover-groups/{failover_group_id}`. Empty when\nthe stable URL is not attached to any failover group.", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OUTPUT_ONLY" ] }, "initial_workspace_id": { - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", - "launch_stage": "PRIVATE_PREVIEW", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "IMMUTABLE", "INPUT_ONLY" @@ -20865,14 +22157,14 @@ }, "name": { "description": "Fully qualified resource name.\nFormat: accounts/{account_id}/stable-urls/{stable_url_id}.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "IMMUTABLE" ] }, "url": { - "description": "The stable URL endpoint. Generated by the backend on creation and\nimmutable thereafter. For non-Private-Link workspaces this is\n`https://\u003cspog_host\u003e/?c=\u003cconnection_id\u003e`. For Private-Link workspaces\nthis is the per-connection hostname.", - "launch_stage": "PRIVATE_PREVIEW", + "description": "The stable URL endpoint. Generated on creation and\nimmutable thereafter. For non-Private-Link workspaces this is\n`https://\u003cspog_host\u003e/?c=\u003cconnection_id\u003e`. For Private-Link workspaces\nthis is the per-connection hostname.", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "IMMUTABLE", "OUTPUT_ONLY" @@ -20885,7 +22177,7 @@ "fields": { "name": { "description": "The name of the UC catalog to replicate.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -20894,18 +22186,15 @@ "fields": { "catalogs": { "description": "UC catalogs to replicate.", - "launch_stage": "PRIVATE_PREVIEW", - "behaviors": [ - "IMMUTABLE" - ] + "launch_stage": "PUBLIC_PREVIEW" }, "data_replication_workspace_set": { "description": "The workspace set whose workspaces will be used for data replication\nof all UC catalogs' underlying storage.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "location_mappings": { "description": "Location mappings - storage URI per region for each location.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] @@ -20917,11 +22206,11 @@ "failover_group": { "description": "The failover group with updated fields. The name field identifies the resource\nand is populated from the URL path.", "ref": "disasterrecovery.FailoverGroup", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "update_mask": { "description": "Comma-separated list of fields to update.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -20930,25 +22219,25 @@ "fields": { "name": { "description": "Resource name for this workspace set.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_PREVIEW" }, "replicate_workspace_assets": { - "description": "Whether to enable control plane DR (notebooks, jobs, clusters, etc.) for this set.\nRequires all workspaces in the set to be Mission Critical tier.", - "launch_stage": "PRIVATE_PREVIEW", + "description": "Whether to enable control plane DR (notebooks, jobs, clusters, etc.) for this set.", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] }, "stable_url_names": { "description": "Resource names of stable URLs associated with this workspace set.\nFormat: accounts/{account_id}/stable-urls/{stable_url_id}.\nThe referenced stable URLs must already exist (via CreateStableUrl).", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ "OPTIONAL" ] }, "workspace_ids": { - "description": "Workspace IDs in this set. The system derives and validates regions.\nEA: exactly 2 workspaces (one per region).", - "launch_stage": "PRIVATE_PREVIEW" + "description": "Workspace IDs in this set. The system derives and validates regions.\nAll workspaces must be in the Mission Critical tier.", + "launch_stage": "PUBLIC_PREVIEW" } } }, @@ -23928,6 +25217,7 @@ ] }, "entitlements": { + "description": "Entitlements granted directly to the principal on this workspace. The only client-settable\nfield: create and update manage exactly this set (including entitlements the principal also\nholds via a group).\nNot populated by ListWorkspaceAssignmentDetails (omitted for scalability); call\nGetWorkspaceAssignmentDetail to read the entitlements for a single principal.", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OPTIONAL" @@ -24215,7 +25505,7 @@ "launch_stage": "GA" }, "tasks": { - "description": "The list of tasks performed by the run. Each task has its own `run_id` which you can use to call `JobsGetOutput` to retrieve the run resutls.\nIf more than 100 tasks are available, you can paginate through them using :method:jobs/getrun. Use the `next_page_token` field at the object root to determine if more results are available.", + "description": "The list of tasks performed by the run. Each task has its own `run_id` which you can use to call `JobsGetOutput` to retrieve the run results.\nIf more than 100 tasks are available, you can paginate through them using :method:jobs/getrun. Use the `next_page_token` field at the object root to determine if more results are available.", "launch_stage": "GA" }, "trigger": { @@ -24992,7 +26282,7 @@ "launch_stage": "GA" }, "error_message": { - "description": "Describes the error message occured during the iterations.", + "description": "Describes the error message occurred during the iterations.", "launch_stage": "GA" }, "termination_category": { @@ -25040,6 +26330,7 @@ } }, "jobs.GenAiComputeTask": { + "description": "DEPRECATED — use `AiRuntimeTask` for all new BYOT multi-node GPU\nworkloads (see ai_runtime_task.proto). `AiRuntimeTask` is the only\nsupported BYOT task type for new workloads; this proto is retained only\nfor AIR CLI (fka SGCLI) pywheel backwards compatibility and will be\nremoved once the pywheel → databricks-cli migration completes (post-\nPuPr).", "fields": { "command": { "description": "Command launcher to run the actual script, e.g. bash, python etc.", @@ -26660,7 +27951,7 @@ "launch_stage": "GA" }, "tasks": { - "description": "The list of tasks performed by the run. Each task has its own `run_id` which you can use to call `JobsGetOutput` to retrieve the run resutls.\nIf more than 100 tasks are available, you can paginate through them using :method:jobs/getrun. Use the `next_page_token` field at the object root to determine if more results are available.", + "description": "The list of tasks performed by the run. Each task has its own `run_id` which you can use to call `JobsGetOutput` to retrieve the run results.\nIf more than 100 tasks are available, you can paginate through them using :method:jobs/getrun. Use the `next_page_token` field at the object root to determine if more results are available.", "launch_stage": "GA" }, "trigger": { @@ -26705,7 +27996,7 @@ "launch_stage": "GA" }, "stats": { - "description": "Read only field. Populated for GetRun and ListRuns RPC calls and stores the execution stats of an For each task", + "description": "Read only field. Populated for GetRun and ListRuns RPC calls and stores the execution stats of a `For each` task.", "ref": "jobs.ForEachStats", "launch_stage": "GA" }, @@ -29677,7 +30968,6 @@ "launch_stage": "PUBLIC_PREVIEW" }, "parent_id": { - "description": "TODO make the following fields required", "launch_stage": "PUBLIC_PREVIEW" } } @@ -30229,7 +31519,7 @@ "launch_stage": "PUBLIC_PREVIEW" }, "pricing_model": { - "description": "What the pricing model is (e.g. paid, subscription, paid upfront); should only be present if cost is paid\nTODO: Not used yet, should deprecate if we will never use it", + "description": "What the pricing model is (e.g. paid, subscription, paid upfront); should only be present if cost is paid", "launch_stage": "PUBLIC_PREVIEW" }, "privacy_policy_link": { @@ -31128,7 +32418,7 @@ "description": "Computes the average of values.", "fields": { "input": { - "description": "The input column from which the average is computed. For Kafka sources, use dot-prefixed path\nnotation (e.g., \"value.amount\"). For nested fields, the leaf node name is used.\nTODO(FS-939): Colon-prefixed notation (e.g., \"value:amount\") is supported for backwards\ncompatibility but is deprecated; migrate to dot notation.", + "description": "The input column from which the average is computed. For Kafka sources, use dot-prefixed path\nnotation (e.g., \"value.amount\"). For nested fields, the leaf node name is used.\nColon-prefixed notation (e.g., \"value:amount\") is supported for backwards\ncompatibility but is deprecated; migrate to dot notation.", "launch_stage": "PRIVATE_PREVIEW" } } @@ -31259,7 +32549,7 @@ "description": "Computes the count of values.", "fields": { "input": { - "description": "The input column from which the count is computed. For Kafka sources, use dot-prefixed path\nnotation (e.g., \"value.amount\"). For nested fields, the leaf node name is used.\nTODO(FS-939): Colon-prefixed notation (e.g., \"value:amount\") is supported for backwards\ncompatibility but is deprecated; migrate to dot notation.", + "description": "The input column from which the count is computed. For Kafka sources, use dot-prefixed path\nnotation (e.g., \"value.amount\"). For nested fields, the leaf node name is used.\nColon-prefixed notation (e.g., \"value:amount\") is supported for backwards\ncompatibility but is deprecated; migrate to dot notation.", "launch_stage": "PRIVATE_PREVIEW" } } @@ -31686,6 +32976,14 @@ "behaviors": [ "OPTIONAL" ] + }, + "stream_source": { + "description": "A Stream data source.", + "ref": "ml.StreamSource", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] } } }, @@ -31947,7 +33245,7 @@ } }, "ml.DirectMtlsConfig": { - "description": "Direct connection configs for mTLS, as Kafka Connections do not support mTLS yet (XTA-18030).\nTemporarily used until UC Kafka Connections gain mTLS support.", + "description": "Direct connection configs for mTLS, as Kafka Connections do not support mTLS yet .\nTemporarily used until UC Kafka Connections gain mTLS support.", "fields": { "bootstrap_servers": { "description": "A comma-separated list of host:port pairs for the Kafka bootstrap servers.", @@ -31984,7 +33282,7 @@ "ml.EntityColumn": { "fields": { "name": { - "description": "The name of the entity column. For Kafka sources, use dot-prefixed path notation to reference\nfields within the key or value schema (e.g., \"value.user_id\", \"key.partition_key\"). For nested\nfields, the leaf node name (e.g., \"user_id\" from \"value.trip_details.user_id\") is what will\nbe present in materialized tables and expected to match at query time.\nTODO(FS-939): Colon-prefixed notation (e.g., \"value:user_id\") is supported for backwards\ncompatibility but is deprecated; migrate to dot notation.", + "description": "The name of the entity column. For Kafka sources, use dot-prefixed path notation to reference\nfields within the key or value schema (e.g., \"value.user_id\", \"key.partition_key\"). For nested\nfields, the leaf node name (e.g., \"user_id\" from \"value.trip_details.user_id\") is what will\nbe present in materialized tables and expected to match at query time.\nColon-prefixed notation (e.g., \"value:user_id\") is supported for backwards\ncompatibility but is deprecated; migrate to dot notation.", "launch_stage": "PRIVATE_PREVIEW" } } @@ -32887,6 +34185,14 @@ "OPTIONAL" ] }, + "ingestion_config": { + "description": "Configuration for ingesting Kafka data into a Databricks-managed\nDelta table.", + "ref": "ml.IngestionConfig", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "key_schema": { "description": "Schema configuration for extracting message keys from topics. At least one of key_schema and value_schema must be provided.", "ref": "ml.SchemaConfig", @@ -32950,7 +34256,7 @@ "description": "Kafka-specific configuration for a Stream.", "fields": { "extra_options": { - "description": "Miscellaneous source options. Accepted keys are source options or Kafka consumer options (kafka.*),\nvalidated against an allow-list at request time.\nAll auth configuration goes through the underlying UC Connection(s) or configs and should not be stored here.", + "description": "Optional Kafka source or consumer options, validated against a server-side\nallowlist at request time. Allowed keys:\n- `maxOffsetsPerTrigger`\n- `startingOffsets`\n- `includeHeaders`\n- `kafka.request.timeout.ms`\n- `kafka.session.timeout.ms`\n- `kafka.max.partition.fetch.bytes`\nThe following keys are ingestion-only and are stripped before being forwarded to the materialization pipeline:\n- `maxOffsetsPerTrigger`\n- `startingOffsets`\nAuth and connection details belong on the parent Stream's `connection_config`, not here.", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OPTIONAL" @@ -33019,7 +34325,7 @@ } }, "ml.LinkedFeature": { - "description": "Feature for model version. ([ML-57150] Renamed from Feature to LinkedFeature)", + "description": "Feature for model version.", "fields": { "feature_name": { "description": "Feature name", @@ -33327,7 +34633,7 @@ } }, "ml.ListStreamsResponse": { - "description": "Response to a ListStreamsRequest.", + "description": "Response to a ListStreamsRequest.\n\nNOTE: Results are post-filtered by access permission on each stream's ingestion\ntable. This means:\n- Returned results may be fewer than page_size (including zero)\n- Page token points to next unfiltered batch, not next filtered batch, and may\npoint to an item that will be filtered out\nCallers should paginate until next_page_token is empty to retrieve all\naccessible streams.", "fields": { "next_page_token": { "description": "Pagination token to request the next page of results for this query.", @@ -33640,7 +34946,7 @@ "description": "A materialized feature represents a feature that is continuously computed and stored.", "fields": { "cron_schedule": { - "description": "The quartz cron expression that defines the schedule of the materialization pipeline. The schedule is evaluated in the UTC timezone.", + "description": "The quartz cron expression that defines the schedule of the materialization pipeline. The schedule is evaluated in the UTC timezone.\nHidden from GraphQL: superseded by the `trigger` oneof (cron_schedule_trigger), so not exposed to Catalog Explorer.", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OPTIONAL" @@ -33696,7 +35002,7 @@ ] }, "pipeline_schedule_state": { - "description": "The schedule state of the materialization pipeline.", + "description": "The schedule state of the materialization pipeline.\nHidden from GraphQL: being deprecated, so not exposed to Catalog Explorer.", "ref": "ml.MaterializedFeaturePipelineScheduleState", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ @@ -35129,7 +36435,7 @@ "description": "Computes the population standard deviation.", "fields": { "input": { - "description": "The input column from which the population standard deviation is computed. For Kafka sources,\nuse dot-prefixed path notation (e.g., \"value.amount\"). For nested fields, the leaf node name is used.\nTODO(FS-939): Colon-prefixed notation (e.g., \"value:amount\") is supported for backwards\ncompatibility but is deprecated; migrate to dot notation.", + "description": "The input column from which the population standard deviation is computed. For Kafka sources,\nuse dot-prefixed path notation (e.g., \"value.amount\"). For nested fields, the leaf node name is used.\nColon-prefixed notation (e.g., \"value:amount\") is supported for backwards\ncompatibility but is deprecated; migrate to dot notation.", "launch_stage": "PRIVATE_PREVIEW" } } @@ -35218,7 +36524,7 @@ "description": "Specifies how to connect and authenticate to the stream platform.", "fields": { "direct_mtls_config": { - "description": "Direct mTLS configuration for stream platform access. This is only used in the short term until UC Kafka Connections support mTLS (XTA-18030).\nOnce UC Kafka Connections support mTLS, this will be deprecated.", + "description": "Direct mTLS configuration for stream platform access. This is only used in the short term until UC Kafka Connections support mTLS .\nOnce UC Kafka Connections support mTLS, this will be deprecated.", "ref": "ml.DirectMtlsConfig", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ @@ -35247,6 +36553,22 @@ } } }, + "ml.StreamSource": { + "description": "A Stream entity used as a data source for a feature.", + "fields": { + "filter_condition": { + "description": "The filter condition applied to the source data before aggregation.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "full_name": { + "description": "Three-part full name of the Stream (catalog.schema.stream).", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "ml.StreamSourceConfig": { "description": "Source-specific configuration. Determines the streaming platform source.", "fields": { @@ -35313,7 +36635,7 @@ "description": "Computes the sum of values.", "fields": { "input": { - "description": "The input column from which the sum is computed. For Kafka sources, use dot-prefixed path\nnotation (e.g., \"value.amount\"). For nested fields, the leaf node name is used.\nTODO(FS-939): Colon-prefixed notation (e.g., \"value:amount\") is supported for backwards\ncompatibility but is deprecated; migrate to dot notation.", + "description": "The input column from which the sum is computed. For Kafka sources, use dot-prefixed path\nnotation (e.g., \"value.amount\"). For nested fields, the leaf node name is used.\nColon-prefixed notation (e.g., \"value:amount\") is supported for backwards\ncompatibility but is deprecated; migrate to dot notation.", "launch_stage": "PRIVATE_PREVIEW" } } @@ -35383,7 +36705,7 @@ "ml.TimeseriesColumn": { "fields": { "name": { - "description": "The name of the timeseries column. For Kafka sources, use dot-prefixed path notation to\nreference fields within the key or value schema (e.g., \"value.event_timestamp\"). For nested\nfields, the leaf node name (e.g., \"event_timestamp\" from \"value.event_details.event_timestamp\")\nis what will be present in materialized tables and expected to match at query time.\nTODO(FS-939): Colon-prefixed notation (e.g., \"value:event_timestamp\") is supported for\nbackwards compatibility but is deprecated; migrate to dot notation.", + "description": "The name of the timeseries column. For Kafka sources, use dot-prefixed path notation to\nreference fields within the key or value schema (e.g., \"value.event_timestamp\"). For nested\nfields, the leaf node name (e.g., \"event_timestamp\" from \"value.event_details.event_timestamp\")\nis what will be present in materialized tables and expected to match at query time.\nColon-prefixed notation (e.g., \"value:event_timestamp\") is supported for\nbackwards compatibility but is deprecated; migrate to dot notation.", "launch_stage": "PRIVATE_PREVIEW" } } @@ -35739,22 +37061,22 @@ "fields": { "private_endpoint_name": { "description": "The name of the Private Endpoint in the Azure subscription.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "private_endpoint_resource_guid": { "description": "The GUID of the Private Endpoint resource in the Azure subscription.\nThis is assigned by Azure when the user sets up the Private Endpoint.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "private_endpoint_resource_id": { "description": "The full resource ID of the Private Endpoint.", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] }, "private_link_service_id": { "description": "The resource ID of the Databricks Private Link Service that this Private Endpoint connects to.", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] @@ -35765,7 +37087,7 @@ "fields": { "endpoint": { "ref": "networking.Endpoint", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -35775,7 +37097,7 @@ "fields": { "account_id": { "description": "The Databricks Account in which the endpoint object exists.", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OUTPUT_ONLY" @@ -35784,7 +37106,7 @@ "azure_private_endpoint_info": { "description": "Info for an Azure private endpoint.", "ref": "networking.AzurePrivateEndpointInfo", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OPTIONAL" @@ -35792,7 +37114,7 @@ }, "create_time": { "description": "The timestamp when the endpoint was created. The timestamp is in RFC 3339 format in UTC timezone.", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OUTPUT_ONLY" @@ -35800,14 +37122,14 @@ }, "display_name": { "description": "The human-readable display name of this endpoint.\nThe input should conform to RFC-1034, which restricts to letters, numbers, and hyphens,\nwith the first character a letter, the last a letter or a number, and a 63 character maximum.", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE" ] }, "endpoint_id": { "description": "The unique identifier for this endpoint under the account. This field is a UUID generated by Databricks.", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OUTPUT_ONLY" @@ -35815,7 +37137,7 @@ }, "name": { "description": "The resource name of the endpoint, which uniquely identifies the endpoint.", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OUTPUT_ONLY" @@ -35823,7 +37145,7 @@ }, "region": { "description": "The cloud provider region where this endpoint is located.", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE" ] @@ -35831,7 +37153,7 @@ "state": { "description": "The state of the endpoint. The endpoint can only be used if the state is `APPROVED`.", "ref": "networking.EndpointState", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] @@ -35839,7 +37161,7 @@ "use_case": { "description": "The use case that determines the type of network connectivity this endpoint provides.\nThis field is automatically determined based on the endpoint configuration and cloud-specific settings.", "ref": "networking.EndpointUseCase", - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OUTPUT_ONLY" @@ -35855,10 +37177,10 @@ "DISCONNECTED" ], "enum_launch_stages": { - "APPROVED": "PUBLIC_PREVIEW", - "DISCONNECTED": "PUBLIC_PREVIEW", - "FAILED": "PUBLIC_PREVIEW", - "PENDING": "PUBLIC_PREVIEW" + "APPROVED": "GA", + "DISCONNECTED": "GA", + "FAILED": "GA", + "PENDING": "GA" } }, "networking.EndpointUseCase": { @@ -35866,20 +37188,20 @@ "SERVICE_DIRECT" ], "enum_launch_stages": { - "SERVICE_DIRECT": "PUBLIC_PREVIEW" + "SERVICE_DIRECT": "GA" } }, "networking.GetEndpointRequest": {}, "networking.ListEndpointsRequest": { "fields": { "page_size": { - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "OPTIONAL" ] }, "page_token": { - "launch_stage": "PUBLIC_PREVIEW", + "launch_stage": "GA", "behaviors": [ "OPTIONAL" ] @@ -35889,10 +37211,10 @@ "networking.ListEndpointsResponse": { "fields": { "items": { - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "next_page_token": { - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -36643,6 +37965,10 @@ "description": "Whether serverless compute is enabled for this pipeline.", "launch_stage": "GA" }, + "serverless_compute_id": { + "description": "Serverless compute ID specified by the user for serverless pipelines.", + "launch_stage": "PRIVATE_PREVIEW" + }, "storage": { "description": "DBFS root directory for storing checkpoints and tables.", "launch_stage": "GA" @@ -36869,6 +38195,10 @@ "description": "Whether serverless compute is enabled for this pipeline.", "launch_stage": "GA" }, + "serverless_compute_id": { + "description": "Serverless compute ID specified by the user for serverless pipelines.", + "launch_stage": "PRIVATE_PREVIEW" + }, "storage": { "description": "DBFS root directory for storing checkpoints and tables.", "launch_stage": "GA" @@ -37106,6 +38436,10 @@ "description": "Whether serverless compute is enabled for this pipeline.", "launch_stage": "GA" }, + "serverless_compute_id": { + "description": "Serverless compute ID specified by the user for serverless pipelines.", + "launch_stage": "PRIVATE_PREVIEW" + }, "storage": { "description": "DBFS root directory for storing checkpoints and tables.", "launch_stage": "GA" @@ -37832,35 +39166,41 @@ "description": "Meta Marketing (Meta Ads) specific options for ingestion", "fields": { "action_attribution_windows": { - "description": "(Optional) Action attribution windows for insights reporting (e.g. \"28d_click\", \"1d_view\")", + "description": "(Optional, DEPRECATED — use custom_report_options.action_attribution_windows) Action attribution\nwindows for insights reporting (e.g. \"28d_click\", \"1d_view\")", + "deprecated": true, "launch_stage": "PUBLIC_BETA" }, "action_breakdowns": { - "description": "(Optional) Action breakdowns to configure for data aggregation", + "description": "(Optional, DEPRECATED — use custom_report_options.action_breakdowns) Action breakdowns", + "deprecated": true, "launch_stage": "PUBLIC_BETA" }, "action_report_time": { - "description": "(Optional) Timing used to report action statistics (impression, conversion, mixed, or lifetime)", + "description": "(Optional, DEPRECATED — use custom_report_options.action_report_time) Timing used to report\naction statistics (impression, conversion, mixed, or lifetime)", + "deprecated": true, "launch_stage": "PUBLIC_BETA" }, "breakdowns": { - "description": "(Optional) Breakdowns to configure for data aggregation", + "description": "(Optional, DEPRECATED — use custom_report_options.breakdowns) Breakdowns to configure", + "deprecated": true, "launch_stage": "PUBLIC_BETA" }, "custom_insights_lookback_window": { - "description": "(Optional) Window in days to revisit data during sync to capture\nupdated conversion data from the API.", + "description": "(Optional) Window in days to revisit data during sync to capture\nupdated conversion data from the API, shared by prebuilt and custom reports.", "launch_stage": "PUBLIC_BETA" }, "level": { - "description": "(Optional) Granularity of data to pull (account, ad, adset, campaign)", + "description": "(Optional, DEPRECATED — use custom_report_options.level) Granularity of data to pull\n(account, ad, adset, campaign)", + "deprecated": true, "launch_stage": "PUBLIC_BETA" }, "start_date": { - "description": "(Optional) Start date in yyyy-MM-dd format (e.g. 2025-01-15). Data added\nafter this date will be ingested", + "description": "(Optional) Start date in yyyy-MM-dd format (e.g. 2025-01-15). Data added\nafter this date will be ingested, shared by prebuilt and custom reports.", "launch_stage": "PUBLIC_BETA" }, "time_increment": { - "description": "(Optional) Value in string by which to aggregate statistics (can take all_days, monthly or number of days)", + "description": "(Optional, DEPRECATED — use custom_report_options.time_increment) Value in string by which to\naggregate statistics (can take all_days, monthly or number of days)", + "deprecated": true, "launch_stage": "PUBLIC_BETA" } } @@ -38494,6 +39834,10 @@ "description": "Whether serverless compute is enabled for this pipeline.", "launch_stage": "GA" }, + "serverless_compute_id": { + "description": "Serverless compute ID specified by the user for serverless pipelines.", + "launch_stage": "PRIVATE_PREVIEW" + }, "storage": { "description": "DBFS root directory for storing checkpoints and tables.", "launch_stage": "GA" @@ -39016,6 +40360,14 @@ "ref": "pipelines.AutoFullRefreshPolicy", "launch_stage": "PUBLIC_PREVIEW" }, + "clustering_columns": { + "description": "List of column names to use for clustering the destination table.\nWhen specified, the destination Delta table will be clustered by these columns.\nThis can improve query performance when filtering on these columns.\nNote: clustering_columns in table specific configuration will override the pipeline definition.\nNote: we can only provide enable_auto_clustering or clustering_columns,\nadded as separate fields as we cannot have repeated field in oneof.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "enable_auto_clustering": { + "description": "Whether to enable auto clustering on the destination table.\nWhen enabled, Delta will automatically optimize the data layout\nbased on the clustering columns for improved query performance.\nNote: enable_auto_clustering in table specific configuration will override the pipeline definition.\nNote: we can only provide enable_auto_clustering or clustering_columns,\nadded as separate fields as we cannot have repeated field in oneof.", + "launch_stage": "PRIVATE_PREVIEW" + }, "exclude_columns": { "description": "A list of column names to be excluded for the ingestion.\nWhen not specified, include_columns fully controls what columns to be ingested.\nWhen specified, all other columns including future ones will be automatically included for ingestion.\nThis field in mutually exclusive with `include_columns`.", "launch_stage": "PUBLIC_PREVIEW" @@ -39048,6 +40400,10 @@ "description": "The column names specifying the logical order of events in the source data. Spark Declarative Pipelines uses this sequencing to handle change events that arrive out of order.", "launch_stage": "PUBLIC_PREVIEW" }, + "table_properties": { + "description": "Table properties to set on the destination table.\nThese are key-value pairs that configure various Delta table behaviors or any user defined properties.\nExample: {\"delta.feature.variantType\": \"supported\", \"delta.enableTypeWidening\": \"true\"}\nNote: table_properties in table specific configuration will override the table_properties of the pipeline definition.", + "launch_stage": "PRIVATE_PREVIEW" + }, "workday_report_parameters": { "description": "(Optional) Additional custom parameters for Workday Report", "ref": "pipelines.IngestionPipelineDefinitionWorkdayReportParameters", @@ -39072,33 +40428,38 @@ "description": "TikTok Ads specific options for ingestion", "fields": { "data_level": { - "description": "(Optional) Data level for the report.\nIf not specified, defaults to AUCTION_CAMPAIGN.", + "description": "Deprecated. Use custom_report_options.data_level instead.", "ref": "pipelines.TikTokAdsOptionsTikTokDataLevel", + "deprecated": true, "launch_stage": "PRIVATE_PREVIEW" }, "dimensions": { - "description": "(Optional) Dimensions to include in the report.\nExamples: \"campaign_id\", \"adgroup_id\", \"ad_id\", \"stat_time_day\", \"stat_time_hour\"\nIf not specified, defaults to campaign_id.", + "description": "Deprecated. Use custom_report_options.dimensions instead.", + "deprecated": true, "launch_stage": "PRIVATE_PREVIEW" }, "lookback_window_days": { - "description": "(Optional) Number of days to look back for report tables during incremental sync\nto capture late-arriving conversions and attribution data.\nIf not specified, defaults to 7 days.", + "description": "(Optional) Number of days to look back for report tables during incremental sync\nto capture late-arriving conversions and attribution data.", "launch_stage": "PRIVATE_PREVIEW" }, "metrics": { - "description": "(Optional) Metrics to include in the report.\nExamples: \"spend\", \"impressions\", \"clicks\", \"conversion\", \"cpc\"\nIf not specified, defaults to basic metrics (spend, impressions, clicks, etc.)", + "description": "Deprecated. Use custom_report_options.metrics instead.", + "deprecated": true, "launch_stage": "PRIVATE_PREVIEW" }, "query_lifetime": { - "description": "(Optional) Whether to request lifetime metrics (all-time aggregated data).\nWhen true, the report returns all-time data.\nIf not specified, defaults to false.", + "description": "Deprecated. Use custom_report_options.query_lifetime instead.", + "deprecated": true, "launch_stage": "PRIVATE_PREVIEW" }, "report_type": { - "description": "(Optional) Report type for the TikTok Ads API.\nIf not specified, defaults to BASIC.", + "description": "Deprecated. Use custom_report_options.report_type instead.", "ref": "pipelines.TikTokAdsOptionsTikTokReportType", + "deprecated": true, "launch_stage": "PRIVATE_PREVIEW" }, "sync_start_date": { - "description": "(Optional) Start date for the initial sync of report tables in YYYY-MM-DD format.\nThis determines the earliest date from which to sync historical data.\nIf not specified, defaults to 1 year of historical data for daily reports\nand 30 days for hourly reports.", + "description": "(Optional) Start date for the initial sync of report tables in YYYY-MM-DD format.\nThis determines the earliest date from which to sync historical data.", "launch_stage": "PRIVATE_PREVIEW" } } @@ -39338,6 +40699,13 @@ }, "postgres.Branch": { "fields": { + "branch_id": { + "description": "The part of the name, chosen by the user when the resource was created.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "create_time": { "description": "A timestamp indicating when the branch was created.", "launch_stage": "PUBLIC_BETA", @@ -39564,6 +40932,13 @@ }, "postgres.Catalog": { "fields": { + "catalog_id": { + "description": "The part of the name, chosen by the user when the resource was created.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "create_time": { "description": "A timestamp indicating when the catalog was created.", "launch_stage": "PUBLIC_BETA", @@ -39622,7 +40997,6 @@ "description": "If set to true, the specified postgres_database is created on behalf of the calling user\nif it does not already exist. In this case, the calling user has a role created for\nthem in Postgres if they do not already have one.\n\nDefaults to false, meaning that the request fails if the specified postgres_database does not already exist.", "launch_stage": "PUBLIC_BETA", "behaviors": [ - "INPUT_ONLY", "OPTIONAL" ] }, @@ -39695,6 +41069,15 @@ } } }, + "postgres.CreateDataApiRequest": { + "fields": { + "data_api": { + "description": "The Data API configuration to create.", + "ref": "postgres.DataApi", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "postgres.CreateDatabaseRequest": { "fields": { "database": { @@ -39773,6 +41156,206 @@ } } }, + "postgres.DataApi": { + "description": "DataApi represents the Data API (PostgREST) configuration for a Database.\nAt most one DataApi per database. Create enables Data API, Delete disables it.", + "fields": { + "create_time": { + "description": "A timestamp indicating when the Data API was first enabled.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "name": { + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "launch_stage": "PRIVATE_PREVIEW" + }, + "parent": { + "description": "The database containing this Data API configuration.\nFormat: projects/{project_id}/branches/{branch_id}/databases/{database_id}", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "spec": { + "description": "The desired Data API configuration.", + "ref": "postgres.DataApiDataApiSpec", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "INPUT_ONLY", + "OPTIONAL" + ] + }, + "status": { + "description": "The observed Data API state (read-only).", + "ref": "postgres.DataApiDataApiStatus", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "update_time": { + "description": "A timestamp indicating when the Data API configuration was last updated.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "postgres.DataApiDataApiSpec": { + "description": "Desired PostgREST configuration (input).", + "fields": { + "db_aggregates_enabled": { + "description": "Enable aggregate functions (count, sum, avg, etc.) in Data API responses.\nDefault: true.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "db_extra_search_path": { + "description": "Additional schemas to include in the PostgreSQL search path.\nEach entry must be a valid PostgreSQL schema name.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "db_max_rows": { + "description": "Maximum number of rows returned in a single Data API response.\nMust be a positive integer.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "db_schemas": { + "description": "Database schemas exposed through the Data API.\nEach entry must be a valid PostgreSQL schema name (1-63 chars, [a-zA-Z_][a-zA-Z0-9_$]*).\nMaximum 100 entries. Default: [\"public\"].", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "jwt_cache_max_lifetime": { + "description": "Maximum lifetime for cached JWT tokens. Zero duration disables caching.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "jwt_role_claim_key": { + "description": "JSON path to the role claim in JWT tokens (e.g., \".sub\").\nDefault: \".sub\".", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "openapi_mode": { + "description": "OpenAPI documentation mode for the Data API endpoint.", + "ref": "postgres.OpenApiMode", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "server_cors_allowed_origins": { + "description": "Allowed origins for CORS requests.\nEach entry should be a valid origin URL, or use \"*\" to allow all origins.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "server_timing_enabled": { + "description": "Enable the Server-Timing header in Data API responses.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "postgres.DataApiDataApiStatus": { + "description": "Observed state (output-only).", + "fields": { + "available_schemas": { + "description": "Schemas available in the database (for reference when configuring db_schemas).", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "db_aggregates_enabled": { + "description": "Actual aggregate function setting read from the database.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "db_extra_search_path": { + "description": "Actual extra search path schemas read from the database.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "db_max_rows": { + "description": "Actual max rows setting read from the database.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "db_schemas": { + "description": "Actual exposed schemas read from the database.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "jwt_cache_max_lifetime": { + "description": "Actual JWT cache max lifetime read from the database.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "jwt_role_claim_key": { + "description": "Actual JWT role claim key read from the database.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "openapi_mode": { + "description": "Actual OpenAPI mode read from the database.", + "ref": "postgres.OpenApiMode", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "server_cors_allowed_origins": { + "description": "Actual CORS allowed origins read from the database.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "server_timing_enabled": { + "description": "Actual Server-Timing header setting read from the database.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "url": { + "description": "Data API endpoint URL.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "postgres.DataApiOperationMetadata": {}, "postgres.Database": { "description": "Database represents a Postgres database within a Branch.", "fields": { @@ -39783,6 +41366,13 @@ "OUTPUT_ONLY" ] }, + "database_id": { + "description": "The part of the name, chosen by the user when the resource was created.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "name": { "description": "The resource name of the database.\nFormat: projects/{project_id}/branches/{branch_id}/databases/{database_id}", "launch_stage": "PUBLIC_BETA" @@ -39906,6 +41496,7 @@ } }, "postgres.DeleteCatalogRequest": {}, + "postgres.DeleteDataApiRequest": {}, "postgres.DeleteDatabaseRequest": {}, "postgres.DeleteEndpointRequest": {}, "postgres.DeleteProjectRequest": { @@ -39958,6 +41549,13 @@ "OUTPUT_ONLY" ] }, + "endpoint_id": { + "description": "The part of the name, chosen by the user when the resource was created.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "name": { "description": "Output only. The full resource path of the endpoint.\nFormat: projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id}", "launch_stage": "PUBLIC_BETA" @@ -40427,6 +42025,7 @@ }, "postgres.GetBranchRequest": {}, "postgres.GetCatalogRequest": {}, + "postgres.GetDataApiRequest": {}, "postgres.GetDatabaseRequest": {}, "postgres.GetEndpointRequest": {}, "postgres.GetOperationRequest": {}, @@ -40641,6 +42240,17 @@ } } }, + "postgres.OpenApiMode": { + "description": "Controls how the Data API exposes the OpenAPI documentation endpoint.\nOnly IGNORE_PRIVILEGES and DISABLED are supported today; \"follow-privileges\"\nis not implemented yet (it may be added later as value 3 — adding new enum\nvalues is backward-compatible).", + "enum": [ + "OPEN_API_MODE_IGNORE_PRIVILEGES", + "OPEN_API_MODE_DISABLED" + ], + "enum_launch_stages": { + "OPEN_API_MODE_DISABLED": "PRIVATE_PREVIEW", + "OPEN_API_MODE_IGNORE_PRIVILEGES": "PRIVATE_PREVIEW" + } + }, "postgres.Operation": { "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", "fields": { @@ -40696,6 +42306,13 @@ "description": "Output only. The full resource path of the project.\nFormat: projects/{project_id}", "launch_stage": "PUBLIC_BETA" }, + "project_id": { + "description": "The part of the name, chosen by the user when the resource was created.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "purge_time": { "description": "A timestamp indicating when the project is scheduled for permanent deletion.\nEmpty if the project is not deleted, otherwise set to a timestamp in the future.", "launch_stage": "PUBLIC_BETA", @@ -41017,6 +42634,13 @@ "OUTPUT_ONLY" ] }, + "role_id": { + "description": "The part of the name, chosen by the user when the resource was created.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "spec": { "description": "The spec contains the role configuration, including identity type, authentication method, and role attributes.", "ref": "postgres.RoleRoleSpec", @@ -41220,6 +42844,13 @@ "OUTPUT_ONLY" ] }, + "synced_table_id": { + "description": "The part of the name, chosen by the user when the resource was created.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "uid": { "description": "The Unity Catalog table ID for this synced table.", "launch_stage": "PUBLIC_BETA", @@ -41328,6 +42959,13 @@ }, "postgres.SyncedTableSyncedTableSpec": { "fields": { + "accelerated_sync": { + "description": "When true, enables accelerated sync mode for the initial data load.\nThis significantly improves performance for large tables.\nRequires workspace-level enablement through Lakebase Accelerated Sync preview.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "branch": { "description": "The full resource name the branch associated with the table.\n\nFormat: \"projects/{project_id}/branches/{branch_id}\".", "launch_stage": "PUBLIC_BETA", @@ -41392,9 +43030,25 @@ "behaviors": [ "OPTIONAL" ] + }, + "type_overrides": { + "description": "Override the default Delta-\u003ePG type mapping for specific columns.\nA TypeOverride with PG_SPECIFIC_TYPE_UNSPECIFIED is rejected; a valid pg_type must be set.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] } } }, + "postgres.SyncedTableSyncedTableSpecPgSpecificType": { + "description": "PostgreSQL-specific target types that can override the default Delta-to-PG mapping.", + "enum": [ + "PG_SPECIFIC_TYPE_VECTOR" + ], + "enum_launch_stages": { + "PG_SPECIFIC_TYPE_VECTOR": "PRIVATE_PREVIEW" + } + }, "postgres.SyncedTableSyncedTableSpecSyncedTableSchedulingPolicy": { "description": "Scheduling policy of the synced table's underlying pipeline.", "enum": [ @@ -41408,6 +43062,27 @@ "TRIGGERED": "PUBLIC_BETA" } }, + "postgres.SyncedTableSyncedTableSpecTypeOverride": { + "description": "Overrides the default Delta-to-PostgreSQL type mapping for a single column.", + "fields": { + "column_name": { + "description": "Name of the source column whose target PostgreSQL type should be overridden.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "pg_type": { + "description": "PostgreSQL-specific target type to use for the column.", + "ref": "postgres.SyncedTableSyncedTableSpecPgSpecificType", + "launch_stage": "PRIVATE_PREVIEW" + }, + "size": { + "description": "Size parameter for the target type. Required when pg_type is PG_SPECIFIC_TYPE_VECTOR\n(specifies the vector dimension, e.g., 1024).", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, "postgres.SyncedTableSyncedTableStatus": { "fields": { "detailed_state": { @@ -41503,6 +43178,19 @@ } } }, + "postgres.UpdateDataApiRequest": { + "fields": { + "data_api": { + "description": "The Data API configuration to update.\nThe data_api's `name` field identifies the resource.", + "ref": "postgres.DataApi", + "launch_stage": "PRIVATE_PREVIEW" + }, + "update_mask": { + "description": "The list of fields to update. If unspecified, all fields will be updated when possible.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "postgres.UpdateDatabaseRequest": { "fields": { "database": { @@ -42422,7 +44110,7 @@ "description": "*", "fields": { "account_id": { - "description": "The Databricks account ID that hosts the VPC endpoint configuration.\nTODO - This may signal an OpenAPI diff; it does not show up in the generated spec", + "description": "The Databricks account ID that hosts the VPC endpoint configuration.", "launch_stage": "GA" }, "aws_account_id": { @@ -42641,7 +44329,7 @@ "launch_stage": "GA" }, "gcp_managed_network_config": { - "description": "The mutually exclusive network deployment modes. The option decides which network mode the\nworkspace will use.\nThe network config for GCP workspace with Databricks managed network.\nThis object is input-only and will not be provided when listing workspaces.\nSee go/gcp-byovpc-alpha-design for interface decisions.", + "description": "The mutually exclusive network deployment modes. The option decides which network mode the\nworkspace will use.\nThe network config for GCP workspace with Databricks managed network.\nThis object is input-only and will not be provided when listing workspaces.", "ref": "provisioning.GcpManagedNetworkConfig", "launch_stage": "GA" }, @@ -42652,7 +44340,7 @@ } }, "provisioning.WorkspaceStatus": { - "description": "The different statuses of a workspace. The following represents the current set of valid\ntransitions from status to status:\nNOT_PROVISIONED\n-\u003e PROVISIONING\n-\u003e CANCELLED\nPROVISIONING\n-\u003e RUNNING\n-\u003e FAILED\n-\u003e CANCELLED (note that this transition is disallowed in the MultiWorkspace Project)\nRUNNING\n-\u003e PROVISIONING\n-\u003e BANNED\n-\u003e CANCELLED\nFAILED\n-\u003e PROVISIONING\n-\u003e CANCELLED\nBANNED\n-\u003e RUNNING\n-\u003e CANCELLED\nNote that a transition from any state to itself is also valid.\nTODO(PLAT-5867): add a transition from CANCELLED to some other value (e.g. RECOVERING)", + "description": "The different statuses of a workspace. The following represents the current set of valid\ntransitions from status to status:\nNOT_PROVISIONED\n-\u003e PROVISIONING\n-\u003e CANCELLED\nPROVISIONING\n-\u003e RUNNING\n-\u003e FAILED\n-\u003e CANCELLED (note that this transition is disallowed in the MultiWorkspace Project)\nRUNNING\n-\u003e PROVISIONING\n-\u003e BANNED\n-\u003e CANCELLED\nFAILED\n-\u003e PROVISIONING\n-\u003e CANCELLED\nBANNED\n-\u003e RUNNING\n-\u003e CANCELLED\nNote that a transition from any state to itself is also valid.", "enum": [ "NOT_PROVISIONED", "PROVISIONING", @@ -44379,7 +46067,7 @@ } }, "serving.ServedModelInputWorkloadType": { - "description": "Please keep this in sync with with workload types in InferenceEndpointEntities.scala", + "description": "Please keep this in sync with workload types in InferenceEndpointEntities.scala.", "enum": [ "CPU", "GPU_MEDIUM", @@ -44760,7 +46448,7 @@ } }, "serving.ServingModelWorkloadType": { - "description": "Please keep this in sync with with workload types in InferenceEndpointEntities.scala", + "description": "Please keep this in sync with workload types in InferenceEndpointEntities.scala.", "enum": [ "CPU", "GPU_MEDIUM", @@ -45468,6 +47156,7 @@ } }, "settings.CustomerFacingIngressNetworkPolicyAccountApiDestination": { + "description": "Matches account-level Databricks API endpoints for an ingress network policy rule.", "fields": { "scope_qualifier": { "description": "Qualifies the breadth of API access for the listed scopes. See ApiScopeQualifier.", @@ -45819,6 +47508,7 @@ } }, "settings.CustomerFacingIngressNetworkPolicyWorkspaceApiDestination": { + "description": "Matches workspace-level Databricks API endpoints for an ingress network policy rule.", "fields": { "scope_qualifier": { "description": "Qualifies the breadth of API access for the listed scopes. See ApiScopeQualifier.", @@ -46420,6 +48110,13 @@ }, "settings.EgressNetworkPolicyNetworkAccessPolicy": { "fields": { + "allowed_databricks_destinations": { + "description": "List of Databricks workspace destinations that serverless workloads are\nallowed to access when in RESTRICTED_ACCESS mode.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "allowed_internet_destinations": { "description": "List of internet destinations that serverless workloads are allowed to access when in RESTRICTED_ACCESS mode.", "launch_stage": "GA", @@ -46456,6 +48153,14 @@ } } }, + "settings.EgressNetworkPolicyNetworkAccessPolicyDatabricksDestination": { + "fields": { + "workspace_ids": { + "description": "The workspace IDs to allow egress traffic to.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "settings.EgressNetworkPolicyNetworkAccessPolicyInternetDestination": { "description": "Users can specify accessible internet destinations when outbound access is restricted.\nWe only support DNS_NAME (FQDN format) destinations for the time being.\nGoing forward we may extend support to host names and IP addresses.", "fields": { @@ -47548,7 +49253,7 @@ } }, "settings.NetworkPolicyEgress": { - "description": "The network policies applying for egress traffic.\nThis message is used by the UI/REST API. We translate this message to the format expected by the\ndataplane in Lakehouse Network Manager (for the format expected by the dataplane, see networkconfig.textproto).\nThis policy should be consistent with [[com.databricks.api.proto.settingspolicy.EgressNetworkPolicy]].\nDetails see API-design: https://docs.google.com/document/d/1DKWO_FpZMCY4cF2O62LpwII1lx8gsnDGG-qgE3t3TOA/", + "description": "The network policies applying for egress traffic.", "fields": { "network_access": { "description": "The access policy enforced for egress traffic to the internet.", @@ -51814,7 +53519,7 @@ "launch_stage": "GA" }, "cluster_size": { - "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large", + "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large\n- Auto", "launch_stage": "GA" }, "creator_name": { @@ -52269,7 +53974,7 @@ "launch_stage": "GA" }, "cluster_size": { - "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large", + "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large\n- Auto", "launch_stage": "GA" }, "creator_name": { @@ -52386,7 +54091,7 @@ "launch_stage": "GA" }, "cluster_size": { - "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large", + "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large\n- Auto", "launch_stage": "GA" }, "creator_name": { @@ -52735,7 +54440,7 @@ "launch_stage": "GA" }, "cluster_size": { - "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large", + "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large\n- Auto", "launch_stage": "GA" }, "creator_name": { @@ -54520,7 +56225,7 @@ }, "sql.SetWorkspaceWarehouseConfigResponse": {}, "sql.SpotInstancePolicy": { - "description": "EndpointSpotInstancePolicy configures whether the endpoint should use spot\ninstances.\n\nThe breakdown of how the EndpointSpotInstancePolicy converts to per cloud\nconfigurations is:\n\n+-------+--------------------------------------+--------------------------------+\n| Cloud | COST_OPTIMIZED | RELIABILITY_OPTIMIZED |\n+-------+--------------------------------------+--------------------------------+\n| AWS | On Demand Driver with Spot Executors | On Demand Driver and\nExecutors | | AZURE | On Demand Driver and Executors | On Demand Driver\nand Executors |\n+-------+--------------------------------------+--------------------------------+\n\nWhile including \"spot\" in the enum name may limit the the future\nextensibility of this field because it limits this enum to denoting \"spot or\nnot\", this is the field that PM recommends after discussion with customers\nper SC-48783.", + "description": "EndpointSpotInstancePolicy configures whether the endpoint should use spot\ninstances.\n\nThe breakdown of how the EndpointSpotInstancePolicy converts to per cloud\nconfigurations is:\n\n+-------+--------------------------------------+--------------------------------+\n| Cloud | COST_OPTIMIZED | RELIABILITY_OPTIMIZED |\n+-------+--------------------------------------+--------------------------------+\n| AWS | On Demand Driver with Spot Executors | On Demand Driver and\nExecutors | | AZURE | On Demand Driver and Executors | On Demand Driver\nand Executors |\n+-------+--------------------------------------+--------------------------------+", "enum": [ "POLICY_UNSPECIFIED", "COST_OPTIMIZED", @@ -54532,9 +56237,7 @@ "RELIABILITY_OPTIMIZED": "GA" } }, - "sql.StartRequest": { - "description": "Starts a SQL warehouse.\nThis API is idempotent." - }, + "sql.StartRequest": {}, "sql.StartWarehouseResponse": {}, "sql.State": { "description": "*\nState of a warehouse.", @@ -54639,9 +56342,7 @@ "HEALTHY": "GA" } }, - "sql.StopRequest": { - "description": "Stops a SQL warehouse.\nThis API is idempotent." - }, + "sql.StopRequest": {}, "sql.StopWarehouseResponse": {}, "sql.Success": { "fields": { @@ -55498,7 +57199,7 @@ "description": "*\nConfiguration values to enable or disable the access to specific warehouse\ntypes in the workspace.", "fields": { "enabled": { - "description": "If set to false the specific warehouse type will not be be allowed as a\nvalue for warehouse_type in CreateWarehouse and EditWarehouse", + "description": "If set to false the specific warehouse type will not be allowed as a\nvalue for warehouse_type in CreateWarehouse and EditWarehouse", "launch_stage": "GA" }, "warehouse_type": { @@ -56348,11 +58049,11 @@ "fields": { "key": { "description": "Key field for an AI Search endpoint tag.", - "launch_stage": "GA" + "launch_stage": "PRIVATE_PREVIEW" }, "value": { "description": "[Optional] Value field for an AI Search endpoint tag.", - "launch_stage": "GA" + "launch_stage": "PRIVATE_PREVIEW" } } }, @@ -56633,7 +58334,20 @@ ], "enum_launch_stages": { "STANDARD": "GA", - "STORAGE_OPTIMIZED": "PUBLIC_PREVIEW" + "STORAGE_OPTIMIZED": "GA" + } + }, + "vectorsearch.FacetResultData": { + "description": "Facet aggregation rows returned by a query.", + "fields": { + "facet_array": { + "description": "Facet rows. Each row is `[facet_column_name, value_or_range, count]`.", + "launch_stage": "PUBLIC_BETA" + }, + "facet_row_count": { + "description": "Number of facet rows returned.", + "launch_stage": "PUBLIC_BETA" + } } }, "vectorsearch.GetEndpointRequest": {}, @@ -56801,6 +58515,10 @@ "description": "The user who created the index.", "launch_stage": "GA" }, + "endpoint_id": { + "description": "ID of the endpoint associated with the index.", + "launch_stage": "PRIVATE_PREVIEW" + }, "endpoint_name": { "description": "Name of the endpoint associated with the index", "launch_stage": "GA" @@ -56889,6 +58607,10 @@ "description": "Column names used to retrieve data to send to the reranker.", "launch_stage": "PRIVATE_PREVIEW" }, + "facets": { + "description": "Facets to compute over the matched results. Each entry has one of these forms:\n`\"\u003ccolumn\u003e\"` - top 10 distinct values by count\n`\"\u003ccolumn\u003e TOP \u003cn\u003e\"` - top n distinct values, where n \u003e 0\n`\"\u003ccolumn\u003e BUCKETS [[from,to],...]\"` - inclusive numeric ranges\n`TOP` and `BUCKETS` are case-insensitive. A column may appear at most once.", + "launch_stage": "PUBLIC_BETA" + }, "filters_json": { "description": "JSON string representing query filters.\n\nExample filters:\n\n- `{\"id \u003c\": 5}`: Filter for id less than 5.\n- `{\"id \u003e\": 5}`: Filter for id greater than 5.\n- `{\"id \u003c=\": 5}`: Filter for id less than equal to 5.\n- `{\"id \u003e=\": 5}`: Filter for id greater than equal to 5.\n- `{\"id\": 5}`: Filter for id equal to 5.", "launch_stage": "GA" @@ -56897,6 +58619,10 @@ "description": "Number of results to return. Defaults to 10.", "launch_stage": "GA" }, + "query_columns": { + "description": "Text columns to search for `query_text`. When empty, all text columns are searched.", + "launch_stage": "PUBLIC_BETA" + }, "query_text": { "description": "Query text. Required for Delta Sync Index using model endpoint.", "launch_stage": "GA" @@ -56917,11 +58643,20 @@ "score_threshold": { "description": "Threshold for the approximate nearest neighbor search. Defaults to 0.0.", "launch_stage": "GA" + }, + "sort_columns": { + "description": "Sort results by column values instead of the default relevance ordering.\nEach clause has the form `\"\u003ccolumn\u003e ASC\"` or `\"\u003ccolumn\u003e DESC\"`, for example\n`[\"rating DESC\", \"price ASC\"]`.", + "launch_stage": "PUBLIC_BETA" } } }, "vectorsearch.QueryVectorIndexResponse": { "fields": { + "facet_result": { + "description": "Facet aggregation rows returned by a query.", + "ref": "vectorsearch.FacetResultData", + "launch_stage": "PUBLIC_BETA" + }, "manifest": { "description": "Metadata about the result set.", "ref": "vectorsearch.ResultManifest", @@ -56981,6 +58716,14 @@ "columns": { "description": "Information about each column in the result set.", "launch_stage": "GA" + }, + "facet_column_count": { + "description": "Number of columns in `facet_result`.", + "launch_stage": "PUBLIC_BETA" + }, + "facet_columns": { + "description": "Information about each column in `facet_result`.", + "launch_stage": "PUBLIC_BETA" } } }, @@ -57170,6 +58913,10 @@ "ref": "vectorsearch.DirectAccessVectorIndexSpec", "launch_stage": "GA" }, + "endpoint_id": { + "description": "ID of the endpoint associated with the index.", + "launch_stage": "PRIVATE_PREVIEW" + }, "endpoint_name": { "description": "Name of the endpoint associated with the index", "launch_stage": "GA" @@ -58271,6 +60018,10 @@ "description": "Branch that the local version of the repo is checked out to.", "launch_stage": "GA" }, + "dangerously_force_discard_all": { + "description": "WARNING: DESTRUCTIVE AND IRREVERSIBLE. If true, permanently deletes ALL uncommitted\nchanges in the Git folder — staged, unstaged, and untracked files — before updating.\nLost data CANNOT be recovered.\n\nNEVER use this on Git folders where users author or edit files. This flag is intended\nONLY for automated jobs that treat the Git folder as a read-only mirror of a remote\nbranch and need to force-sync it. If any user has uncommitted work in the Git folder,\nthat work will be permanently destroyed without warning.\n\nLocal commits that have been made but not yet pushed to the remote are preserved.", + "launch_stage": "PUBLIC_BETA" + }, "sparse_checkout": { "description": "If specified, update the sparse checkout settings. The update will fail if sparse checkout is\nnot enabled for the repo.", "ref": "workspace.SparseCheckoutUpdate", @@ -59973,44 +61724,64 @@ ] }, { - "id": "settings.AibiDashboardEmbeddingAccessPolicy", - "name": "AibiDashboardEmbeddingAccessPolicy", - "description": "Controls whether AI/BI published dashboard embedding is enabled, conditionally enabled, or disabled at the workspace level.\nBy default, this setting is conditionally enabled (ALLOW_APPROVED_DOMAINS).", + "id": "aisearch.AiSearch", + "name": "AiSearch", + "description": "**AI Search Endpoint**: Represents the compute resources to host AI Search indexes. AIP-conformant replacement for the legacy VectorSearchEndpoints API; functionally equivalent.", "package": { - "name": "settings" + "name": "aisearch" + }, + "is_hidden_cli": true, + "docs_group": "aisearch", + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "list": { + "request": { + "pascal_name": "ListEndpointsRequest" + } }, - "has_parent": true, - "docs_group": "settings", - "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", - "parent_service_id": "settings.Settings", "methods": [ { - "name": "Delete", - "description": "Delete the AI/BI dashboard embedding access policy, reverting back to the default.", - "summary": "Delete the AI/BI dashboard embedding access policy.", - "path": "/api/2.0/settings/types/aibi_dash_embed_ws_acc_policy/names/default", + "name": "CreateEndpoint", + "description": "Create a new AI Search endpoint.", + "summary": "Create an AI Search endpoint.", + "path": "/api/2.0/ai-search/{parent=workspaces/*}/endpoints", + "can_use_json": true, + "is_crud_create": true, + "is_hidden_cli": 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": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", "request": { - "pascal_name": "DeleteAibiDashboardEmbeddingAccessPolicySettingRequest", - "is_object": true - }, - "response": { - "pascal_name": "DeleteAibiDashboardEmbeddingAccessPolicySettingResponse", + "pascal_name": "CreateEndpointRequest", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "etag", - "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "name": "parent", + "description": "The Workspace where this Endpoint will be created.\nFormat: `workspaces/{workspace_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "endpoint", + "description": "The Endpoint resource to create. Fields other than `endpoint.name` carry the desired\nconfiguration; `endpoint.name` is server-assigned from `parent` and `endpoint_id`.", "required": true, "is_request_body_field": true, + "entity": { + "pascal_name": "Endpoint", + "is_object": true + } + } + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "The Workspace where this Endpoint will be created.\nFormat: `workspaces/{workspace_id}`", + "required": true, + "is_path": true, "entity": { "is_string": true } @@ -60018,119 +61789,415 @@ ], "required_request_body_fields": [ { - "name": "etag", - "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "name": "endpoint", + "description": "The Endpoint resource to create. Fields other than `endpoint.name` carry the desired\nconfiguration; `endpoint.name` is server-assigned from `parent` and `endpoint_id`.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "Endpoint", + "is_object": true } } ] }, - "all_fields": [ - { - "name": "etag", - "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", - "is_query": true, - "entity": { - "is_string": true - } + "request_body_field": { + "name": "endpoint", + "description": "The Endpoint resource to create. Fields other than `endpoint.name` carry the desired\nconfiguration; `endpoint.name` is server-assigned from `parent` and `endpoint_id`.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Endpoint", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ], + "required_request_body_fields": [ + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ] } - ] - }, - { - "name": "Get", - "description": "Retrieves the AI/BI dashboard embedding access policy.\nThe default setting is ALLOW_APPROVED_DOMAINS, permitting AI/BI dashboards to be embedded on approved domains.", - "summary": "Retrieve the AI/BI dashboard embedding access policy.", - "path": "/api/2.0/settings/types/aibi_dash_embed_ws_acc_policy/names/default", - "is_crud_read": 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", - "request": { - "pascal_name": "GetAibiDashboardEmbeddingAccessPolicySettingRequest", - "is_object": true }, "response": { - "pascal_name": "AibiDashboardEmbeddingAccessPolicySetting", + "pascal_name": "Endpoint", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "aibi_dashboard_embedding_access_policy", + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingAccessPolicy", - "is_object": true + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] } } ], "required_request_body_fields": [ { - "name": "aibi_dashboard_embedding_access_policy", + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingAccessPolicy", - "is_object": true + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] } } ] }, "all_fields": [ { - "name": "etag", - "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "name": "endpoint", + "description": "The Endpoint resource to create. Fields other than `endpoint.name` carry the desired\nconfiguration; `endpoint.name` is server-assigned from `parent` and `endpoint_id`.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Endpoint", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ], + "required_request_body_fields": [ + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ] + } + }, + { + "name": "endpoint_id", + "description": "The user-supplied short name for the Endpoint, per AIP-133. The server composes the\nfull `Endpoint.name` as `{parent}/endpoints/{endpoint_id}`. AIP-133 does not list\n`endpoint_id` as a fields-may-be-required entry, so we annotate it OPTIONAL on the\nwire; the server still rejects empty values with INVALID_PARAMETER_VALUE.", "is_query": true, "entity": { "is_string": true } + }, + { + "name": "parent", + "description": "The Workspace where this Endpoint will be created.\nFormat: `workspaces/{workspace_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "budget_policy_id", + "description": "The user-selected budget policy id for the endpoint.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "create_time", + "description": "Time the endpoint was created.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "creator", + "description": "Creator of the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "custom_tags", + "description": "The custom tags assigned to the endpoint", + "is_request_body_field": true, + "entity": { + "pascal_name": "CustomTagList", + "array_value": { + "pascal_name": "CustomTag", + "is_object": true + } + } + }, + { + "name": "effective_budget_policy_id", + "description": "The budget policy id applied to the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "endpoint_status", + "description": "Current status of the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "EndpointStatus", + "is_object": true + } + }, + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + }, + { + "name": "id", + "description": "Unique identifier of the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "index_count", + "description": "Number of indexes on the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, + { + "name": "last_updated_user", + "description": "User who last updated the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "name", + "description": "Name of the AI Search endpoint. Server-assigned full resource path\n(`workspaces/{workspace}/endpoints/{endpoint}`) on output. On create, the\nuser-supplied short name is conveyed via `CreateEndpointRequest.endpoint_id`;\nthe server composes the full `name` and returns it on the response.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "replica_count", + "description": "The client-supplied desired number of replicas for the endpoint, applied at\ncreate/update time. Mutually exclusive with `target_qps`.", + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, + { + "name": "scaling_info", + "description": "Scaling information for the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "EndpointScalingInfo", + "is_object": true + } + }, + { + "name": "target_qps", + "description": "Target QPS for the endpoint. Mutually exclusive with `replica_count`. Best-effort;\nthe system does not guarantee this QPS will be achieved.", + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, + { + "name": "throughput_info", + "description": "Throughput information for the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "EndpointThroughputInfo", + "is_object": true + } + }, + { + "name": "update_time", + "description": "Time the endpoint was last updated.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "usage_policy_id", + "description": "The usage policy id applied to the endpoint.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "parent", + "description": "The Workspace where this Endpoint will be created.\nFormat: `workspaces/{workspace_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } } ] }, { - "name": "Update", - "description": "Updates the AI/BI dashboard embedding access policy at the workspace level.", - "summary": "Update the AI/BI dashboard embedding access policy.", - "path": "/api/2.0/settings/types/aibi_dash_embed_ws_acc_policy/names/default", + "name": "CreateIndex", + "description": "Create a new AI Search index.", + "summary": "Create an AI Search index.", + "path": "/api/2.0/ai-search/{parent=workspaces/*/endpoints/*}/indexes", "can_use_json": true, - "must_use_json": 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", + "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": "UpdateAibiDashboardEmbeddingAccessPolicySettingRequest", + "pascal_name": "CreateIndexRequest", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "allow_missing", - "description": "This should always be set to true for Settings API. Added for AIP compliance.", + "name": "parent", + "description": "The Endpoint where this Index will be created.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_bool": true + "is_string": true } }, { - "name": "setting", + "name": "index", + "description": "The Index resource to create. Fields other than `index.name` carry the desired\nconfiguration; `index.name` is server-assigned from `parent` and `index_id`.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingAccessPolicySetting", + "pascal_name": "Index", "is_object": true } - }, + } + ], + "required_in_url_fields": [ { - "name": "field_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.", + "name": "parent", + "description": "The Endpoint where this Index will be created.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } @@ -60138,154 +62205,426 @@ ], "required_request_body_fields": [ { - "name": "allow_missing", - "description": "This should always be set to true for Settings API. Added for AIP compliance.", + "name": "index", + "description": "The Index resource to create. Fields other than `index.name` carry the desired\nconfiguration; `index.name` is server-assigned from `parent` and `index_id`.", "required": true, "is_request_body_field": true, "entity": { - "is_bool": true + "pascal_name": "Index", + "is_object": true } - }, + } + ] + }, + "request_body_field": { + "name": "index", + "description": "The Index resource to create. Fields other than `index.name` carry the desired\nconfiguration; `index.name` is server-assigned from `parent` and `index_id`.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Index", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "primary_key", + "description": "Primary key of the index. Set on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "index_type", + "description": "Type of index. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "IndexType", + "enum": [ + { + "content": "DELTA_SYNC" + }, + { + "content": "DIRECT_ACCESS" + } + ] + } + } + ], + "required_request_body_fields": [ + { + "name": "primary_key", + "description": "Primary key of the index. Set on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "index_type", + "description": "Type of index. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "IndexType", + "enum": [ + { + "content": "DELTA_SYNC" + }, + { + "content": "DIRECT_ACCESS" + } + ] + } + } + ] + } + }, + "response": { + "pascal_name": "Index", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ { - "name": "setting", + "name": "primary_key", + "description": "Primary key of the index. Set on create and immutable thereafter.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingAccessPolicySetting", - "is_object": true + "is_string": true } }, { - "name": "field_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.", + "name": "index_type", + "description": "Type of index. Required on create and immutable thereafter.", "required": true, "is_request_body_field": true, "entity": { - "is_string": true + "pascal_name": "IndexType", + "enum": [ + { + "content": "DELTA_SYNC" + }, + { + "content": "DIRECT_ACCESS" + } + ] } } - ] - }, - "response": { - "pascal_name": "AibiDashboardEmbeddingAccessPolicySetting", - "is_object": true, - "has_required_request_body_fields": true, - "required_fields": [ + ], + "required_request_body_fields": [ { - "name": "aibi_dashboard_embedding_access_policy", + "name": "primary_key", + "description": "Primary key of the index. Set on create and immutable thereafter.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingAccessPolicy", - "is_object": true + "is_string": true } - } - ], - "required_request_body_fields": [ + }, { - "name": "aibi_dashboard_embedding_access_policy", + "name": "index_type", + "description": "Type of index. Required on create and immutable thereafter.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingAccessPolicy", - "is_object": true + "pascal_name": "IndexType", + "enum": [ + { + "content": "DELTA_SYNC" + }, + { + "content": "DIRECT_ACCESS" + } + ] } } ] }, "all_fields": [ { - "name": "allow_missing", - "description": "This should always be set to true for Settings API. Added for AIP compliance.", + "name": "index", + "description": "The Index resource to create. Fields other than `index.name` carry the desired\nconfiguration; `index.name` is server-assigned from `parent` and `index_id`.", "required": true, "is_request_body_field": true, "entity": { - "is_bool": true + "pascal_name": "Index", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "primary_key", + "description": "Primary key of the index. Set on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "index_type", + "description": "Type of index. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "IndexType", + "enum": [ + { + "content": "DELTA_SYNC" + }, + { + "content": "DIRECT_ACCESS" + } + ] + } + } + ], + "required_request_body_fields": [ + { + "name": "primary_key", + "description": "Primary key of the index. Set on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "index_type", + "description": "Type of index. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "IndexType", + "enum": [ + { + "content": "DELTA_SYNC" + }, + { + "content": "DIRECT_ACCESS" + } + ] + } + } + ] } }, { - "name": "field_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.", + "name": "index_id", + "description": "The user-supplied Unity Catalog table name for the Index, per AIP-133. The server\ncomposes the full `Index.name` as `{parent}/indexes/{index_id}`. AIP-133 does not\nlist `index_id` as a fields-may-be-required entry, so we annotate it OPTIONAL on the\nwire; the server still rejects empty values with INVALID_PARAMETER_VALUE.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "parent", + "description": "The Endpoint where this Index will be created.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "creator", + "description": "Creator of the index.", + "is_output_only": true, "is_request_body_field": true, "entity": { "is_string": true } }, { - "name": "setting", + "name": "delta_sync_index_spec", + "description": "Specification for a Delta Sync index. Set when `index_type` is `DELTA_SYNC`.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "DeltaSyncIndexSpec", + "is_object": true + } + }, + { + "name": "direct_access_index_spec", + "description": "Specification for a Direct Access index. Set when `index_type` is `DIRECT_ACCESS`.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "DirectAccessIndexSpec", + "is_object": true + } + }, + { + "name": "endpoint", + "description": "Name of the endpoint associated with the index. Ignored on create — the endpoint is\ntaken from `CreateIndexRequest.parent`; populated only on output.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "index_subtype", + "description": "The subtype of the index. Set on create and immutable thereafter.", + "is_request_body_field": true, + "entity": { + "pascal_name": "IndexSubtype", + "enum": [ + { + "content": "FULL_TEXT" + }, + { + "content": "HYBRID" + }, + { + "content": "VECTOR" + } + ] + } + }, + { + "name": "index_type", + "description": "Type of index. Required on create and immutable thereafter.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingAccessPolicySetting", + "pascal_name": "IndexType", + "enum": [ + { + "content": "DELTA_SYNC" + }, + { + "content": "DIRECT_ACCESS" + } + ] + } + }, + { + "name": "name", + "description": "Name of the AI Search index. Server-assigned full resource path\n(`workspaces/{workspace}/endpoints/{endpoint}/indexes/{index}`) on output, where\n`{index}` is the index's Unity Catalog table name. On create, the user-supplied UC\ntable name is conveyed via `CreateIndexRequest.index_id`; the server composes the\nfull `name` and returns it on the response.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "primary_key", + "description": "Primary key of the index. Set on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "status", + "description": "Current status of the index.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "IndexStatus", "is_object": true } } + ], + "required_positional_arguments": [ + { + "name": "parent", + "description": "The Endpoint where this Index will be created.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "primary_key", + "description": "Primary key of the index. Set on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "index_type", + "description": "Type of index. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "IndexType", + "enum": [ + { + "content": "DELTA_SYNC" + }, + { + "content": "DIRECT_ACCESS" + } + ] + } + } ] - } - ] - }, - { - "id": "settings.AibiDashboardEmbeddingApprovedDomains", - "name": "AibiDashboardEmbeddingApprovedDomains", - "description": "Controls the list of domains approved to host the embedded AI/BI dashboards.\nThe approved domains list can't be mutated when the current access policy is not set to ALLOW_APPROVED_DOMAINS.", - "package": { - "name": "settings" - }, - "has_parent": true, - "docs_group": "settings", - "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", - "parent_service_id": "settings.Settings", - "methods": [ + }, { - "name": "Delete", - "description": "Delete the list of domains approved to host embedded AI/BI dashboards, reverting back to the default empty list.", - "summary": "Delete AI/BI dashboard embedding approved domains.", - "path": "/api/2.0/settings/types/aibi_dash_embed_ws_apprvd_domains/names/default", + "name": "DeleteEndpoint", + "description": "Delete an AI Search endpoint.", + "summary": "Delete an AI Search endpoint.", + "path": "/api/2.0/ai-search/{name=workspaces/*/endpoints/*}", + "is_hidden_cli": 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": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", "request": { - "pascal_name": "DeleteAibiDashboardEmbeddingApprovedDomainsSettingRequest", - "is_object": true - }, - "response": { - "pascal_name": "DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse", + "pascal_name": "DeleteEndpointRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "etag", - "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "name": "name", + "description": "Full resource name of the endpoint to delete.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } } ], - "required_request_body_fields": [ + "required_in_url_fields": [ { - "name": "etag", - "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "name": "name", + "description": "Full resource name of the endpoint to delete.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } } ] }, + "response": { + "is_empty_response": true + }, "all_fields": [ { - "name": "etag", - "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", - "is_query": true, + "name": "name", + "description": "Full resource name of the endpoint to delete.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Full resource name of the endpoint to delete.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", + "required": true, + "is_path": true, "entity": { "is_string": true } @@ -60293,52 +62632,60 @@ ] }, { - "name": "Get", - "description": "Retrieves the list of domains approved to host embedded AI/BI dashboards.", - "summary": "Retrieve the list of domains approved to host embedded AI/BI dashboards.", - "path": "/api/2.0/settings/types/aibi_dash_embed_ws_apprvd_domains/names/default", - "is_crud_read": true, + "name": "DeleteIndex", + "description": "Delete an AI Search index.", + "summary": "Delete an AI Search index.", + "path": "/api/2.0/ai-search/{name=workspaces/*/endpoints/*/indexes/*}", + "is_hidden_cli": 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": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", "request": { - "pascal_name": "GetAibiDashboardEmbeddingApprovedDomainsSettingRequest", - "is_object": true - }, - "response": { - "pascal_name": "AibiDashboardEmbeddingApprovedDomainsSetting", + "pascal_name": "DeleteIndexRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "aibi_dashboard_embedding_approved_domains", + "name": "name", + "description": "Full resource name of the index to delete.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingApprovedDomains", - "is_object": true + "is_string": true } } ], - "required_request_body_fields": [ + "required_in_url_fields": [ { - "name": "aibi_dashboard_embedding_approved_domains", + "name": "name", + "description": "Full resource name of the index to delete.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingApprovedDomains", - "is_object": true + "is_string": true } } ] }, + "response": { + "is_empty_response": true + }, "all_fields": [ { - "name": "etag", - "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", - "is_query": true, + "name": "name", + "description": "Full resource name of the index to delete.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Full resource name of the index to delete.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, "entity": { "is_string": true } @@ -60346,73 +62693,35 @@ ] }, { - "name": "Update", - "description": "Updates the list of domains approved to host embedded AI/BI dashboards.\nThis update will fail if the current workspace access policy is not ALLOW_APPROVED_DOMAINS.", - "summary": "Update the list of domains approved to host embedded AI/BI dashboards.", - "path": "/api/2.0/settings/types/aibi_dash_embed_ws_apprvd_domains/names/default", - "can_use_json": true, - "must_use_json": 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", + "name": "GetEndpoint", + "description": "Get details for a single AI Search endpoint.", + "summary": "Get an AI Search endpoint.", + "path": "/api/2.0/ai-search/{name=workspaces/*/endpoints/*}", + "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": "UpdateAibiDashboardEmbeddingApprovedDomainsSettingRequest", + "pascal_name": "GetEndpointRequest", "is_object": true, - "has_required_request_body_fields": true, "required_fields": [ { - "name": "allow_missing", - "description": "This should always be set to true for Settings API. Added for AIP compliance.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_bool": true - } - }, - { - "name": "setting", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "AibiDashboardEmbeddingApprovedDomainsSetting", - "is_object": true - } - }, - { - "name": "field_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.", + "name": "name", + "description": "Full resource name of the endpoint.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } } ], - "required_request_body_fields": [ - { - "name": "allow_missing", - "description": "This should always be set to true for Settings API. Added for AIP compliance.", - "required": true, - "is_request_body_field": true, - "entity": { - "is_bool": true - } - }, - { - "name": "setting", - "required": true, - "is_request_body_field": true, - "entity": { - "pascal_name": "AibiDashboardEmbeddingApprovedDomainsSetting", - "is_object": true - } - }, + "required_in_url_fields": [ { - "name": "field_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.", + "name": "name", + "description": "Full resource name of the endpoint.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { "is_string": true } @@ -60420,47 +62729,1860 @@ ] }, "response": { - "pascal_name": "AibiDashboardEmbeddingApprovedDomainsSetting", + "pascal_name": "Endpoint", "is_object": true, "has_required_request_body_fields": true, "required_fields": [ { - "name": "aibi_dashboard_embedding_approved_domains", + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingApprovedDomains", - "is_object": true + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] } } ], "required_request_body_fields": [ { - "name": "aibi_dashboard_embedding_approved_domains", + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", "required": true, "is_request_body_field": true, "entity": { - "pascal_name": "AibiDashboardEmbeddingApprovedDomains", - "is_object": true + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] } } ] }, "all_fields": [ { - "name": "allow_missing", - "description": "This should always be set to true for Settings API. Added for AIP compliance.", + "name": "name", + "description": "Full resource name of the endpoint.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", "required": true, - "is_request_body_field": true, + "is_path": true, "entity": { - "is_bool": true + "is_string": true } - }, + } + ], + "required_positional_arguments": [ { - "name": "field_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.", + "name": "name", + "description": "Full resource name of the endpoint.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", "required": true, - "is_request_body_field": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "GetIndex", + "description": "Get details for a single AI Search index.", + "summary": "Get an AI Search index.", + "path": "/api/2.0/ai-search/{name=workspaces/*/endpoints/*/indexes/*}", + "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": "GetIndexRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "Full resource name of the index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Full resource name of the index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "Index", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "primary_key", + "description": "Primary key of the index. Set on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "index_type", + "description": "Type of index. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "IndexType", + "enum": [ + { + "content": "DELTA_SYNC" + }, + { + "content": "DIRECT_ACCESS" + } + ] + } + } + ], + "required_request_body_fields": [ + { + "name": "primary_key", + "description": "Primary key of the index. Set on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "index_type", + "description": "Type of index. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "IndexType", + "enum": [ + { + "content": "DELTA_SYNC" + }, + { + "content": "DIRECT_ACCESS" + } + ] + } + } + ] + }, + "all_fields": [ + { + "name": "name", + "description": "Full resource name of the index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Full resource name of the index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "ListEndpoints", + "description": "List AI Search endpoints in a workspace.", + "summary": "List AI Search endpoints.", + "path": "/api/2.0/ai-search/{parent=workspaces/*}/endpoints", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "ListEndpointsRequest", + "is_object": true, + "required_fields": [ + { + "name": "parent", + "description": "The Workspace that owns this collection of endpoints.\nFormat: `workspaces/{workspace_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "The Workspace that owns this collection of endpoints.\nFormat: `workspaces/{workspace_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "ListEndpointsResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "page_size", + "description": "Best-effort upper bound on the number of results to return. Honored as an upper\nbound by the shim: `page_size` only narrows the legacy backend's response, never\nwidens it, so the practical cap is `min(page_size, legacy_fixed_page_size)`.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "Page token from a previous response. If not provided, returns the first page.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "parent", + "description": "The Workspace that owns this collection of endpoints.\nFormat: `workspaces/{workspace_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "parent", + "description": "The Workspace that owns this collection of endpoints.\nFormat: `workspaces/{workspace_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "Page token from a previous response. If not provided, returns the first page.", + "is_query": true, + "entity": { + "is_string": true + } + } + } + } + }, + { + "name": "ListIndexes", + "description": "List AI Search indexes on an endpoint.", + "summary": "List AI Search indexes.", + "path": "/api/2.0/ai-search/{parent=workspaces/*/endpoints/*}/indexes", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "ListIndexesRequest", + "is_object": true, + "required_fields": [ + { + "name": "parent", + "description": "The Endpoint that owns this collection of indexes.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "The Endpoint that owns this collection of indexes.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "ListIndexesResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "page_size", + "description": "Best-effort upper bound on the number of results to return. Honored as an upper\nbound by the shim: `page_size` only narrows the legacy backend's response, never\nwidens it, so the practical cap is `min(page_size, legacy_fixed_page_size)`.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "Page token from a previous response. If not provided, returns the first page.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "parent", + "description": "The Endpoint that owns this collection of indexes.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "parent", + "description": "The Endpoint that owns this collection of indexes.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "Page token from a previous response. If not provided, returns the first page.", + "is_query": true, + "entity": { + "is_string": true + } + } + } + } + }, + { + "name": "QueryIndex", + "description": "Query (search) an AI Search index. Read-only, so a read-scoped token may invoke it.", + "summary": "Query an AI Search index.", + "path": "/api/2.0/ai-search/{name=workspaces/*/endpoints/*/indexes/*}:query", + "can_use_json": true, + "must_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "QueryIndexRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Full resource name of the index to query.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "columns", + "description": "Column names to include in each result row.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Full resource name of the index to query.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "columns", + "description": "Column names to include in each result row.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + } + ] + }, + "response": { + "pascal_name": "QueryIndexResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "columns", + "description": "Column names to include in each result row.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "columns_to_rerank", + "description": "Columns whose values are sent to the reranker.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "facets", + "description": "Facets to compute over the matched results (e.g. `\"category TOP 5\"`).", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "filters_json", + "description": "JSON string describing query filters (e.g. `{\"id \u003e\": 5}`).", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "max_results", + "description": "Maximum number of results to return (the legacy `num_results`). Defaults to 10.", + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, + { + "name": "name", + "description": "Full resource name of the index to query.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "query_columns", + "description": "Text columns to search for `query_text`. When empty, all text columns are searched.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, + { + "name": "query_text", + "description": "Query text. Required for Delta Sync indexes that compute embeddings from a model endpoint.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "query_type", + "description": "Query type: `ANN`, `HYBRID`, or `FULL_TEXT`. Defaults to `ANN`.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "query_vector", + "description": "Query vector. Required for Direct Access indexes and Delta Sync indexes with self-managed\nvectors.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_float64": true + } + } + }, + { + "name": "reranker", + "description": "If set, results are reranked before being returned.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "RerankerConfig", + "is_object": true + } + }, + { + "name": "score_threshold", + "description": "Score threshold for the approximate nearest-neighbor search. Defaults to 0.0.", + "is_request_body_field": true, + "entity": { + "is_float64": true + } + }, + { + "name": "sort_columns", + "description": "Sort clauses, e.g. `[\"rating DESC\", \"price ASC\"]`. Overrides relevance ordering.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Full resource name of the index to query.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "RemoveData", + "description": "Remove rows by primary key from a Direct Access AI Search index.", + "summary": "Remove data from an AI Search index.", + "path": "/api/2.0/ai-search/{name=workspaces/*/endpoints/*/indexes/*}:removeData", + "can_use_json": true, + "must_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "RemoveDataRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Full resource name of the index. Must be a Direct Access index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "primary_keys", + "description": "Primary keys of the rows to remove.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Full resource name of the index. Must be a Direct Access index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "primary_keys", + "description": "Primary keys of the rows to remove.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + } + ] + }, + "response": { + "pascal_name": "RemoveDataResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Full resource name of the index. Must be a Direct Access index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "primary_keys", + "description": "Primary keys of the rows to remove.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Full resource name of the index. Must be a Direct Access index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "ScanIndex", + "description": "Scan (paginate over) the rows of an AI Search index.", + "summary": "Scan an AI Search index.", + "path": "/api/2.0/ai-search/{name=workspaces/*/endpoints/*/indexes/*}:scan", + "can_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "ScanIndexRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "Full resource name of the index to scan.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Full resource name of the index to scan.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "ScanIndexResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Full resource name of the index to scan.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "page_size", + "description": "Maximum number of rows to return in this page.", + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "Page token from a previous response; if unset, scanning starts from the beginning.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Full resource name of the index to scan.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "SyncIndex", + "description": "Synchronize a Delta Sync AI Search index with its source Delta table. Applies only to\nDelta Sync indexes; Direct Access indexes are written via the data-plane upsert path.", + "summary": "Synchronize an AI Search index.", + "path": "/api/2.0/ai-search/{name=workspaces/*/endpoints/*/indexes/*}:sync", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "SyncIndexRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "Full resource name of the index to synchronize. Must be a Delta Sync index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Full resource name of the index to synchronize. Must be a Delta Sync index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "SyncIndexResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Full resource name of the index to synchronize. Must be a Delta Sync index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Full resource name of the index to synchronize. Must be a Delta Sync index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "UpdateEndpoint", + "description": "Update an existing AI Search endpoint. Multi-bucket masks are supported and\ndispatched in deterministic bucket order: budget policy, custom tags, throughput,\nthen scaling/replicas. Per-bucket dispatch is not atomic across buckets — if a\nlater bucket fails, earlier buckets may already have been applied.", + "summary": "Update an AI Search endpoint.", + "path": "/api/2.0/ai-search/{name=workspaces/*/endpoints/*}", + "can_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "UpdateEndpointRequest", + "is_object": true, + "has_field_mask": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Name of the AI Search endpoint. Server-assigned full resource path\n(`workspaces/{workspace}/endpoints/{endpoint}`) on output. On create, the\nuser-supplied short name is conveyed via `CreateEndpointRequest.endpoint_id`;\nthe server composes the full `name` and returns it on the response.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "endpoint", + "description": "The Endpoint resource to update. `endpoint.name` carries the full resource path.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Endpoint", + "is_object": true + } + }, + { + "name": "update_mask", + "description": "The list of fields to update.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Name of the AI Search endpoint. Server-assigned full resource path\n(`workspaces/{workspace}/endpoints/{endpoint}`) on output. On create, the\nuser-supplied short name is conveyed via `CreateEndpointRequest.endpoint_id`;\nthe server composes the full `name` and returns it on the response.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_mask", + "description": "The list of fields to update.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + } + ], + "required_request_body_fields": [ + { + "name": "endpoint", + "description": "The Endpoint resource to update. `endpoint.name` carries the full resource path.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Endpoint", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "endpoint", + "description": "The Endpoint resource to update. `endpoint.name` carries the full resource path.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Endpoint", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ], + "required_request_body_fields": [ + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ] + } + }, + "response": { + "pascal_name": "Endpoint", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ], + "required_request_body_fields": [ + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ] + }, + "all_fields": [ + { + "name": "endpoint", + "description": "The Endpoint resource to update. `endpoint.name` carries the full resource path.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "Endpoint", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ], + "required_request_body_fields": [ + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ] + } + }, + { + "name": "name", + "description": "Name of the AI Search endpoint. Server-assigned full resource path\n(`workspaces/{workspace}/endpoints/{endpoint}`) on output. On create, the\nuser-supplied short name is conveyed via `CreateEndpointRequest.endpoint_id`;\nthe server composes the full `name` and returns it on the response.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_mask", + "description": "The list of fields to update.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + }, + { + "name": "budget_policy_id", + "description": "The user-selected budget policy id for the endpoint.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "create_time", + "description": "Time the endpoint was created.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "creator", + "description": "Creator of the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "custom_tags", + "description": "The custom tags assigned to the endpoint", + "is_request_body_field": true, + "entity": { + "pascal_name": "CustomTagList", + "array_value": { + "pascal_name": "CustomTag", + "is_object": true + } + } + }, + { + "name": "effective_budget_policy_id", + "description": "The budget policy id applied to the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "endpoint_status", + "description": "Current status of the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "EndpointStatus", + "is_object": true + } + }, + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + }, + { + "name": "id", + "description": "Unique identifier of the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "index_count", + "description": "Number of indexes on the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, + { + "name": "last_updated_user", + "description": "User who last updated the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "name", + "description": "Name of the AI Search endpoint. Server-assigned full resource path\n(`workspaces/{workspace}/endpoints/{endpoint}`) on output. On create, the\nuser-supplied short name is conveyed via `CreateEndpointRequest.endpoint_id`;\nthe server composes the full `name` and returns it on the response.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "replica_count", + "description": "The client-supplied desired number of replicas for the endpoint, applied at\ncreate/update time. Mutually exclusive with `target_qps`.", + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, + { + "name": "scaling_info", + "description": "Scaling information for the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "EndpointScalingInfo", + "is_object": true + } + }, + { + "name": "target_qps", + "description": "Target QPS for the endpoint. Mutually exclusive with `replica_count`. Best-effort;\nthe system does not guarantee this QPS will be achieved.", + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, + { + "name": "throughput_info", + "description": "Throughput information for the endpoint", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "EndpointThroughputInfo", + "is_object": true + } + }, + { + "name": "update_time", + "description": "Time the endpoint was last updated.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "usage_policy_id", + "description": "The usage policy id applied to the endpoint.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Name of the AI Search endpoint. Server-assigned full resource path\n(`workspaces/{workspace}/endpoints/{endpoint}`) on output. On create, the\nuser-supplied short name is conveyed via `CreateEndpointRequest.endpoint_id`;\nthe server composes the full `name` and returns it on the response.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_mask", + "description": "The list of fields to update.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + }, + { + "name": "endpoint_type", + "description": "Type of endpoint. Required on create and immutable thereafter.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "EndpointType", + "enum": [ + { + "content": "STANDARD" + }, + { + "content": "STORAGE_OPTIMIZED" + } + ] + } + } + ] + }, + { + "name": "UpsertData", + "description": "Upsert rows into a Direct Access AI Search index.", + "summary": "Upsert data into an AI Search index.", + "path": "/api/2.0/ai-search/{name=workspaces/*/endpoints/*/indexes/*}:upsertData", + "can_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "UpsertDataRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Full resource name of the index. Must be a Direct Access index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "inputs_json", + "description": "JSON document describing the rows to upsert.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Full resource name of the index. Must be a Direct Access index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "inputs_json", + "description": "JSON document describing the rows to upsert.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "UpsertDataResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "inputs_json", + "description": "JSON document describing the rows to upsert.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "name", + "description": "Full resource name of the index. Must be a Direct Access index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Full resource name of the index. Must be a Direct Access index.\nFormat: `workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}`", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "inputs_json", + "description": "JSON document describing the rows to upsert.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + } + ] + }, + { + "id": "settings.AibiDashboardEmbeddingAccessPolicy", + "name": "AibiDashboardEmbeddingAccessPolicy", + "description": "Controls whether AI/BI published dashboard embedding is enabled, conditionally enabled, or disabled at the workspace level.\nBy default, this setting is conditionally enabled (ALLOW_APPROVED_DOMAINS).", + "package": { + "name": "settings" + }, + "has_parent": true, + "docs_group": "settings", + "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", + "parent_service_id": "settings.Settings", + "methods": [ + { + "name": "Delete", + "description": "Delete the AI/BI dashboard embedding access policy, reverting back to the default.", + "summary": "Delete the AI/BI dashboard embedding access policy.", + "path": "/api/2.0/settings/types/aibi_dash_embed_ws_acc_policy/names/default", + "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", + "request": { + "pascal_name": "DeleteAibiDashboardEmbeddingAccessPolicySettingRequest", + "is_object": true + }, + "response": { + "pascal_name": "DeleteAibiDashboardEmbeddingAccessPolicySettingResponse", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "etag", + "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "etag", + "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "all_fields": [ + { + "name": "etag", + "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "is_query": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "Get", + "description": "Retrieves the AI/BI dashboard embedding access policy.\nThe default setting is ALLOW_APPROVED_DOMAINS, permitting AI/BI dashboards to be embedded on approved domains.", + "summary": "Retrieve the AI/BI dashboard embedding access policy.", + "path": "/api/2.0/settings/types/aibi_dash_embed_ws_acc_policy/names/default", + "is_crud_read": 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", + "request": { + "pascal_name": "GetAibiDashboardEmbeddingAccessPolicySettingRequest", + "is_object": true + }, + "response": { + "pascal_name": "AibiDashboardEmbeddingAccessPolicySetting", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "aibi_dashboard_embedding_access_policy", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingAccessPolicy", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "aibi_dashboard_embedding_access_policy", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingAccessPolicy", + "is_object": true + } + } + ] + }, + "all_fields": [ + { + "name": "etag", + "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "is_query": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "Update", + "description": "Updates the AI/BI dashboard embedding access policy at the workspace level.", + "summary": "Update the AI/BI dashboard embedding access policy.", + "path": "/api/2.0/settings/types/aibi_dash_embed_ws_acc_policy/names/default", + "can_use_json": true, + "must_use_json": 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", + "request": { + "pascal_name": "UpdateAibiDashboardEmbeddingAccessPolicySettingRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "allow_missing", + "description": "This should always be set to true for Settings API. Added for AIP compliance.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, + { + "name": "setting", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingAccessPolicySetting", + "is_object": true + } + }, + { + "name": "field_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, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "allow_missing", + "description": "This should always be set to true for Settings API. Added for AIP compliance.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, + { + "name": "setting", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingAccessPolicySetting", + "is_object": true + } + }, + { + "name": "field_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, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "AibiDashboardEmbeddingAccessPolicySetting", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "aibi_dashboard_embedding_access_policy", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingAccessPolicy", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "aibi_dashboard_embedding_access_policy", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingAccessPolicy", + "is_object": true + } + } + ] + }, + "all_fields": [ + { + "name": "allow_missing", + "description": "This should always be set to true for Settings API. Added for AIP compliance.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, + { + "name": "field_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, + "entity": { + "is_string": true + } + }, + { + "name": "setting", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingAccessPolicySetting", + "is_object": true + } + } + ] + } + ] + }, + { + "id": "settings.AibiDashboardEmbeddingApprovedDomains", + "name": "AibiDashboardEmbeddingApprovedDomains", + "description": "Controls the list of domains approved to host the embedded AI/BI dashboards.\nThe approved domains list can't be mutated when the current access policy is not set to ALLOW_APPROVED_DOMAINS.", + "package": { + "name": "settings" + }, + "has_parent": true, + "docs_group": "settings", + "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", + "parent_service_id": "settings.Settings", + "methods": [ + { + "name": "Delete", + "description": "Delete the list of domains approved to host embedded AI/BI dashboards, reverting back to the default empty list.", + "summary": "Delete AI/BI dashboard embedding approved domains.", + "path": "/api/2.0/settings/types/aibi_dash_embed_ws_apprvd_domains/names/default", + "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", + "request": { + "pascal_name": "DeleteAibiDashboardEmbeddingApprovedDomainsSettingRequest", + "is_object": true + }, + "response": { + "pascal_name": "DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "etag", + "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "etag", + "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + } + ] + }, + "all_fields": [ + { + "name": "etag", + "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "is_query": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "Get", + "description": "Retrieves the list of domains approved to host embedded AI/BI dashboards.", + "summary": "Retrieve the list of domains approved to host embedded AI/BI dashboards.", + "path": "/api/2.0/settings/types/aibi_dash_embed_ws_apprvd_domains/names/default", + "is_crud_read": 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", + "request": { + "pascal_name": "GetAibiDashboardEmbeddingApprovedDomainsSettingRequest", + "is_object": true + }, + "response": { + "pascal_name": "AibiDashboardEmbeddingApprovedDomainsSetting", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "aibi_dashboard_embedding_approved_domains", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingApprovedDomains", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "aibi_dashboard_embedding_approved_domains", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingApprovedDomains", + "is_object": true + } + } + ] + }, + "all_fields": [ + { + "name": "etag", + "description": "etag used for versioning. The response is at least as fresh as the eTag\nprovided. This is used for optimistic concurrency control as a way to\nhelp prevent simultaneous writes of a setting overwriting each other. It\nis strongly suggested that systems make use of the etag in the read -\u003e\ndelete pattern to perform setting deletions in order to avoid race\nconditions. That is, get an etag from a GET request, and pass it with the\nDELETE request to identify the rule set version you are deleting.", + "is_query": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "Update", + "description": "Updates the list of domains approved to host embedded AI/BI dashboards.\nThis update will fail if the current workspace access policy is not ALLOW_APPROVED_DOMAINS.", + "summary": "Update the list of domains approved to host embedded AI/BI dashboards.", + "path": "/api/2.0/settings/types/aibi_dash_embed_ws_apprvd_domains/names/default", + "can_use_json": true, + "must_use_json": 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", + "request": { + "pascal_name": "UpdateAibiDashboardEmbeddingApprovedDomainsSettingRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "allow_missing", + "description": "This should always be set to true for Settings API. Added for AIP compliance.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, + { + "name": "setting", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingApprovedDomainsSetting", + "is_object": true + } + }, + { + "name": "field_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, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "allow_missing", + "description": "This should always be set to true for Settings API. Added for AIP compliance.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, + { + "name": "setting", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingApprovedDomainsSetting", + "is_object": true + } + }, + { + "name": "field_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, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "AibiDashboardEmbeddingApprovedDomainsSetting", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "aibi_dashboard_embedding_approved_domains", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingApprovedDomains", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "aibi_dashboard_embedding_approved_domains", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "AibiDashboardEmbeddingApprovedDomains", + "is_object": true + } + } + ] + }, + "all_fields": [ + { + "name": "allow_missing", + "description": "This should always be set to true for Settings API. Added for AIP compliance.", + "required": true, + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, + { + "name": "field_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, "entity": { "is_string": true } @@ -67468,7 +71590,7 @@ { "id": "catalog.ArtifactAllowlists", "name": "ArtifactAllowlists", - "description": "In Databricks Runtime 13.3 and above, you can add libraries and init scripts to the\n`allowlist` in UC so that users can leverage these artifacts on compute configured with\nshared access mode.", + "description": "In Databricks Runtime 13.3 and above, you can add libraries and init scripts to the\n`allowlist` in UC so that users can use these artifacts on compute configured with\nshared access mode.", "package": { "name": "catalog" }, @@ -68838,14 +72960,14 @@ ] }, { - "id": "bundle.Bundle", - "name": "Bundle", + "id": "bundledeployments.BundleDeployments", + "name": "BundleDeployments", "description": "Service for managing bundle deployment metadata.", "package": { - "name": "bundle" + "name": "bundledeployments" }, "is_hidden_cli": true, - "docs_group": "bundle", + "docs_group": "bundledeployments", "launch_stage": "PRIVATE_PREVIEW", "cli_launch_stage_display": "Private Preview", "list": { @@ -69228,12 +73350,24 @@ }, { "name": "display_name", - "description": "Human-readable name for the deployment.", + "description": "Human-readable name for the deployment. Output only: it is denormalized from\nthe latest version, not set directly on the deployment.", + "is_output_only": true, "is_request_body_field": true, "entity": { "is_string": true } }, + { + "name": "git_info", + "description": "Git provenance of the deployment's source, derived from the latest version.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "GitInfo", + "is_object": true + } + }, { "name": "last_version_id", "description": "The version_id of the most recent deployment version.", @@ -69277,7 +73411,8 @@ }, { "name": "target_name", - "description": "The bundle target name associated with this deployment.", + "description": "The bundle target name associated with this deployment. Output only: it is\ndenormalized from the latest version, not set directly on the deployment.", + "is_output_only": true, "is_request_body_field": true, "entity": { "is_string": true @@ -69292,6 +73427,17 @@ "entity": { "is_timestamp": true } + }, + { + "name": "workspace_info", + "description": "Workspace location of the deployment, derived from the latest version.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "WorkspaceInfo", + "is_object": true + } } ], "required_positional_arguments": [ @@ -69434,15 +73580,6 @@ ] } }, - { - "name": "resource_id", - "description": "ID reference for the actual resource in the workspace\n(e.g. the job ID, pipeline ID).", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, { "name": "status", "description": "Whether the operation succeeded or failed.", @@ -69500,15 +73637,6 @@ ] } }, - { - "name": "resource_id", - "description": "ID reference for the actual resource in the workspace\n(e.g. the job ID, pipeline ID).", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, { "name": "status", "description": "Whether the operation succeeded or failed.", @@ -69572,15 +73700,6 @@ ] } }, - { - "name": "resource_id", - "description": "ID reference for the actual resource in the workspace\n(e.g. the job ID, pipeline ID).", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, { "name": "status", "description": "Whether the operation succeeded or failed.", @@ -69638,15 +73757,6 @@ ] } }, - { - "name": "resource_id", - "description": "ID reference for the actual resource in the workspace\n(e.g. the job ID, pipeline ID).", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, { "name": "status", "description": "Whether the operation succeeded or failed.", @@ -69715,15 +73825,6 @@ ] } }, - { - "name": "resource_id", - "description": "ID reference for the actual resource in the workspace\n(e.g. the job ID, pipeline ID).", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, { "name": "status", "description": "Whether the operation succeeded or failed.", @@ -69781,15 +73882,6 @@ ] } }, - { - "name": "resource_id", - "description": "ID reference for the actual resource in the workspace\n(e.g. the job ID, pipeline ID).", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, { "name": "status", "description": "Whether the operation succeeded or failed.", @@ -69895,8 +73987,7 @@ }, { "name": "resource_id", - "description": "ID reference for the actual resource in the workspace\n(e.g. the job ID, pipeline ID).", - "required": true, + "description": "ID of the actual resource in the workspace (e.g. the job ID, pipeline ID).\nRequired for every operation except CREATE and RECREATE, which produce a\nnew resource whose ID is not yet known when the operation is recorded.", "is_request_body_field": true, "entity": { "is_string": true @@ -70413,6 +74504,16 @@ "is_string": true } }, + { + "name": "git_info", + "description": "Git provenance of the source, captured at the time of this version.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "GitInfo", + "is_object": true + } + }, { "name": "name", "description": "Resource name of the version.\nFormat: deployments/{deployment_id}/versions/{version_id}", @@ -70472,6 +74573,16 @@ } ] } + }, + { + "name": "workspace_info", + "description": "Workspace location of the deployment, captured at the time of this version.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "WorkspaceInfo", + "is_object": true + } } ], "required_positional_arguments": [ @@ -70724,15 +74835,6 @@ ] } }, - { - "name": "resource_id", - "description": "ID reference for the actual resource in the workspace\n(e.g. the job ID, pipeline ID).", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, { "name": "status", "description": "Whether the operation succeeded or failed.", @@ -70790,15 +74892,6 @@ ] } }, - { - "name": "resource_id", - "description": "ID reference for the actual resource in the workspace\n(e.g. the job ID, pipeline ID).", - "required": true, - "is_request_body_field": true, - "entity": { - "is_string": true - } - }, { "name": "status", "description": "Whether the operation succeeded or failed.", @@ -71645,6 +75738,14 @@ "is_string": true } }, + { + "name": "custom_max_retention_hours", + "description": "Custom maximum retention period in hours for the catalog", + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, { "name": "managed_encryption_settings", "description": "Control CMK encryption for managed catalog data", @@ -71980,6 +76081,14 @@ "is_string": true } }, + { + "name": "custom_max_retention_hours", + "description": "Custom maximum retention period in hours for the catalog", + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, { "name": "enable_predictive_optimization", "description": "Whether predictive optimization should be enabled for this object and objects under it.", @@ -79747,7 +83856,7 @@ { "id": "catalog.Connections", "name": "Connections", - "description": "Connections allow for creating a connection to an external data source.\n\nA connection is an abstraction of an external data source that can be connected from Databricks Compute.\nCreating a connection object is the first step to managing external data sources within Unity Catalog, with\nthe second step being creating a data object (catalog, schema, or table) using the connection. Data objects\nderived from a connection can be written to or read from similar to other Unity Catalog data objects based on\ncloud storage. Users may create different types of connections with each connection having a unique set of\nconfiguration options to support credential management and other settings.", + "description": "A connection represents an external data source for use within Databricks.\n\nCreating a connection object is the first step to managing external data sources within Unity Catalog. The\nsecond step is creating a data object (catalog, schema, or table) using the connection. Data objects\nderived from a connection can be written to or read from similar to other Unity Catalog data objects based on\ncloud storage. You can create different types of connections, and each connection has a unique set of\nconfiguration options to support credential management and other settings.", "package": { "name": "catalog" }, @@ -79804,6 +83913,9 @@ { "content": "DATABRICKS" }, + { + "content": "DYNAMICS365" + }, { "content": "GA4_RAW_DATA" }, @@ -79918,6 +84030,9 @@ { "content": "DATABRICKS" }, + { + "content": "DYNAMICS365" + }, { "content": "GA4_RAW_DATA" }, @@ -80036,6 +84151,9 @@ { "content": "DATABRICKS" }, + { + "content": "DYNAMICS365" + }, { "content": "GA4_RAW_DATA" }, @@ -80111,6 +84229,16 @@ ] } }, + { + "name": "environment_settings", + "description": "[Create,Update:OPT] Connection environment settings as EnvironmentSettings object.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "EnvironmentSettings", + "is_object": true + } + }, { "name": "name", "description": "Name of the connection.", @@ -80396,6 +84524,16 @@ "is_object": true }, "all_fields": [ + { + "name": "environment_settings", + "description": "[Create,Update:OPT] Connection environment settings as EnvironmentSettings object.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "EnvironmentSettings", + "is_object": true + } + }, { "name": "name", "description": "Name of the connection.", @@ -87752,7 +91890,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -87781,7 +91919,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -87816,7 +91954,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -87845,7 +91983,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -87884,7 +92022,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -87913,7 +92051,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -87941,7 +92079,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -87987,7 +92125,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -89182,7 +93320,7 @@ "all_fields": [ { "name": "force", - "description": "By default, a instance cannot be deleted if it has descendant instances created via PITR. If\nthis flag is specified as true, all descendent instances will be deleted as well.", + "description": "By default, an instance cannot be deleted if it has descendant instances created via PITR. If\nthis flag is specified as true, all descendent instances will be deleted as well.", "is_query": true, "entity": { "is_bool": true @@ -89612,7 +93750,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -89641,7 +93779,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -90460,7 +94598,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -90489,7 +94627,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -90524,7 +94662,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -90553,7 +94691,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -90593,7 +94731,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -90622,7 +94760,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -90668,7 +94806,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -90723,7 +94861,7 @@ }, { "name": "database_name", - "description": "The name of the database (in a instance) associated with the catalog.", + "description": "The name of the database (in an instance) associated with the catalog.", "required": true, "is_request_body_field": true, "entity": { @@ -94009,10 +98147,11 @@ "name": "disasterrecovery" }, "is_accounts": true, - "is_hidden_cli": true, "docs_group": "disasterrecovery", - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "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", "list": { "request": { "pascal_name": "ListFailoverGroupsRequest" @@ -94026,10 +98165,11 @@ "path": "/api/disaster-recovery/v1/{parent=accounts/*}/failover-groups", "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", + "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": "CreateFailoverGroupRequest", "is_object": true, @@ -94564,10 +98704,11 @@ "path": "/api/disaster-recovery/v1/{parent=accounts/*}/stable-urls", "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", + "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": "CreateStableUrlRequest", "is_object": true, @@ -94647,7 +98788,7 @@ "required_fields": [ { "name": "initial_workspace_id", - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", "required": true, "is_request_body_field": true, "entity": { @@ -94658,7 +98799,7 @@ "required_request_body_fields": [ { "name": "initial_workspace_id", - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", "required": true, "is_request_body_field": true, "entity": { @@ -94675,7 +98816,7 @@ "required_fields": [ { "name": "initial_workspace_id", - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", "required": true, "is_request_body_field": true, "entity": { @@ -94686,7 +98827,7 @@ "required_request_body_fields": [ { "name": "initial_workspace_id", - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", "required": true, "is_request_body_field": true, "entity": { @@ -94717,7 +98858,7 @@ "required_fields": [ { "name": "initial_workspace_id", - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", "required": true, "is_request_body_field": true, "entity": { @@ -94728,7 +98869,7 @@ "required_request_body_fields": [ { "name": "initial_workspace_id", - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", "required": true, "is_request_body_field": true, "entity": { @@ -94757,7 +98898,7 @@ }, { "name": "failover_group_name", - "description": "Fully qualified resource name of the FailoverGroup this stable URL is\ncurrently linked to, in the format\n`accounts/{account_id}/failover-groups/{failover_group_id}`. Empty when\nthe stable URL is not attached to any failover group. Server-controlled:\nwritten by CreateFailoverGroup / UpdateFailoverGroup on link, cleared by\nDeleteFailoverGroup / UpdateFailoverGroup on unlink.", + "description": "Fully qualified resource name of the FailoverGroup this stable URL is\ncurrently linked to, in the format\n`accounts/{account_id}/failover-groups/{failover_group_id}`. Empty when\nthe stable URL is not attached to any failover group.", "is_output_only": true, "is_request_body_field": true, "entity": { @@ -94766,7 +98907,7 @@ }, { "name": "initial_workspace_id", - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", "required": true, "is_request_body_field": true, "entity": { @@ -94783,7 +98924,7 @@ }, { "name": "url", - "description": "The stable URL endpoint. Generated by the backend on creation and\nimmutable thereafter. For non-Private-Link workspaces this is\n`https://\u003cspog_host\u003e/?c=\u003cconnection_id\u003e`. For Private-Link workspaces\nthis is the per-connection hostname.", + "description": "The stable URL endpoint. Generated on creation and\nimmutable thereafter. For non-Private-Link workspaces this is\n`https://\u003cspog_host\u003e/?c=\u003cconnection_id\u003e`. For Private-Link workspaces\nthis is the per-connection hostname.", "is_output_only": true, "is_request_body_field": true, "entity": { @@ -94812,7 +98953,7 @@ }, { "name": "initial_workspace_id", - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", "required": true, "is_request_body_field": true, "entity": { @@ -94826,10 +98967,11 @@ "description": "Delete a failover group.", "summary": "Delete a Failover Group.", "path": "/api/disaster-recovery/v1/{name=accounts/*/failover-groups/*}", - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "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": "DeleteFailoverGroupRequest", "is_object": true, @@ -94895,10 +99037,11 @@ "description": "Delete a stable URL.", "summary": "Delete a Stable URL.", "path": "/api/disaster-recovery/v1/{name=accounts/*/stable-urls/*}", - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "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": "DeleteStableUrlRequest", "is_object": true, @@ -94957,10 +99100,11 @@ "summary": "Failover a Failover Group to a new primary region.", "path": "/api/disaster-recovery/v1/{name=accounts/*/failover-groups/*}/failover", "can_use_json": true, - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "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": "FailoverFailoverGroupRequest", "is_object": true, @@ -94977,7 +99121,7 @@ }, { "name": "target_primary_region", - "description": "The target primary region. Must be one of the derived regions and different\nfrom the current effective_primary_region. Serves as an idempotency check.", + "description": "The target primary region. Must be one of the participating regions and different\nfrom the current effective_primary_region. Serves as an idempotency check.", "required": true, "is_request_body_field": true, "entity": { @@ -95013,7 +99157,7 @@ "required_request_body_fields": [ { "name": "target_primary_region", - "description": "The target primary region. Must be one of the derived regions and different\nfrom the current effective_primary_region. Serves as an idempotency check.", + "description": "The target primary region. Must be one of the participating regions and different\nfrom the current effective_primary_region. Serves as an idempotency check.", "required": true, "is_request_body_field": true, "entity": { @@ -95147,7 +99291,7 @@ }, { "name": "target_primary_region", - "description": "The target primary region. Must be one of the derived regions and different\nfrom the current effective_primary_region. Serves as an idempotency check.", + "description": "The target primary region. Must be one of the participating regions and different\nfrom the current effective_primary_region. Serves as an idempotency check.", "required": true, "is_request_body_field": true, "entity": { @@ -95167,7 +99311,7 @@ }, { "name": "target_primary_region", - "description": "The target primary region. Must be one of the derived regions and different\nfrom the current effective_primary_region. Serves as an idempotency check.", + "description": "The target primary region. Must be one of the participating regions and different\nfrom the current effective_primary_region. Serves as an idempotency check.", "required": true, "is_request_body_field": true, "entity": { @@ -95196,10 +99340,11 @@ "summary": "Get a Failover Group.", "path": "/api/disaster-recovery/v1/{name=accounts/*/failover-groups/*}", "is_crud_read": true, - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "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": "GetFailoverGroupRequest", "is_object": true, @@ -95332,10 +99477,11 @@ "summary": "Get a Stable URL.", "path": "/api/disaster-recovery/v1/{name=accounts/*/stable-urls/*}", "is_crud_read": true, - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "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": "GetStableUrlRequest", "is_object": true, @@ -95369,7 +99515,7 @@ "required_fields": [ { "name": "initial_workspace_id", - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", "required": true, "is_request_body_field": true, "entity": { @@ -95380,7 +99526,7 @@ "required_request_body_fields": [ { "name": "initial_workspace_id", - "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses. Mirrors FailoverGroup.initial_primary_region semantics.", + "description": "The workspace this stable URL is initially bound to. Used only in Create\nrequests to associate the stable URL with a workspace. Not returned in\nresponses.", "required": true, "is_request_body_field": true, "entity": { @@ -95414,13 +99560,14 @@ }, { "name": "ListFailoverGroups", - "description": "List failover groups.", + "description": "List failover groups.\n\nList entries are abbreviated: `state` and `replication_point` are not\npopulated. Call GetFailoverGroup to retrieve the full resource.", "summary": "List Failover Groups.", "path": "/api/disaster-recovery/v1/{parent=accounts/*}/failover-groups", - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "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": "ListFailoverGroupsRequest", "is_object": true, @@ -95507,10 +99654,11 @@ "description": "List stable URLs for an account.", "summary": "List Stable URLs.", "path": "/api/disaster-recovery/v1/{parent=accounts/*}/stable-urls", - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "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": "ListStableUrlsRequest", "is_object": true, @@ -95598,10 +99746,11 @@ "summary": "Update a Failover Group.", "path": "/api/disaster-recovery/v1/{name=accounts/*/failover-groups/*}", "can_use_json": true, - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "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": "UpdateFailoverGroupRequest", "is_object": true, @@ -97089,10 +101238,8 @@ }, "is_accounts": true, "docs_group": "provisioning", - "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": "GA", + "cli_launch_stage_display": "GA", "list": { "request": { "pascal_name": "ListEndpointsRequest" @@ -97107,10 +101254,8 @@ "can_use_json": true, "is_crud_create": 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": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "CreateEndpointRequest", "is_object": true, @@ -97452,10 +101597,8 @@ "summary": "Delete a network endpoint.", "path": "/api/networking/v1/{name=accounts/*/endpoints/*}", "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": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "DeleteEndpointRequest", "is_object": true, @@ -97511,10 +101654,8 @@ "path": "/api/networking/v1/{name=accounts/*/endpoints/*}", "is_crud_read": 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": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "GetEndpointRequest", "is_object": true, @@ -97611,10 +101752,8 @@ "summary": "List network endpoints.", "path": "/api/networking/v1/{parent=accounts/*}/endpoints", "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": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "ListEndpointsRequest", "is_object": true, @@ -97899,7 +102038,7 @@ { "id": "catalog.EntityTagAssignments", "name": "EntityTagAssignments", - "description": "Tags are attributes that include keys and optional values that you can use to organize and categorize entities in Unity Catalog. Entity tagging is currently supported on catalogs, schemas, tables (including views), columns, volumes.\nWith these APIs, users can create, update, delete, and list tag assignments across Unity Catalog entities", + "description": "Tags are attributes that include keys and optional values that you can use to organize and categorize entities in Unity Catalog. Entity tagging is supported on catalogs, schemas, tables (including views), columns, and volumes.\nWith these APIs, you can create, update, delete, and list tag assignments across Unity Catalog entities.", "package": { "name": "catalog" }, @@ -108387,6 +112526,16 @@ } } }, + { + "name": "ingestion_config", + "description": "Configuration for ingesting Kafka data into a Databricks-managed\nDelta table.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "IngestionConfig", + "is_object": true + } + }, { "name": "key_schema", "description": "Schema configuration for extracting message keys from topics. At least one of key_schema and value_schema must be provided.", @@ -108604,7 +112753,7 @@ }, { "name": "cron_schedule", - "description": "The quartz cron expression that defines the schedule of the materialization pipeline. The schedule is evaluated in the UTC timezone.", + "description": "The quartz cron expression that defines the schedule of the materialization pipeline. The schedule is evaluated in the UTC timezone.\nHidden from GraphQL: superseded by the `trigger` oneof (cron_schedule_trigger), so not exposed to Catalog Explorer.", "is_request_body_field": true, "entity": { "is_string": true @@ -108677,7 +112826,7 @@ }, { "name": "pipeline_schedule_state", - "description": "The schedule state of the materialization pipeline.", + "description": "The schedule state of the materialization pipeline.\nHidden from GraphQL: being deprecated, so not exposed to Catalog Explorer.", "is_request_body_field": true, "entity": { "pascal_name": "MaterializedFeaturePipelineScheduleState", @@ -111248,6 +115397,16 @@ } } }, + { + "name": "ingestion_config", + "description": "Configuration for ingesting Kafka data into a Databricks-managed\nDelta table.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "IngestionConfig", + "is_object": true + } + }, { "name": "key_schema", "description": "Schema configuration for extracting message keys from topics. At least one of key_schema and value_schema must be provided.", @@ -111529,7 +115688,7 @@ }, { "name": "cron_schedule", - "description": "The quartz cron expression that defines the schedule of the materialization pipeline. The schedule is evaluated in the UTC timezone.", + "description": "The quartz cron expression that defines the schedule of the materialization pipeline. The schedule is evaluated in the UTC timezone.\nHidden from GraphQL: superseded by the `trigger` oneof (cron_schedule_trigger), so not exposed to Catalog Explorer.", "is_request_body_field": true, "entity": { "is_string": true @@ -111602,7 +115761,7 @@ }, { "name": "pipeline_schedule_state", - "description": "The schedule state of the materialization pipeline.", + "description": "The schedule state of the materialization pipeline.\nHidden from GraphQL: being deprecated, so not exposed to Catalog Explorer.", "is_request_body_field": true, "entity": { "pascal_name": "MaterializedFeaturePipelineScheduleState", @@ -114225,7 +118384,7 @@ }, { "name": "ListDirectoryContents", - "description": "Returns the contents of a directory.\nIf there is no directory at the specified path, the API returns a HTTP 404 error.", + "description": "Returns the contents of a directory.\nIf there is no directory at the specified path, the API returns an HTTP 404 error.", "summary": "List directory contents.", "path": "/api/2.0/fs/directories{directory_path}", "has_required_positional_arguments": true, @@ -120314,7 +124473,7 @@ { "id": "catalog.Grants", "name": "Grants", - "description": "In Unity Catalog, data is secure by default. Initially, users have no access to data in\na metastore. Access can be granted by either a metastore admin, the owner of an object, or\nthe owner of the catalog or schema that contains the object. Securable objects in Unity\nCatalog are hierarchical and privileges are inherited downward.\n\nSecurable objects in Unity Catalog are hierarchical and privileges are inherited downward.\nThis means that granting a privilege on the catalog automatically grants the privilege to\nall current and future objects within the catalog. Similarly, privileges granted on a schema\nare inherited by all current and future objects within that schema.", + "description": "In Unity Catalog, data is secure by default. Initially, users have no access to data in\na metastore. Access can be granted by either a metastore admin, the owner of an object, or\nthe owner of the catalog or schema that contains the object. Securable objects in Unity\nCatalog are hierarchical and privileges are inherited downward.\n\nThis means that granting a privilege on the catalog automatically grants the privilege to\nall current and future objects within the catalog. Similarly, privileges granted on a schema\nare inherited by all current and future objects within that schema.", "package": { "name": "catalog" }, @@ -121988,6 +126147,7 @@ }, { "name": "entitlements", + "description": "Entitlements granted directly to the principal on this workspace. The only client-settable\nfield: create and update manage exactly this set (including entitlements the principal also\nholds via a group).\nNot populated by ListWorkspaceAssignmentDetails (omitted for scalability); call\nGetWorkspaceAssignmentDetail to read the entitlements for a single principal.", "is_request_body_field": true, "entity": { "pascal_name": "EntitlementList", @@ -122410,7 +126570,7 @@ }, { "name": "ListWorkspaceAssignmentDetails", - "description": "Lists workspace assignment details for a workspace.", + "description": "Lists workspace assignment details for a workspace.\nFor scalability, the response omits the per-principal entitlement fields (`entitlements` and\n`effective_entitlements`); call GetWorkspaceAssignmentDetail to read entitlements for a single\nprincipal.", "summary": "List workspace assignment details for a workspace.", "path": "/api/2.0/identity/accounts/{account_id}/workspaces/{workspace_id}/workspaceAssignmentDetails", "is_hidden_cli": true, @@ -122909,6 +127069,7 @@ }, { "name": "entitlements", + "description": "Entitlements granted directly to the principal on this workspace. The only client-settable\nfield: create and update manage exactly this set (including entitlements the principal also\nholds via a group).\nNot populated by ListWorkspaceAssignmentDetails (omitted for scalability); call\nGetWorkspaceAssignmentDetail to read the entitlements for a single principal.", "is_request_body_field": true, "entity": { "pascal_name": "EntitlementList", @@ -132715,7 +136876,7 @@ }, { "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.\nTODO(TSE-3937): update to new non-CMK-encrypted label when available", + "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": { @@ -141473,7 +145634,7 @@ }, { "name": "List", - "description": "List model versions. You can list model versions under a particular schema,\nor list all model versions in the current metastore.\n\nThe returned models are filtered based on the privileges of the calling user.\nFor example, the metastore admin is able to list all the model versions.\nA regular user needs to be the owner or have the **EXECUTE** privilege\non the parent registered model to recieve the model versions in the response.\nFor the latter case, the caller must also be the owner or have the **USE_CATALOG**\nprivilege on the parent catalog and the **USE_SCHEMA** privilege on the parent schema.\n\nThere is no guarantee of a specific ordering of the elements in the response. The\nelements in the response will not contain any aliases or tags.\n\nPAGINATION BEHAVIOR: The API is by default paginated, a page may contain zero results while still providing a next_page_token.\nClients must continue reading pages until next_page_token is absent, which is the only indication that the end of results has been reached.", + "description": "List model versions. You can list model versions under a particular schema,\nor list all model versions in the current metastore.\n\nThe returned models are filtered based on the privileges of the calling user.\nFor example, the metastore admin is able to list all the model versions.\nA regular user needs to be the owner or have the **EXECUTE** privilege\non the parent registered model to receive the model versions in the response.\nFor the latter case, the caller must also be the owner or have the **USE_CATALOG**\nprivilege on the parent catalog and the **USE_SCHEMA** privilege on the parent schema.\n\nThere is no guarantee of a specific ordering of the elements in the response. The\nelements in the response will not contain any aliases or tags.\n\nPAGINATION BEHAVIOR: The API is by default paginated, a page may contain zero results while still providing a next_page_token.\nClients must continue reading pages until next_page_token is absent, which is the only indication that the end of results has been reached.", "summary": "List Model Versions.", "path": "/api/2.1/unity-catalog/models/{full_name}/versions", "has_required_positional_arguments": true, @@ -145368,6 +149529,14 @@ "is_bool": true } }, + { + "name": "serverless_compute_id", + "description": "Serverless compute ID specified by the user for serverless pipelines.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "storage", "description": "DBFS root directory for storing checkpoints and tables.", @@ -145691,6 +149860,14 @@ "is_bool": true } }, + { + "name": "serverless_compute_id", + "description": "Serverless compute ID specified by the user for serverless pipelines.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "storage", "description": "DBFS root directory for storing checkpoints and tables.", @@ -146971,6 +151148,14 @@ "is_bool": true } }, + { + "name": "serverless_compute_id", + "description": "Serverless compute ID specified by the user for serverless pipelines.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "storage", "description": "DBFS root directory for storing checkpoints and tables.", @@ -150570,6 +154755,15 @@ "is_bool": true } }, + { + "name": "branch_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "create_time", "description": "A timestamp indicating when the branch was created.", @@ -150760,6 +154954,15 @@ "is_string": true } }, + { + "name": "catalog_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "create_time", "description": "A timestamp indicating when the catalog was created.", @@ -150841,6 +155044,181 @@ "response_type": {} } }, + { + "name": "CreateDataApi", + "description": "Enable Data API for a database.", + "summary": "Enable Data API for a database.", + "path": "/api/2.0/postgres/{parent=projects/*/branches/*/databases/*}/data-api", + "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": "CreateDataApiRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "parent", + "description": "Parent database: projects/{project_id}/branches/{branch_id}/databases/{database_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "data_api", + "description": "The Data API configuration to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "DataApi", + "is_object": true + } + } + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "Parent database: projects/{project_id}/branches/{branch_id}/databases/{database_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "data_api", + "description": "The Data API configuration to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "DataApi", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "data_api", + "description": "The Data API configuration to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "DataApi", + "is_object": true + } + }, + "response": { + "pascal_name": "Operation", + "is_object": true + }, + "all_fields": [ + { + "name": "data_api", + "description": "The Data API configuration to create.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "DataApi", + "is_object": true + } + }, + { + "name": "parent", + "description": "Parent database: projects/{project_id}/branches/{branch_id}/databases/{database_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "create_time", + "description": "A timestamp indicating when the Data API was first enabled.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "parent", + "description": "The database containing this Data API configuration.\nFormat: projects/{project_id}/branches/{branch_id}/databases/{database_id}", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "spec", + "description": "The desired Data API configuration.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "DataApiDataApiSpec", + "is_object": true + } + }, + { + "name": "status", + "description": "The observed Data API state (read-only).", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "DataApiDataApiStatus", + "is_object": true + } + }, + { + "name": "update_time", + "description": "A timestamp indicating when the Data API configuration 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 database: projects/{project_id}/branches/{branch_id}/databases/{database_id}", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "long_running_operation": { + "get_operation": { + "kebab_name": "get-operation", + "pascal_name": "GetOperation", + "request": { + "pascal_name": "GetOperationRequest" + } + }, + "response_type": {} + } + }, { "name": "CreateDatabase", "description": "Create a Database.\n\nCreates a database in the specified branch. A branch can have multiple databases.", @@ -150954,6 +155332,15 @@ "is_timestamp": true } }, + { + "name": "database_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "name", "description": "The resource name of the database.\nFormat: projects/{project_id}/branches/{branch_id}/databases/{database_id}", @@ -151165,6 +155552,15 @@ "is_timestamp": true } }, + { + "name": "endpoint_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "name", "description": "Output only. The full resource path of the endpoint.\nFormat: projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id}", @@ -151387,6 +155783,15 @@ "is_string": true } }, + { + "name": "project_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "purge_time", "description": "A timestamp indicating when the project is scheduled for permanent deletion.\nEmpty if the project is not deleted, otherwise set to a timestamp in the future.", @@ -151589,6 +155994,15 @@ "is_string": true } }, + { + "name": "role_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "spec", "description": "The spec contains the role configuration, including identity type, authentication method, and role attributes.", @@ -151771,6 +156185,15 @@ "is_object": true } }, + { + "name": "synced_table_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "uid", "description": "The Unity Catalog table ID for this synced table.", @@ -151961,6 +156384,80 @@ } } }, + { + "name": "DeleteDataApi", + "description": "Disable Data API for a database.", + "summary": "Disable Data API for a database.", + "path": "/api/2.0/postgres/{name=projects/*/branches/*/databases/*/data-api}", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "DeleteDataApiRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "Operation", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "long_running_operation": { + "get_operation": { + "kebab_name": "get-operation", + "pascal_name": "GetOperation", + "request": { + "pascal_name": "GetOperationRequest" + } + }, + "response_type": { + "is_empty_response": true + } + } + }, { "name": "DeleteDatabase", "description": "Delete a Database.", @@ -152558,6 +157055,69 @@ } ] }, + { + "name": "GetDataApi", + "description": "Get Data API configuration for a database.", + "summary": "Get Data API configuration.", + "path": "/api/2.0/postgres/{name=projects/*/branches/*/databases/*/data-api}", + "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": "GetDataApiRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "DataApi", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "GetDatabase", "description": "Get a Database.", @@ -153642,6 +158202,15 @@ "is_field_mask": true } }, + { + "name": "branch_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "create_time", "description": "A timestamp indicating when the branch was created.", @@ -153741,6 +158310,217 @@ "response_type": {} } }, + { + "name": "UpdateDataApi", + "description": "Update Data API configuration for a database.", + "summary": "Update Data API configuration.", + "path": "/api/2.0/postgres/{name=projects/*/branches/*/databases/*/data-api}", + "can_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "UpdateDataApiRequest", + "is_object": true, + "has_field_mask": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "data_api", + "description": "The Data API configuration to update.\nThe data_api's `name` field identifies the resource.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "DataApi", + "is_object": true + } + }, + { + "name": "update_mask", + "description": "The list of fields to update. If unspecified, all fields will be updated when possible.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_mask", + "description": "The list of fields to update. If unspecified, all fields will be updated when possible.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + } + ], + "required_request_body_fields": [ + { + "name": "data_api", + "description": "The Data API configuration to update.\nThe data_api's `name` field identifies the resource.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "DataApi", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "data_api", + "description": "The Data API configuration to update.\nThe data_api's `name` field identifies the resource.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "DataApi", + "is_object": true + } + }, + "response": { + "pascal_name": "Operation", + "is_object": true + }, + "all_fields": [ + { + "name": "data_api", + "description": "The Data API configuration to update.\nThe data_api's `name` field identifies the resource.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "DataApi", + "is_object": true + } + }, + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_mask", + "description": "The list of fields to update. If unspecified, all fields will be updated when possible.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + }, + { + "name": "create_time", + "description": "A timestamp indicating when the Data API was first enabled.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + }, + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "parent", + "description": "The database containing this Data API configuration.\nFormat: projects/{project_id}/branches/{branch_id}/databases/{database_id}", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "spec", + "description": "The desired Data API configuration.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "DataApiDataApiSpec", + "is_object": true + } + }, + { + "name": "status", + "description": "The observed Data API state (read-only).", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "DataApiDataApiStatus", + "is_object": true + } + }, + { + "name": "update_time", + "description": "A timestamp indicating when the Data API configuration was last updated.", + "is_output_only": true, + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "is_timestamp": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_mask", + "description": "The list of fields to update. If unspecified, all fields will be updated when possible.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + } + ], + "long_running_operation": { + "get_operation": { + "kebab_name": "get-operation", + "pascal_name": "GetOperation", + "request": { + "pascal_name": "GetOperationRequest" + } + }, + "response_type": {} + } + }, { "name": "UpdateDatabase", "description": "Update a Database.", @@ -153873,6 +158653,15 @@ "is_timestamp": true } }, + { + "name": "database_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "name", "description": "The resource name of the database.\nFormat: projects/{project_id}/branches/{branch_id}/databases/{database_id}", @@ -154085,6 +158874,15 @@ "is_timestamp": true } }, + { + "name": "endpoint_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "name", "description": "Output only. The full resource path of the endpoint.\nFormat: projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id}", @@ -154334,6 +159132,15 @@ "is_string": true } }, + { + "name": "project_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "purge_time", "description": "A timestamp indicating when the project is scheduled for permanent deletion.\nEmpty if the project is not deleted, otherwise set to a timestamp in the future.", @@ -154564,6 +159371,15 @@ "is_string": true } }, + { + "name": "role_id", + "description": "The part of the name, chosen by the user when the resource was created.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "spec", "description": "The spec contains the role configuration, including identity type, authentication method, and role attributes.", @@ -163837,7 +168653,7 @@ { "id": "catalog.RegisteredModels", "name": "RegisteredModels", - "description": "Databricks provides a hosted version of MLflow Model Registry in Unity Catalog.\nModels in Unity Catalog provide centralized access control, auditing, lineage, and discovery of\nML models across Databricks workspaces.\n\nAn MLflow registered model resides in the third layer of Unity Catalog’s three-level namespace.\nRegistered models contain model versions, which correspond to actual ML models (MLflow models). Creating new\nmodel versions currently requires use of the MLflow Python client. Once model versions are created, you can\nload them for batch inference using MLflow Python client APIs, or deploy them for real-time serving using\nDatabricks Model Serving.\n\nAll operations on registered models and model versions require USE_CATALOG permissions on the enclosing catalog\nand USE_SCHEMA permissions on the enclosing schema. In addition, the following additional privileges are\nrequired for various operations:\n\n* To create a registered model, users must additionally have the CREATE_MODEL permission on the target schema.\n* To view registered model or model version metadata, model version data files, or invoke a model version,\nusers must additionally have the EXECUTE permission on the registered model\n* To update registered model or model version tags, users must additionally have APPLY TAG permissions on the registered model\n* To update other registered model or model version metadata (comments, aliases)\ncreate a new model version, or update permissions on the registered model, users must be owners of the\nregistered model.\n\nNote: The securable type for models is FUNCTION. When using REST APIs (e.g. tagging, grants) that specify\na securable type, use FUNCTION as the securable type.", + "description": "Databricks provides a hosted version of MLflow Model Registry in Unity Catalog.\nModels in Unity Catalog provide centralized access control, auditing, lineage, and discovery of\nML models across Databricks workspaces.\n\nAn MLflow registered model resides in the third layer of Unity Catalog’s three-level namespace.\nRegistered models contain model versions, which correspond to actual ML models (MLflow models). Creating new\nmodel versions requires use of the MLflow Python client. After model versions are created, you can\nload them for batch inference using MLflow Python client APIs, or deploy them for real-time serving using\nDatabricks Model Serving.\n\nAll operations on registered models and model versions require USE_CATALOG permissions on the enclosing catalog\nand USE_SCHEMA permissions on the enclosing schema. In addition, the following additional privileges are\nrequired for various operations:\n\n* To create a registered model, users must additionally have the CREATE_MODEL permission on the target schema.\n* To view registered model or model version metadata, model version data files, or invoke a model version,\nusers must additionally have the EXECUTE permission on the registered model\n* To update registered model or model version tags, users must additionally have APPLY TAG permissions on the registered model\n* To update other registered model or model version metadata (comments, aliases)\ncreate a new model version, or update permissions on the registered model, users must be owners of the\nregistered model.\n\nNote: The securable type for models is FUNCTION. When using REST APIs (for example, tagging, grants) that specify\na securable type, use FUNCTION as the securable type.", "package": { "name": "catalog" }, @@ -164226,7 +169042,7 @@ }, { "name": "List", - "description": "List registered models. You can list registered models under a particular schema,\nor list all registered models in the current metastore.\n\nThe returned models are filtered based on the privileges of the calling user.\nFor example, the metastore admin is able to list all the registered models.\nA regular user needs to be the owner or have the **EXECUTE** privilege\non the registered model to recieve the registered models in the response.\nFor the latter case, the caller must also be the owner or have the **USE_CATALOG**\nprivilege on the parent catalog and the **USE_SCHEMA** privilege on the parent schema.\n\nThere is no guarantee of a specific ordering of the elements in the response.\n\nPAGINATION BEHAVIOR: The API is by default paginated, a page may contain zero results while still providing a next_page_token.\nClients must continue reading pages until next_page_token is absent, which is the only indication that the end of results has been reached.", + "description": "List registered models. You can list registered models under a particular schema,\nor list all registered models in the current metastore.\n\nThe returned models are filtered based on the privileges of the calling user.\nFor example, the metastore admin is able to list all the registered models.\nA regular user needs to be the owner or have the **EXECUTE** privilege\non the registered model to receive the registered models in the response.\nFor the latter case, the caller must also be the owner or have the **USE_CATALOG**\nprivilege on the parent catalog and the **USE_SCHEMA** privilege on the parent schema.\n\nThere is no guarantee of a specific ordering of the elements in the response.\n\nPAGINATION BEHAVIOR: The API is by default paginated, a page may contain zero results while still providing a next_page_token.\nClients must continue reading pages until next_page_token is absent, which is the only indication that the end of results has been reached.", "summary": "List Registered Models.", "path": "/api/2.1/unity-catalog/models", "has_required_positional_arguments": true, @@ -165164,6 +169980,14 @@ "is_string": true } }, + { + "name": "dangerously_force_discard_all", + "description": "WARNING: DESTRUCTIVE AND IRREVERSIBLE. If true, permanently deletes ALL uncommitted\nchanges in the Git folder — staged, unstaged, and untracked files — before updating.\nLost data CANNOT be recovered.\n\nNEVER use this on Git folders where users author or edit files. This flag is intended\nONLY for automated jobs that treat the Git folder as a read-only mirror of a remote\nbranch and need to force-sync it. If any user has uncommitted work in the Git folder,\nthat work will be permanently destroyed without warning.\n\nLocal commits that have been made but not yet pushed to the remote are preserved.", + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, { "name": "repo_id", "description": "ID of the Git folder (repo) object in the workspace.", @@ -166161,7 +170985,7 @@ { "id": "catalog.Schemas", "name": "Schemas", - "description": "A schema (also called a database) is the second layer of Unity Catalog’s three-level\nnamespace. A schema organizes tables, views and functions. To access (or list) a table or view in\na schema, users must have the USE_SCHEMA data permission on the schema and its parent catalog,\nand they must have the SELECT permission on the table or view.", + "description": "A schema (also called a database) is the second layer of Unity Catalog’s three-level\nnamespace. A schema organizes tables, views, and functions. To access (or list) a table or view in\na schema, users must have the USE_SCHEMA data permission on the schema and its parent catalog,\nand they must have the SELECT permission on the table or view.", "package": { "name": "catalog" }, @@ -166251,6 +171075,14 @@ "is_string": true } }, + { + "name": "custom_max_retention_hours", + "description": "Custom maximum retention period in hours for the schema.", + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, { "name": "name", "description": "Name of schema, relative to parent catalog.", @@ -166593,6 +171425,14 @@ "is_string": true } }, + { + "name": "custom_max_retention_hours", + "description": "Custom maximum retention period in hours for the schema.", + "is_request_body_field": true, + "entity": { + "is_int64": true + } + }, { "name": "enable_predictive_optimization", "description": "Whether predictive optimization should be enabled for this object and objects under it.", @@ -180094,7 +184934,7 @@ { "id": "catalog.SystemSchemas", "name": "SystemSchemas", - "description": "A system schema is a schema that lives within the system catalog. A system schema may contain\ninformation about customer usage of Unity Catalog such as audit-logs, billing-logs,\nlineage information, etc.", + "description": "A system schema is a schema that lives within the system catalog. A system schema may contain\ninformation about customer usage of Unity Catalog such as audit logs, billing logs,\nand lineage information.", "package": { "name": "catalog" }, @@ -180422,7 +185262,7 @@ { "id": "catalog.TableConstraints", "name": "TableConstraints", - "description": "Primary key and foreign key constraints encode relationships between fields in tables.\n\nPrimary and foreign keys are informational only and are not enforced. Foreign keys must reference a primary key in another table.\nThis primary key is the parent constraint of the foreign key and the table this primary key is on is the parent table of the foreign key.\nSimilarly, the foreign key is the child constraint of its referenced primary key; the table of the foreign key is the child table of the primary key.\n\nYou can declare primary keys and foreign keys as part of the table specification during table creation.\nYou can also add or drop constraints on existing tables.", + "description": "Primary key and foreign key constraints encode relationships between fields in tables.\n\nPrimary and foreign keys are informational only and are not enforced. Foreign keys must reference a primary key in another table.\nThis primary key is the parent constraint of the foreign key, and the table this primary key is on is the parent table of the foreign key.\nSimilarly, the foreign key is the child constraint of its referenced primary key. The table of the foreign key is the child table of the primary key.\n\nYou can declare primary keys and foreign keys as part of the table specification during table creation.\nYou can also add or drop constraints on existing tables.", "package": { "name": "catalog" }, @@ -182614,7 +187454,7 @@ { "id": "catalog.TemporaryPathCredentials", "name": "TemporaryPathCredentials", - "description": "Temporary Path Credentials refer to short-lived, downscoped credentials used to access external cloud storage locations registered in Databricks. These credentials are employed to provide secure and time-limited access to data in cloud environments such as AWS, Azure, and Google Cloud. Each cloud provider has its own type of credentials: AWS uses temporary session tokens via AWS Security Token Service (STS), Azure utilizes Shared Access Signatures (SAS) for its data storage services, and Google Cloud supports temporary credentials through OAuth 2.0.\n\nTemporary path credentials ensure that data access is limited in scope and duration, reducing the risk of unauthorized access or misuse. To use the temporary path credentials API, a metastore admin needs to enable the external_access_enabled flag (off by default) at the metastore level. A user needs to be granted the EXTERNAL USE LOCATION permission by external location owner. For requests on existing external tables and external volumes, user also needs to be granted the EXTERNAL USE SCHEMA permission at the schema level by catalog owner.\n\nNote that EXTERNAL USE SCHEMA is a schema level permission that can only be granted by catalog owner explicitly and is not included in schema ownership or ALL PRIVILEGES on the schema for security reasons. Similarly, EXTERNAL USE LOCATION is an external location level permission that can only be granted by external location owner explicitly and is not included in external location ownership or ALL PRIVILEGES on the external location for security reasons.", + "description": "Temporary Path Credentials are short-lived, downscoped credentials used to access external cloud storage locations registered in Databricks. These credentials provide secure and time-limited access to data in cloud environments such as AWS, Azure, and Google Cloud. Each cloud provider has its own type of credentials: AWS uses temporary session tokens through AWS Security Token Service (STS), Azure uses Shared Access Signatures (SAS) for its data storage services, and Google Cloud supports temporary credentials through OAuth 2.0.\n\nTemporary path credentials ensure that data access is limited in scope and duration, reducing the risk of unauthorized access or misuse. To use the temporary path credentials API, a metastore admin must enable the external_access_enabled flag (off by default) at the metastore level. A user must be granted the EXTERNAL USE LOCATION permission by the external location owner. For requests on existing external tables and external volumes, the user must also be granted the EXTERNAL USE SCHEMA permission at the schema level by the catalog owner.\n\nNote that EXTERNAL USE SCHEMA is a schema level permission that can only be granted by the catalog owner explicitly and is not included in schema ownership or ALL PRIVILEGES on the schema for security reasons. Similarly, EXTERNAL USE LOCATION is an external location level permission that can only be granted by the external location owner explicitly and is not included in external location ownership or ALL PRIVILEGES on the external location for security reasons.", "package": { "name": "catalog" }, @@ -182779,7 +187619,7 @@ { "id": "catalog.TemporaryTableCredentials", "name": "TemporaryTableCredentials", - "description": "Temporary Table Credentials refer to short-lived, downscoped credentials used to access cloud storage locations where table data is stored in Databricks. These credentials are employed to provide secure and time-limited access to data in cloud environments such as AWS, Azure, and Google Cloud. Each cloud provider has its own type of credentials: AWS uses temporary session tokens via AWS Security Token Service (STS), Azure utilizes Shared Access Signatures (SAS) for its data storage services, and Google Cloud supports temporary credentials through OAuth 2.0.\n\nTemporary table credentials ensure that data access is limited in scope and duration, reducing the risk of unauthorized access or misuse. To use the temporary table credentials API, a metastore admin needs to enable the external_access_enabled flag (off by default) at the metastore level, and user needs to be granted the EXTERNAL USE SCHEMA permission at the schema level by catalog owner. Note that EXTERNAL USE SCHEMA is a schema level permission that can only be granted by catalog owner explicitly and is not included in schema ownership or ALL PRIVILEGES on the schema for security reasons.", + "description": "Temporary Table Credentials are short-lived, downscoped credentials used to access cloud storage locations where table data is stored in Databricks. These credentials provide secure and time-limited access to data in cloud environments such as AWS, Azure, and Google Cloud. Each cloud provider has its own type of credentials: AWS uses temporary session tokens through AWS Security Token Service (STS), Azure uses Shared Access Signatures (SAS) for its data storage services, and Google Cloud supports temporary credentials through OAuth 2.0.\n\nTemporary table credentials ensure that data access is limited in scope and duration, reducing the risk of unauthorized access or misuse. To use the temporary table credentials API, a metastore admin must enable the external_access_enabled flag (off by default) at the metastore level, and the user must be granted the EXTERNAL USE SCHEMA permission at the schema level by the catalog owner. Note that EXTERNAL USE SCHEMA is a schema level permission that can only be granted by the catalog owner explicitly and is not included in schema ownership or ALL PRIVILEGES on the schema for security reasons.", "package": { "name": "catalog" }, @@ -182837,7 +187677,7 @@ { "id": "catalog.TemporaryVolumeCredentials", "name": "TemporaryVolumeCredentials", - "description": "Temporary Volume Credentials refer to short-lived, downscoped credentials used to access cloud storage locations where volume data is stored in Databricks. These credentials are employed to provide secure and time-limited access to data in cloud environments such as AWS, Azure, and Google Cloud. Each cloud provider has its own type of credentials: AWS uses temporary session tokens via AWS Security Token Service (STS), Azure utilizes Shared Access Signatures (SAS) for its data storage services, and Google Cloud supports temporary credentials through OAuth 2.0.\n\nTemporary volume credentials ensure that data access is limited in scope and duration, reducing the risk of unauthorized access or misuse. To use the temporary volume credentials API, a metastore admin needs to enable the external_access_enabled flag (off by default) at the metastore level, and user needs to be granted the EXTERNAL USE SCHEMA permission at the schema level by catalog owner. Note that EXTERNAL USE SCHEMA is a schema level permission that can only be granted by catalog owner explicitly and is not included in schema ownership or ALL PRIVILEGES on the schema for security reasons.", + "description": "Temporary Volume Credentials are short-lived, downscoped credentials used to access cloud storage locations where volume data is stored in Databricks. These credentials provide secure and time-limited access to data in cloud environments such as AWS, Azure, and Google Cloud. Each cloud provider has its own type of credentials: AWS uses temporary session tokens through AWS Security Token Service (STS), Azure uses Shared Access Signatures (SAS) for its data storage services, and Google Cloud supports temporary credentials through OAuth 2.0.\n\nTemporary volume credentials ensure that data access is limited in scope and duration, reducing the risk of unauthorized access or misuse. To use the temporary volume credentials API, a metastore admin must enable the external_access_enabled flag (off by default) at the metastore level, and the user must be granted the EXTERNAL USE SCHEMA permission at the schema level by the catalog owner. Note that EXTERNAL USE SCHEMA is a schema level permission that can only be granted by the catalog owner explicitly and is not included in schema ownership or ALL PRIVILEGES on the schema for security reasons.", "package": { "name": "catalog" }, @@ -186904,6 +191744,17 @@ } } }, + { + "name": "facets", + "description": "Facets to compute over the matched results. Each entry has one of these forms:\n`\"\u003ccolumn\u003e\"` - top 10 distinct values by count\n`\"\u003ccolumn\u003e TOP \u003cn\u003e\"` - top n distinct values, where n \u003e 0\n`\"\u003ccolumn\u003e BUCKETS [[from,to],...]\"` - inclusive numeric ranges\n`TOP` and `BUCKETS` are case-insensitive. A column may appear at most once.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, { "name": "filters_json", "description": "JSON string representing query filters.\n\nExample filters:\n\n- `{\"id \u003c\": 5}`: Filter for id less than 5.\n- `{\"id \u003e\": 5}`: Filter for id greater than 5.\n- `{\"id \u003c=\": 5}`: Filter for id less than equal to 5.\n- `{\"id \u003e=\": 5}`: Filter for id greater than equal to 5.\n- `{\"id\": 5}`: Filter for id equal to 5.", @@ -186929,6 +191780,17 @@ "is_int": true } }, + { + "name": "query_columns", + "description": "Text columns to search for `query_text`. When empty, all text columns are searched.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, { "name": "query_text", "description": "Query text. Required for Delta Sync Index using model endpoint.", @@ -186973,6 +191835,17 @@ "entity": { "is_float64": true } + }, + { + "name": "sort_columns", + "description": "Sort results by column values instead of the default relevance ordering.\nEach clause has the form `\"\u003ccolumn\u003e ASC\"` or `\"\u003ccolumn\u003e DESC\"`, for example\n`[\"rating DESC\", \"price ASC\"]`.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } } ], "required_positional_arguments": [ @@ -187313,7 +192186,7 @@ { "id": "catalog.Volumes", "name": "Volumes", - "description": "Volumes are a Unity Catalog (UC) capability for accessing, storing, governing,\norganizing and processing files. Use cases include running machine learning\non unstructured data such as image, audio, video, or PDF files, organizing data sets\nduring the data exploration stages in data science, working with libraries\nthat require access to the local file system on cluster machines, storing library\nand config files of arbitrary formats such as .whl or .txt centrally\nand providing secure access across workspaces to it,\nor transforming and querying non-tabular data files in ETL.", + "description": "Volumes are a Unity Catalog (UC) capability for accessing, storing, governing,\norganizing, and processing files. Use cases include running machine learning\non unstructured data such as image, audio, video, or PDF files, organizing data sets\nduring the data exploration stages in data science, working with libraries\nthat require access to the local file system on cluster machines, storing library\nand config files of arbitrary formats such as .whl or .txt centrally\nand providing secure access to those files across workspaces,\nor transforming and querying non-tabular data files in ETL.", "package": { "name": "catalog" }, @@ -188167,7 +193040,7 @@ }, { "name": "cluster_size", - "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large", + "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large\n- Auto", "is_request_body_field": true, "entity": { "is_string": true @@ -188778,7 +193651,7 @@ }, { "name": "cluster_size", - "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large", + "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large\n- Auto", "is_request_body_field": true, "entity": { "is_string": true @@ -191427,7 +196300,7 @@ { "id": "catalog.WorkspaceBindings", "name": "WorkspaceBindings", - "description": "A securable in Databricks can be configured as __OPEN__ or __ISOLATED__. An __OPEN__ securable can\nbe accessed from any workspace, while an __ISOLATED__ securable can only be accessed from a configured\nlist of workspaces. This API allows you to configure (bind) securables to workspaces.\n\nNOTE:\nThe __isolation_mode__ is configured for the securable itself (using its Update method) and\nthe workspace bindings are only consulted when the securable's __isolation_mode__ is set to __ISOLATED__.\n\nA securable's workspace bindings can be configured by a metastore admin or the owner of the securable.\n\nThe original path (/api/2.1/unity-catalog/workspace-bindings/catalogs/{name}) is deprecated.\nPlease use the new path (/api/2.1/unity-catalog/bindings/{securable_type}/{securable_name})\nwhich introduces the ability to bind a securable in READ_ONLY mode (catalogs only).\n\nSecurable types that support binding:\n- catalog\n- storage_credential\n- credential\n- external_location", + "description": "A securable in Databricks can be configured as __OPEN__ or __ISOLATED__. An __OPEN__ securable can\nbe accessed from any workspace, while an __ISOLATED__ securable can only be accessed from a configured\nlist of workspaces. This API allows you to configure (bind) securables to workspaces.\n\nNOTE:\nThe __isolation_mode__ is configured for the securable itself (using its Update method) and\nthe workspace bindings are only consulted when the securable's __isolation_mode__ is set to __ISOLATED__.\n\nA securable's workspace bindings can be configured by a metastore admin or the owner of the securable.\n\nThe original path (/api/2.1/unity-catalog/workspace-bindings/catalogs/{name}) is deprecated.\nUse the new path (/api/2.1/unity-catalog/bindings/{securable_type}/{securable_name}),\nwhich introduces the ability to bind a securable in READ_ONLY mode (catalogs only).\n\nSecurable types that support binding:\n- catalog\n- storage_credential\n- credential\n- external_location", "package": { "name": "catalog" }, @@ -193292,6 +198165,7 @@ }, { "name": "entitlements", + "description": "Entitlements granted directly to the principal on this workspace. The only client-settable\nfield: create and update manage exactly this set (including entitlements the principal also\nholds via a group).\nNot populated by ListWorkspaceAssignmentDetails (omitted for scalability); call\nGetWorkspaceAssignmentDetail to read the entitlements for a single principal.", "is_request_body_field": true, "entity": { "pascal_name": "EntitlementList", @@ -193597,7 +198471,7 @@ }, { "name": "ListWorkspaceAssignmentDetailsProxy", - "description": "Lists workspace assignment details for a workspace (workspace-level proxy).", + "description": "Lists workspace assignment details for a workspace (workspace-level proxy).\nFor scalability, the response omits the per-principal entitlement fields (`entitlements` and\n`effective_entitlements`); call GetWorkspaceAssignmentDetailProxy to read entitlements for a\nsingle principal.", "summary": "List workspace assignment details for a workspace.", "path": "/api/2.0/identity/workspaceAssignmentDetails", "is_hidden_cli": true, @@ -194027,6 +198901,7 @@ }, { "name": "entitlements", + "description": "Entitlements granted directly to the principal on this workspace. The only client-settable\nfield: create and update manage exactly this set (including entitlements the principal also\nholds via a group).\nNot populated by ListWorkspaceAssignmentDetails (omitted for scalability); call\nGetWorkspaceAssignmentDetail to read the entitlements for a single principal.", "is_request_body_field": true, "entity": { "pascal_name": "EntitlementList", @@ -195646,6 +200521,10 @@ "key": "vectorsearch", "display_name": "Vector Search" }, + { + "key": "aisearch", + "display_name": "AI Search" + }, { "key": "iam", "display_name": "Identity and Access Management" @@ -195715,8 +200594,8 @@ "display_name": "Environments" }, { - "key": "bundle", - "display_name": "Bundle" + "key": "bundledeployments", + "display_name": "Bundle Deployments" } ], "account_docs_groups": [ diff --git a/.gitattributes b/.gitattributes index 595b0dba8c2..0853f780caa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -45,6 +45,7 @@ cmd/account/workspace-network-configuration/workspace-network-configuration.go l cmd/account/workspaces/workspaces.go linguist-generated=true cmd/workspace/access-control/access-control.go linguist-generated=true cmd/workspace/agent-bricks/agent-bricks.go linguist-generated=true +cmd/workspace/ai-search/ai-search.go linguist-generated=true cmd/workspace/aibi-dashboard-embedding-access-policy/aibi-dashboard-embedding-access-policy.go linguist-generated=true cmd/workspace/aibi-dashboard-embedding-approved-domains/aibi-dashboard-embedding-approved-domains.go linguist-generated=true cmd/workspace/alerts-legacy/alerts-legacy.go linguist-generated=true @@ -54,7 +55,7 @@ cmd/workspace/apps-settings/apps-settings.go linguist-generated=true cmd/workspace/apps/apps.go linguist-generated=true cmd/workspace/artifact-allowlists/artifact-allowlists.go linguist-generated=true cmd/workspace/automatic-cluster-update/automatic-cluster-update.go linguist-generated=true -cmd/workspace/bundle/bundle.go linguist-generated=true +cmd/workspace/bundle-deployments/bundle-deployments.go linguist-generated=true cmd/workspace/catalogs/catalogs.go linguist-generated=true cmd/workspace/clean-room-asset-revisions/clean-room-asset-revisions.go linguist-generated=true cmd/workspace/clean-room-assets/clean-room-assets.go linguist-generated=true diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index d292188f0f7..1f46a0a57c6 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -11,5 +11,6 @@ * Fix missing field descriptions in the bundle JSON schema for fields whose upstream API docs arrived after the field was first annotated (e.g. `vector_search_endpoints.*.target_qps`); stale placeholder markers no longer hide them ([#5588](https://github.com/databricks/cli/pull/5588)). ### Dependency updates +* Bump `github.com/databricks/databricks-sdk-go` from v0.141.0 to v0.147.0 ([#5636](https://github.com/databricks/cli/pull/5636)). ### API Changes diff --git a/acceptance/bundle/refschema/out.fields.txt b/acceptance/bundle/refschema/out.fields.txt index 563f95a8626..a6776c50393 100644 --- a/acceptance/bundle/refschema/out.fields.txt +++ b/acceptance/bundle/refschema/out.fields.txt @@ -86,6 +86,7 @@ resources.apps.*.active_deployment.status.state apps.AppDeploymentState ALL resources.apps.*.active_deployment.update_time string ALL resources.apps.*.app_status *apps.ApplicationStatus ALL resources.apps.*.app_status.message string ALL +resources.apps.*.app_status.running_instances int ALL resources.apps.*.app_status.state apps.ApplicationState ALL resources.apps.*.budget_policy_id string ALL resources.apps.*.compute_max_instances int ALL @@ -231,6 +232,7 @@ resources.catalogs.*.comment string ALL resources.catalogs.*.connection_name string ALL resources.catalogs.*.created_at int64 REMOTE resources.catalogs.*.created_by string REMOTE +resources.catalogs.*.custom_max_retention_hours int64 ALL resources.catalogs.*.effective_predictive_optimization_flag *catalog.EffectivePredictiveOptimizationFlag REMOTE resources.catalogs.*.effective_predictive_optimization_flag.inherited_from_name string REMOTE resources.catalogs.*.effective_predictive_optimization_flag.inherited_from_type catalog.EffectivePredictiveOptimizationFlagInheritedFromType REMOTE @@ -290,6 +292,7 @@ resources.clusters.*.aws_attributes.spot_bid_price_percent int ALL resources.clusters.*.aws_attributes.zone_id string ALL resources.clusters.*.azure_attributes *compute.AzureAttributes ALL resources.clusters.*.azure_attributes.availability compute.AzureAvailability ALL +resources.clusters.*.azure_attributes.capacity_reservation_group string ALL resources.clusters.*.azure_attributes.first_on_demand int ALL resources.clusters.*.azure_attributes.log_analytics_info *compute.LogAnalyticsInfo ALL resources.clusters.*.azure_attributes.log_analytics_info.log_analytics_primary_key string ALL @@ -428,6 +431,7 @@ resources.clusters.*.spec.aws_attributes.spot_bid_price_percent int REMOTE resources.clusters.*.spec.aws_attributes.zone_id string REMOTE resources.clusters.*.spec.azure_attributes *compute.AzureAttributes REMOTE resources.clusters.*.spec.azure_attributes.availability compute.AzureAvailability REMOTE +resources.clusters.*.spec.azure_attributes.capacity_reservation_group string REMOTE resources.clusters.*.spec.azure_attributes.first_on_demand int REMOTE resources.clusters.*.spec.azure_attributes.log_analytics_info *compute.LogAnalyticsInfo REMOTE resources.clusters.*.spec.azure_attributes.log_analytics_info.log_analytics_primary_key string REMOTE @@ -835,6 +839,7 @@ resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.spot_bid_price_perce resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.zone_id string ALL resources.jobs.*.job_clusters[*].new_cluster.azure_attributes *compute.AzureAttributes ALL resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.availability compute.AzureAvailability ALL +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.capacity_reservation_group string ALL resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.first_on_demand int ALL resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.log_analytics_info *compute.LogAnalyticsInfo ALL resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.log_analytics_info.log_analytics_primary_key string ALL @@ -1155,6 +1160,7 @@ resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.spot_bid resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.zone_id string ALL resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes *compute.AzureAttributes ALL resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.availability compute.AzureAvailability ALL +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.capacity_reservation_group string ALL resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.first_on_demand int ALL resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.log_analytics_info *compute.LogAnalyticsInfo ALL resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.log_analytics_info.log_analytics_primary_key string ALL @@ -1440,6 +1446,7 @@ resources.jobs.*.tasks[*].new_cluster.aws_attributes.spot_bid_price_percent int resources.jobs.*.tasks[*].new_cluster.aws_attributes.zone_id string ALL resources.jobs.*.tasks[*].new_cluster.azure_attributes *compute.AzureAttributes ALL resources.jobs.*.tasks[*].new_cluster.azure_attributes.availability compute.AzureAvailability ALL +resources.jobs.*.tasks[*].new_cluster.azure_attributes.capacity_reservation_group string ALL resources.jobs.*.tasks[*].new_cluster.azure_attributes.first_on_demand int ALL resources.jobs.*.tasks[*].new_cluster.azure_attributes.log_analytics_info *compute.LogAnalyticsInfo ALL resources.jobs.*.tasks[*].new_cluster.azure_attributes.log_analytics_info.log_analytics_primary_key string ALL @@ -2258,6 +2265,7 @@ resources.pipelines.*.clusters[*].aws_attributes.spot_bid_price_percent int ALL resources.pipelines.*.clusters[*].aws_attributes.zone_id string ALL resources.pipelines.*.clusters[*].azure_attributes *compute.AzureAttributes ALL resources.pipelines.*.clusters[*].azure_attributes.availability compute.AzureAvailability ALL +resources.pipelines.*.clusters[*].azure_attributes.capacity_reservation_group string ALL resources.pipelines.*.clusters[*].azure_attributes.first_on_demand int ALL resources.pipelines.*.clusters[*].azure_attributes.log_analytics_info *compute.LogAnalyticsInfo ALL resources.pipelines.*.clusters[*].azure_attributes.log_analytics_info.log_analytics_primary_key string ALL @@ -2386,6 +2394,9 @@ resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy *pipelines.AutoFullRefreshPolicy ALL resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy.enabled bool ALL resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy.min_interval_hours int ALL +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.clustering_columns []string ALL +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.clustering_columns[*] string ALL +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.enable_auto_clustering bool ALL resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.exclude_columns []string ALL resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.exclude_columns[*] string ALL resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.include_columns []string ALL @@ -2402,6 +2413,8 @@ resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.scd_type pipelines.TableSpecificConfigScdType ALL resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.sequence_by []string ALL resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.sequence_by[*] string ALL +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.table_properties map[string]string ALL +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.table_properties.* string ALL resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters *pipelines.IngestionPipelineDefinitionWorkdayReportParameters ALL resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.incremental bool ALL resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.parameters map[string]string ALL @@ -2538,6 +2551,9 @@ resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy *pipelines.AutoFullRefreshPolicy ALL resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy.enabled bool ALL resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy.min_interval_hours int ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.clustering_columns []string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.clustering_columns[*] string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.enable_auto_clustering bool ALL resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.exclude_columns []string ALL resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.exclude_columns[*] string ALL resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.include_columns []string ALL @@ -2554,6 +2570,8 @@ resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.scd_type pipelines.TableSpecificConfigScdType ALL resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.sequence_by []string ALL resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.sequence_by[*] string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.table_properties map[string]string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.table_properties.* string ALL resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters *pipelines.IngestionPipelineDefinitionWorkdayReportParameters ALL resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.incremental bool ALL resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.parameters map[string]string ALL @@ -2692,6 +2710,9 @@ resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy *pipelines.AutoFullRefreshPolicy ALL resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy.enabled bool ALL resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy.min_interval_hours int ALL +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.clustering_columns []string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.clustering_columns[*] string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.enable_auto_clustering bool ALL resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.exclude_columns []string ALL resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.exclude_columns[*] string ALL resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.include_columns []string ALL @@ -2708,6 +2729,8 @@ resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration. resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.scd_type pipelines.TableSpecificConfigScdType ALL resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.sequence_by []string ALL resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.sequence_by[*] string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.table_properties map[string]string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.table_properties.* string ALL resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters *pipelines.IngestionPipelineDefinitionWorkdayReportParameters ALL resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.incremental bool ALL resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.parameters map[string]string ALL @@ -2731,6 +2754,9 @@ resources.pipelines.*.ingestion_definition.table_configuration *pipelines.TableS resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy *pipelines.AutoFullRefreshPolicy ALL resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy.enabled bool ALL resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy.min_interval_hours int ALL +resources.pipelines.*.ingestion_definition.table_configuration.clustering_columns []string ALL +resources.pipelines.*.ingestion_definition.table_configuration.clustering_columns[*] string ALL +resources.pipelines.*.ingestion_definition.table_configuration.enable_auto_clustering bool ALL resources.pipelines.*.ingestion_definition.table_configuration.exclude_columns []string ALL resources.pipelines.*.ingestion_definition.table_configuration.exclude_columns[*] string ALL resources.pipelines.*.ingestion_definition.table_configuration.include_columns []string ALL @@ -2747,6 +2773,8 @@ resources.pipelines.*.ingestion_definition.table_configuration.salesforce_includ resources.pipelines.*.ingestion_definition.table_configuration.scd_type pipelines.TableSpecificConfigScdType ALL resources.pipelines.*.ingestion_definition.table_configuration.sequence_by []string ALL resources.pipelines.*.ingestion_definition.table_configuration.sequence_by[*] string ALL +resources.pipelines.*.ingestion_definition.table_configuration.table_properties map[string]string ALL +resources.pipelines.*.ingestion_definition.table_configuration.table_properties.* string ALL resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters *pipelines.IngestionPipelineDefinitionWorkdayReportParameters ALL resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.incremental bool ALL resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.parameters map[string]string ALL @@ -2802,6 +2830,7 @@ resources.pipelines.*.run_as.user_name string ALL resources.pipelines.*.run_as_user_name string REMOTE resources.pipelines.*.schema string ALL resources.pipelines.*.serverless bool ALL +resources.pipelines.*.serverless_compute_id string ALL resources.pipelines.*.state pipelines.PipelineState REMOTE resources.pipelines.*.storage string ALL resources.pipelines.*.tags map[string]string ALL @@ -3023,6 +3052,7 @@ resources.postgres_roles.*.status.postgres_role string REMOTE resources.postgres_roles.*.status.role_id string REMOTE resources.postgres_roles.*.update_time *time.Time REMOTE resources.postgres_roles.*.url string INPUT +resources.postgres_synced_tables.*.accelerated_sync bool ALL resources.postgres_synced_tables.*.branch string ALL resources.postgres_synced_tables.*.create_database_objects_if_missing bool ALL resources.postgres_synced_tables.*.create_time *time.Time REMOTE @@ -3064,6 +3094,11 @@ resources.postgres_synced_tables.*.status.provisioning_phase postgres.Provisioni resources.postgres_synced_tables.*.status.unity_catalog_provisioning_state postgres.ProvisioningInfoState REMOTE resources.postgres_synced_tables.*.synced_table_id string ALL resources.postgres_synced_tables.*.timeseries_key string ALL +resources.postgres_synced_tables.*.type_overrides []postgres.SyncedTableSyncedTableSpecTypeOverride ALL +resources.postgres_synced_tables.*.type_overrides[*] postgres.SyncedTableSyncedTableSpecTypeOverride ALL +resources.postgres_synced_tables.*.type_overrides[*].column_name string ALL +resources.postgres_synced_tables.*.type_overrides[*].pg_type postgres.SyncedTableSyncedTableSpecPgSpecificType ALL +resources.postgres_synced_tables.*.type_overrides[*].size int ALL resources.postgres_synced_tables.*.uid string REMOTE resources.postgres_synced_tables.*.url string INPUT resources.quality_monitors.*.assets_dir string ALL @@ -3158,6 +3193,7 @@ resources.schemas.*.catalog_type catalog.CatalogType REMOTE resources.schemas.*.comment string ALL resources.schemas.*.created_at int64 REMOTE resources.schemas.*.created_by string REMOTE +resources.schemas.*.custom_max_retention_hours int64 ALL resources.schemas.*.effective_predictive_optimization_flag *catalog.EffectivePredictiveOptimizationFlag REMOTE resources.schemas.*.effective_predictive_optimization_flag.inherited_from_name string REMOTE resources.schemas.*.effective_predictive_optimization_flag.inherited_from_type catalog.EffectivePredictiveOptimizationFlagInheritedFromType REMOTE @@ -3310,6 +3346,7 @@ resources.synced_database_tables.*.logical_database_name string ALL resources.synced_database_tables.*.modified_status string INPUT resources.synced_database_tables.*.name string ALL resources.synced_database_tables.*.spec *database.SyncedTableSpec ALL +resources.synced_database_tables.*.spec.accelerated_sync bool ALL resources.synced_database_tables.*.spec.create_database_objects_if_missing bool ALL resources.synced_database_tables.*.spec.existing_pipeline_id string ALL resources.synced_database_tables.*.spec.new_pipeline_spec *database.NewPipelineSpec ALL @@ -3321,6 +3358,11 @@ resources.synced_database_tables.*.spec.primary_key_columns[*] string ALL resources.synced_database_tables.*.spec.scheduling_policy database.SyncedTableSchedulingPolicy ALL resources.synced_database_tables.*.spec.source_table_full_name string ALL resources.synced_database_tables.*.spec.timeseries_key string ALL +resources.synced_database_tables.*.spec.type_overrides []database.SyncedTableSpecTypeOverride ALL +resources.synced_database_tables.*.spec.type_overrides[*] database.SyncedTableSpecTypeOverride ALL +resources.synced_database_tables.*.spec.type_overrides[*].column_name string ALL +resources.synced_database_tables.*.spec.type_overrides[*].pg_type database.SyncedTableSpecPgSpecificType ALL +resources.synced_database_tables.*.spec.type_overrides[*].size int ALL resources.synced_database_tables.*.unity_catalog_provisioning_state database.ProvisioningInfoState ALL resources.synced_database_tables.*.url string INPUT resources.vector_search_endpoints.*.budget_policy_id string ALL @@ -3387,6 +3429,7 @@ resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_colu resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_columns[*].embedding_dimension int ALL resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_columns[*].name string ALL resources.vector_search_indexes.*.direct_access_index_spec.schema_json string ALL +resources.vector_search_indexes.*.endpoint_id string REMOTE resources.vector_search_indexes.*.endpoint_name string ALL resources.vector_search_indexes.*.endpoint_uuid string REMOTE STATE resources.vector_search_indexes.*.id string INPUT diff --git a/acceptance/bundle/resources/sql_warehouses/lifecycle-started-toggle/output.txt b/acceptance/bundle/resources/sql_warehouses/lifecycle-started-toggle/output.txt index b6fa122cc08..4995fcbf5c9 100644 --- a/acceptance/bundle/resources/sql_warehouses/lifecycle-started-toggle/output.txt +++ b/acceptance/bundle/resources/sql_warehouses/lifecycle-started-toggle/output.txt @@ -21,8 +21,7 @@ Deployment complete! } { "method": "POST", - "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/stop", - "body": {} + "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/stop" } >>> errcode [CLI] warehouses get [WAREHOUSE_ID] @@ -40,8 +39,7 @@ Deployment complete! >>> print_requests.py //sql/warehouses { "method": "POST", - "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/start", - "body": {} + "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/start" } >>> errcode [CLI] warehouses get [WAREHOUSE_ID] @@ -59,8 +57,7 @@ Deployment complete! >>> print_requests.py //sql/warehouses { "method": "POST", - "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/stop", - "body": {} + "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/stop" } >>> errcode [CLI] warehouses get [WAREHOUSE_ID] diff --git a/acceptance/bundle/resources/sql_warehouses/lifecycle-started/output.txt b/acceptance/bundle/resources/sql_warehouses/lifecycle-started/output.txt index 027d148fdf8..195fb9b39a5 100644 --- a/acceptance/bundle/resources/sql_warehouses/lifecycle-started/output.txt +++ b/acceptance/bundle/resources/sql_warehouses/lifecycle-started/output.txt @@ -42,13 +42,11 @@ Deployment complete! >>> print_requests.py //sql/warehouses { "method": "POST", - "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/stop", - "body": {} + "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/stop" } { "method": "POST", - "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/start", - "body": {} + "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/start" } >>> errcode [CLI] warehouses get [WAREHOUSE_ID] @@ -69,8 +67,7 @@ Deployment complete! >>> print_requests.py //sql/warehouses { "method": "POST", - "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/stop", - "body": {} + "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/stop" } >>> errcode [CLI] warehouses get [WAREHOUSE_ID] @@ -88,8 +85,7 @@ Deployment complete! >>> print_requests.py //sql/warehouses { "method": "POST", - "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/start", - "body": {} + "path": "/api/2.0/sql/warehouses/[WAREHOUSE_ID]/start" } >>> errcode [CLI] warehouses get [WAREHOUSE_ID] diff --git a/acceptance/cmd/account/account-help/output.txt b/acceptance/cmd/account/account-help/output.txt index 1687f96d466..2425182699f 100644 --- a/acceptance/cmd/account/account-help/output.txt +++ b/acceptance/cmd/account/account-help/output.txt @@ -32,7 +32,7 @@ Settings Provisioning credentials These APIs manage credential configurations for this workspace. encryption-keys These APIs manage encryption key configurations for this workspace (optional). - endpoints *Public Preview* These APIs manage endpoint configurations for this account. + endpoints These APIs manage endpoint configurations for this account. networks These APIs manage network configurations for customer-managed VPCs (optional). private-access These APIs manage private access settings for this account. storage These APIs manage storage configurations for this workspace. @@ -54,6 +54,9 @@ OAuth service-principal-federation-policy These APIs manage service principal federation policies. service-principal-secrets These APIs enable administrators to manage service principal secrets. +Disaster Recovery + disaster-recovery *Public Preview* Manage disaster recovery configurations and execute failover operations. + Flags: -h, --help help for account diff --git a/acceptance/help/output.txt b/acceptance/help/output.txt index dd1063bc392..910f761eaae 100644 --- a/acceptance/help/output.txt +++ b/acceptance/help/output.txt @@ -67,9 +67,9 @@ AI/BI lakeview-embedded Token-based Lakeview APIs for embedding dashboards in external applications. Unity Catalog - artifact-allowlists In Databricks Runtime 13.3 and above, you can add libraries and init scripts to the allowlist in UC so that users can leverage these artifacts on compute configured with shared access mode. + artifact-allowlists In Databricks Runtime 13.3 and above, you can add libraries and init scripts to the allowlist in UC so that users can use these artifacts on compute configured with shared access mode. catalogs A catalog is the first layer of Unity Catalog’s three-level namespace. - connections Connections allow for creating a connection to an external data source. + connections A connection represents an external data source for use within Databricks. credentials A credential represents an authentication and authorization mechanism for accessing services on your cloud tenant. entity-tag-assignments Tags are attributes that include keys and optional values that you can use to organize and categorize entities in Unity Catalog. external-lineage *Public Preview* External Lineage APIs enable defining and managing lineage relationships between Databricks objects and external systems. @@ -90,10 +90,10 @@ Unity Catalog system-schemas *Public Preview* A system schema is a schema that lives within the system catalog. table-constraints Primary key and foreign key constraints encode relationships between fields in tables. tables A table resides in the third layer of Unity Catalog’s three-level namespace. - temporary-path-credentials Temporary Path Credentials refer to short-lived, downscoped credentials used to access external cloud storage locations registered in Databricks. - temporary-table-credentials Temporary Table Credentials refer to short-lived, downscoped credentials used to access cloud storage locations where table data is stored in Databricks. - temporary-volume-credentials *Public Preview* Temporary Volume Credentials refer to short-lived, downscoped credentials used to access cloud storage locations where volume data is stored in Databricks. - volumes Volumes are a Unity Catalog (UC) capability for accessing, storing, governing, organizing and processing files. + temporary-path-credentials Temporary Path Credentials are short-lived, downscoped credentials used to access external cloud storage locations registered in Databricks. + temporary-table-credentials Temporary Table Credentials are short-lived, downscoped credentials used to access cloud storage locations where table data is stored in Databricks. + temporary-volume-credentials *Public Preview* Temporary Volume Credentials are short-lived, downscoped credentials used to access cloud storage locations where volume data is stored in Databricks. + volumes Volumes are a Unity Catalog (UC) capability for accessing, storing, governing, organizing, and processing files. workspace-bindings A securable in Databricks can be configured as __OPEN__ or __ISOLATED__. Delta Sharing diff --git a/bundle/direct/dresources/catalog.go b/bundle/direct/dresources/catalog.go index 1ce28b54123..604100e92dd 100644 --- a/bundle/direct/dresources/catalog.go +++ b/bundle/direct/dresources/catalog.go @@ -25,6 +25,7 @@ func (*ResourceCatalog) RemapState(info *catalog.CatalogInfo) *catalog.CreateCat return &catalog.CreateCatalog{ Comment: info.Comment, ConnectionName: info.ConnectionName, + CustomMaxRetentionHours: info.CustomMaxRetentionHours, ManagedEncryptionSettings: info.ManagedEncryptionSettings, Name: info.Name, Options: info.Options, @@ -52,6 +53,7 @@ func (r *ResourceCatalog) DoCreate(ctx context.Context, config *catalog.CreateCa func (r *ResourceCatalog) DoUpdate(ctx context.Context, id string, config *catalog.CreateCatalog, _ *PlanEntry) (*catalog.CatalogInfo, error) { updateRequest := catalog.UpdateCatalog{ Comment: config.Comment, + CustomMaxRetentionHours: config.CustomMaxRetentionHours, EnablePredictiveOptimization: "", // Not supported by DABs IsolationMode: "", // Not supported by DABs ManagedEncryptionSettings: config.ManagedEncryptionSettings, @@ -75,6 +77,7 @@ func (r *ResourceCatalog) DoUpdate(ctx context.Context, id string, config *catal func (r *ResourceCatalog) DoUpdateWithID(ctx context.Context, id string, config *catalog.CreateCatalog) (string, *catalog.CatalogInfo, error) { updateRequest := catalog.UpdateCatalog{ Comment: config.Comment, + CustomMaxRetentionHours: config.CustomMaxRetentionHours, EnablePredictiveOptimization: "", // Not supported by DABs IsolationMode: "", // Not supported by DABs ManagedEncryptionSettings: config.ManagedEncryptionSettings, diff --git a/bundle/direct/dresources/pipeline.go b/bundle/direct/dresources/pipeline.go index 0861f0fad2f..20d2eb08245 100644 --- a/bundle/direct/dresources/pipeline.go +++ b/bundle/direct/dresources/pipeline.go @@ -99,6 +99,7 @@ func makePipelineRemote(p *pipelines.GetPipelineResponse) *PipelineRemote { RunAs: p.RunAs, Schema: spec.Schema, Serverless: spec.Serverless, + ServerlessComputeId: spec.ServerlessComputeId, Storage: spec.Storage, Tags: spec.Tags, Target: spec.Target, @@ -160,6 +161,7 @@ func (r *ResourcePipeline) DoUpdate(ctx context.Context, id string, config *pipe RunAs: config.RunAs, Schema: config.Schema, Serverless: config.Serverless, + ServerlessComputeId: config.ServerlessComputeId, Storage: config.Storage, Tags: config.Tags, Target: config.Target, diff --git a/bundle/direct/dresources/postgres_branch.go b/bundle/direct/dresources/postgres_branch.go index 11c0e7a0fe0..4f234d947dc 100644 --- a/bundle/direct/dresources/postgres_branch.go +++ b/bundle/direct/dresources/postgres_branch.go @@ -110,6 +110,7 @@ func (r *ResourcePostgresBranch) DoCreate(ctx context.Context, config *PostgresB Spec: &config.BranchSpec, // Output-only fields. + BranchId: "", CreateTime: nil, Name: "", Parent: "", @@ -147,6 +148,7 @@ func (r *ResourcePostgresBranch) DoUpdate(ctx context.Context, id string, config Spec: &config.BranchSpec, // Output-only fields. + BranchId: "", CreateTime: nil, Name: "", Parent: "", diff --git a/bundle/direct/dresources/postgres_catalog.go b/bundle/direct/dresources/postgres_catalog.go index 35a1c0f0cc6..2a35b9e7064 100644 --- a/bundle/direct/dresources/postgres_catalog.go +++ b/bundle/direct/dresources/postgres_catalog.go @@ -98,6 +98,7 @@ func (r *ResourcePostgresCatalog) DoCreate(ctx context.Context, config *Postgres Spec: &config.CatalogCatalogSpec, // Output-only fields. + CatalogId: "", CreateTime: nil, Name: "", Status: nil, diff --git a/bundle/direct/dresources/postgres_database.go b/bundle/direct/dresources/postgres_database.go index 2464e864465..d412eb94b8c 100644 --- a/bundle/direct/dresources/postgres_database.go +++ b/bundle/direct/dresources/postgres_database.go @@ -103,6 +103,7 @@ func (r *ResourcePostgresDatabase) DoCreate(ctx context.Context, config *Postgre Spec: &config.DatabaseDatabaseSpec, // Output-only fields. + DatabaseId: "", CreateTime: nil, Name: "", Parent: "", @@ -138,6 +139,7 @@ func (r *ResourcePostgresDatabase) DoUpdate(ctx context.Context, id string, conf Spec: &config.DatabaseDatabaseSpec, // Output-only fields. + DatabaseId: "", CreateTime: nil, Name: "", Parent: "", diff --git a/bundle/direct/dresources/postgres_endpoint.go b/bundle/direct/dresources/postgres_endpoint.go index 04dd6874f2c..eef2cd766e1 100644 --- a/bundle/direct/dresources/postgres_endpoint.go +++ b/bundle/direct/dresources/postgres_endpoint.go @@ -149,6 +149,7 @@ func (r *ResourcePostgresEndpoint) DoCreate(ctx context.Context, config *Postgre Spec: &config.EndpointSpec, // Output-only fields. + EndpointId: "", CreateTime: nil, Name: "", Parent: "", @@ -191,6 +192,7 @@ func (r *ResourcePostgresEndpoint) DoUpdate(ctx context.Context, id string, conf Spec: &config.EndpointSpec, // Output-only fields. + EndpointId: "", CreateTime: nil, Name: "", Parent: "", diff --git a/bundle/direct/dresources/postgres_project.go b/bundle/direct/dresources/postgres_project.go index fc2ef631e38..d6bd118dd64 100644 --- a/bundle/direct/dresources/postgres_project.go +++ b/bundle/direct/dresources/postgres_project.go @@ -114,6 +114,7 @@ func (r *ResourcePostgresProject) DoCreate(ctx context.Context, config *Postgres InitialEndpointSpec: nil, // Output-only fields. + ProjectId: "", CreateTime: nil, DeleteTime: nil, Name: "", @@ -164,6 +165,7 @@ func (r *ResourcePostgresProject) DoUpdate(ctx context.Context, id string, confi InitialEndpointSpec: nil, // Output-only fields. + ProjectId: "", CreateTime: nil, DeleteTime: nil, Name: "", diff --git a/bundle/direct/dresources/postgres_role.go b/bundle/direct/dresources/postgres_role.go index 8c48ba639ea..2e0932e0c9b 100644 --- a/bundle/direct/dresources/postgres_role.go +++ b/bundle/direct/dresources/postgres_role.go @@ -116,6 +116,7 @@ func (r *ResourcePostgresRole) DoCreate(ctx context.Context, config *PostgresRol Spec: &config.RoleRoleSpec, // Output-only fields. + RoleId: "", CreateTime: nil, Name: "", Parent: "", @@ -150,6 +151,7 @@ func (r *ResourcePostgresRole) DoUpdate(ctx context.Context, id string, config * Spec: &config.RoleRoleSpec, // Output-only fields. + RoleId: "", CreateTime: nil, Name: "", Parent: "", diff --git a/bundle/direct/dresources/postgres_synced_table.go b/bundle/direct/dresources/postgres_synced_table.go index 623605faf43..0f07c33293e 100644 --- a/bundle/direct/dresources/postgres_synced_table.go +++ b/bundle/direct/dresources/postgres_synced_table.go @@ -98,6 +98,7 @@ func (r *ResourcePostgresSyncedTable) DoCreate(ctx context.Context, config *Post Spec: &config.SyncedTableSyncedTableSpec, // Output-only fields. + SyncedTableId: "", CreateTime: nil, Name: "", Status: nil, diff --git a/bundle/direct/dresources/resources.generated.yml b/bundle/direct/dresources/resources.generated.yml index 3fc24b0c8f5..d1dab12b17d 100644 --- a/bundle/direct/dresources/resources.generated.yml +++ b/bundle/direct/dresources/resources.generated.yml @@ -301,6 +301,8 @@ resources: postgres_synced_tables: ignore_remote_changes: + - field: accelerated_sync + reason: spec:input_only - field: branch reason: spec:input_only - field: create_database_objects_if_missing @@ -319,6 +321,8 @@ resources: reason: spec:input_only - field: timeseries_key reason: spec:input_only + - field: type_overrides + reason: spec:input_only # quality_monitors: no api field behaviors @@ -337,6 +341,8 @@ resources: reason: spec:input_only - field: logical_database_name reason: spec:input_only + - field: spec.accelerated_sync + reason: spec:input_only - field: spec.create_database_objects_if_missing reason: spec:input_only - field: spec.existing_pipeline_id diff --git a/bundle/direct/dresources/resources.yml b/bundle/direct/dresources/resources.yml index 68f70839c92..624e0eb580f 100644 --- a/bundle/direct/dresources/resources.yml +++ b/bundle/direct/dresources/resources.yml @@ -463,6 +463,10 @@ resources: reason: immutable - field: spec.existing_pipeline_id reason: immutable + - field: spec.accelerated_sync + reason: immutable + - field: spec.type_overrides + reason: immutable apps: provided_id_fields: @@ -695,6 +699,10 @@ resources: reason: immutable - field: existing_pipeline_id reason: immutable + - field: accelerated_sync + reason: immutable + - field: type_overrides + reason: immutable postgres_roles: recreate_on_changes: diff --git a/bundle/direct/dresources/schema.go b/bundle/direct/dresources/schema.go index f082ea6c547..24c82ceb6a6 100644 --- a/bundle/direct/dresources/schema.go +++ b/bundle/direct/dresources/schema.go @@ -24,12 +24,13 @@ func (*ResourceSchema) PrepareState(input *resources.Schema) *catalog.CreateSche func (*ResourceSchema) RemapState(info *catalog.SchemaInfo) *catalog.CreateSchema { return &catalog.CreateSchema{ - CatalogName: info.CatalogName, - Comment: info.Comment, - Name: info.Name, - Properties: info.Properties, - StorageRoot: info.StorageRoot, - ForceSendFields: utils.FilterFields[catalog.CreateSchema](info.ForceSendFields), + CatalogName: info.CatalogName, + Comment: info.Comment, + CustomMaxRetentionHours: info.CustomMaxRetentionHours, + Name: info.Name, + Properties: info.Properties, + StorageRoot: info.StorageRoot, + ForceSendFields: utils.FilterFields[catalog.CreateSchema](info.ForceSendFields), } } @@ -49,6 +50,7 @@ func (r *ResourceSchema) DoCreate(ctx context.Context, config *catalog.CreateSch func (r *ResourceSchema) DoUpdate(ctx context.Context, id string, config *catalog.CreateSchema, _ *PlanEntry) (*catalog.SchemaInfo, error) { updateRequest := catalog.UpdateSchema{ Comment: config.Comment, + CustomMaxRetentionHours: config.CustomMaxRetentionHours, EnablePredictiveOptimization: "", // Not supported by DABs FullName: id, NewName: "", // We recreate schemas on name change intentionally. diff --git a/bundle/internal/schema/annotations.yml b/bundle/internal/schema/annotations.yml index 217a8fc19d1..3adb9e9e740 100644 --- a/bundle/internal/schema/annotations.yml +++ b/bundle/internal/schema/annotations.yml @@ -892,8 +892,6 @@ resources: "description": |- PLACEHOLDER "gen_ai_compute_task": - "description": |- - PLACEHOLDER "$fields": "compute": "description": |- @@ -1349,6 +1347,9 @@ resources: "description": |- The Postgres synced table definitions for the bundle, where each key is the name of the synced table. Each entry continuously replicates a Unity Catalog Delta source table into a Postgres table on a Lakebase Autoscaling instance. "$fields": + "accelerated_sync": + "description": |- + PLACEHOLDER "branch": "description": |- PLACEHOLDER @@ -1382,6 +1383,9 @@ resources: "timeseries_key": "description": |- PLACEHOLDER + "type_overrides": + "description": |- + PLACEHOLDER "quality_monitors": "description": |- The quality monitor definitions for the bundle, where each key is the name of the quality monitor. diff --git a/bundle/internal/validation/generated/enum_fields.go b/bundle/internal/validation/generated/enum_fields.go index 16aec19fb1c..d5f62ac45b8 100644 --- a/bundle/internal/validation/generated/enum_fields.go +++ b/bundle/internal/validation/generated/enum_fields.go @@ -198,7 +198,8 @@ var EnumFields = map[string][]string{ "resources.postgres_roles.*.identity_type": {"GROUP", "SERVICE_PRINCIPAL", "USER"}, "resources.postgres_roles.*.membership_roles[*]": {"DATABRICKS_SUPERUSER"}, - "resources.postgres_synced_tables.*.scheduling_policy": {"CONTINUOUS", "SNAPSHOT", "TRIGGERED"}, + "resources.postgres_synced_tables.*.scheduling_policy": {"CONTINUOUS", "SNAPSHOT", "TRIGGERED"}, + "resources.postgres_synced_tables.*.type_overrides[*].pg_type": {"PG_SPECIFIC_TYPE_VECTOR"}, "resources.quality_monitors.*.custom_metrics[*].type": {"CUSTOM_METRIC_TYPE_AGGREGATE", "CUSTOM_METRIC_TYPE_DERIVED", "CUSTOM_METRIC_TYPE_DRIFT"}, "resources.quality_monitors.*.inference_log.problem_type": {"PROBLEM_TYPE_CLASSIFICATION", "PROBLEM_TYPE_REGRESSION"}, @@ -220,6 +221,7 @@ var EnumFields = map[string][]string{ "resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.provisioning_phase": {"PROVISIONING_PHASE_INDEX_SCAN", "PROVISIONING_PHASE_INDEX_SORT", "PROVISIONING_PHASE_MAIN"}, "resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.provisioning_phase": {"PROVISIONING_PHASE_INDEX_SCAN", "PROVISIONING_PHASE_INDEX_SORT", "PROVISIONING_PHASE_MAIN"}, "resources.synced_database_tables.*.spec.scheduling_policy": {"CONTINUOUS", "SNAPSHOT", "TRIGGERED"}, + "resources.synced_database_tables.*.spec.type_overrides[*].pg_type": {"PG_SPECIFIC_TYPE_VECTOR"}, "resources.synced_database_tables.*.unity_catalog_provisioning_state": {"ACTIVE", "DEGRADED", "DELETING", "FAILED", "PROVISIONING", "UPDATING"}, "resources.vector_search_endpoints.*.endpoint_type": {"STANDARD", "STORAGE_OPTIMIZED"}, diff --git a/bundle/internal/validation/generated/required_fields.go b/bundle/internal/validation/generated/required_fields.go index 1ba87532c4f..46862290d10 100644 --- a/bundle/internal/validation/generated/required_fields.go +++ b/bundle/internal/validation/generated/required_fields.go @@ -233,7 +233,8 @@ var RequiredFields = map[string][]string{ "resources.postgres_roles.*": {"role_id", "parent"}, - "resources.postgres_synced_tables.*": {"synced_table_id"}, + "resources.postgres_synced_tables.*": {"synced_table_id"}, + "resources.postgres_synced_tables.*.type_overrides[*]": {"column_name", "pg_type"}, "resources.quality_monitors.*": {"assets_dir", "output_schema_name", "table_name"}, "resources.quality_monitors.*.custom_metrics[*]": {"definition", "input_columns", "name", "output_data_type", "type"}, @@ -249,7 +250,8 @@ var RequiredFields = map[string][]string{ "resources.sql_warehouses.*.permissions[*]": {"level"}, - "resources.synced_database_tables.*": {"name"}, + "resources.synced_database_tables.*": {"name"}, + "resources.synced_database_tables.*.spec.type_overrides[*]": {"column_name", "pg_type"}, "resources.vector_search_endpoints.*": {"endpoint_type", "name"}, "resources.vector_search_endpoints.*.permissions[*]": {"level"}, diff --git a/bundle/schema/jsonschema.json b/bundle/schema/jsonschema.json index ff126c8bd6e..1afe4321798 100644 --- a/bundle/schema/jsonschema.json +++ b/bundle/schema/jsonschema.json @@ -321,6 +321,10 @@ "description": "The name of the connection to an external data source.", "$ref": "#/$defs/string" }, + "custom_max_retention_hours": { + "description": "[Public Preview] Custom maximum retention period in hours for the catalog", + "$ref": "#/$defs/int64" + }, "grants": { "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/catalog.PrivilegeAssignment" }, @@ -645,7 +649,7 @@ "$ref": "#/$defs/string" }, "database_name": { - "description": "[Public Preview] The name of the database (in a instance) associated with the catalog.", + "description": "[Public Preview] The name of the database (in an instance) associated with the catalog.", "$ref": "#/$defs/string" }, "lifecycle": { @@ -1400,6 +1404,12 @@ "description": "Whether serverless compute is enabled for this pipeline.", "$ref": "#/$defs/bool" }, + "serverless_compute_id": { + "description": "[Private Preview] Serverless compute ID specified by the user for serverless pipelines.", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "storage": { "description": "DBFS root directory for storing checkpoints and tables.", "$ref": "#/$defs/string" @@ -1744,6 +1754,9 @@ { "type": "object", "properties": { + "accelerated_sync": { + "$ref": "#/$defs/bool" + }, "branch": { "$ref": "#/$defs/string" }, @@ -1776,6 +1789,9 @@ }, "timeseries_key": { "$ref": "#/$defs/string" + }, + "type_overrides": { + "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/postgres.SyncedTableSyncedTableSpecTypeOverride" } }, "additionalProperties": false, @@ -1964,6 +1980,10 @@ "description": "User-provided free-form text description.", "$ref": "#/$defs/string" }, + "custom_max_retention_hours": { + "description": "[Public Preview] Custom maximum retention period in hours for the schema.", + "$ref": "#/$defs/int64" + }, "grants": { "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/catalog.PrivilegeAssignment" }, @@ -2098,7 +2118,7 @@ "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/sql.Channel" }, "cluster_size": { - "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large", + "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large\n- Auto", "$ref": "#/$defs/string" }, "creator_name": { @@ -3964,7 +3984,7 @@ "description": "A single telemetry export destination with its configuration and status.", "properties": { "unity_catalog": { - "description": "Unity Catalog Destinations for OTEL telemetry export.", + "description": "[Public Preview] Unity Catalog Destinations for OTEL telemetry export.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/apps.UnityCatalog" } }, @@ -3983,15 +4003,15 @@ "description": "Unity Catalog Destinations for OTEL telemetry export.", "properties": { "logs_table": { - "description": "Unity Catalog table for OTEL logs.", + "description": "[Public Preview] Unity Catalog table for OTEL logs.", "$ref": "#/$defs/string" }, "metrics_table": { - "description": "Unity Catalog table for OTEL metrics.", + "description": "[Public Preview] Unity Catalog table for OTEL metrics.", "$ref": "#/$defs/string" }, "traces_table": { - "description": "Unity Catalog table for OTEL traces (spans).", + "description": "[Public Preview] Unity Catalog table for OTEL traces (spans).", "$ref": "#/$defs/string" } }, @@ -4752,6 +4772,10 @@ "description": "Availability type used for all subsequent nodes past the `first_on_demand` ones.\nNote: If `first_on_demand` is zero, this availability\ntype will be used for the entire cluster.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/compute.AzureAvailability" }, + "capacity_reservation_group": { + "description": "[Public Preview] The Azure capacity reservation group resource ID to use for launching VMs.\nWhen specified, VMs will be launched using the provided capacity reservation.\n\nCapacity reservations can only be specified when the workspace uses injected vnet (i.e. customer defined vnet not\nmanaged by databricks). Ensure the databricks-login-prod Enterprise Application is granted the following four permissions:\n1. Microsoft.Compute/capacityReservationGroups/read\n2. Microsoft.Compute/capacityReservationGroups/deploy/action\n3. Microsoft.Compute/capacityReservationGroups/capacityReservations/read\n4. Microsoft.Compute/capacityReservationGroups/capacityReservations/deploy/action\n\nFormat: `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}`", + "$ref": "#/$defs/string" + }, "first_on_demand": { "description": "The first `first_on_demand` nodes of the cluster will be placed on on-demand instances.\nThis value should be greater than 0, to make sure the cluster driver node is placed on an\non-demand instance. If this value is greater than or equal to the current cluster size, all\nnodes will be placed on on-demand instances. If this value is less than the current cluster\nsize, `first_on_demand` nodes will be placed on on-demand instances and the remainder will\nbe placed on `availability` instances. Note that this value does not affect\ncluster size and cannot currently be mutated over the lifetime of a cluster.", "$ref": "#/$defs/int" @@ -5686,11 +5710,11 @@ "type": "object", "properties": { "key": { - "description": "[Public Preview] The key of the custom tag.", + "description": "[Beta] The key of the custom tag.", "$ref": "#/$defs/string" }, "value": { - "description": "[Public Preview] The value of the custom tag.", + "description": "[Beta] The value of the custom tag.", "$ref": "#/$defs/string" } }, @@ -5934,6 +5958,12 @@ "type": "object", "description": "Specification of a synced database table.", "properties": { + "accelerated_sync": { + "description": "[Private Preview] When true, enables accelerated sync mode for the initial data load.\nThis significantly improves performance for large tables.\nRequires workspace-level enablement.", + "$ref": "#/$defs/bool", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "create_database_objects_if_missing": { "description": "[Public Preview] If true, the synced table's logical database and schema resources in PG\nwill be created if they do not already exist.", "$ref": "#/$defs/bool" @@ -5961,6 +5991,12 @@ "timeseries_key": { "description": "[Public Preview] Time series key to deduplicate (tie-break) rows with the same primary key.", "$ref": "#/$defs/string" + }, + "type_overrides": { + "description": "[Private Preview] Override the default Delta-\u003ePG type mapping for specific columns.\nA TypeOverride with PG_SPECIFIC_TYPE_UNSPECIFIED is rejected; a valid pg_type must be set.", + "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/database.SyncedTableSpecTypeOverride", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true } }, "additionalProperties": false @@ -5971,6 +6007,61 @@ } ] }, + "database.SyncedTableSpecPgSpecificType": { + "oneOf": [ + { + "type": "string", + "description": "PostgreSQL-specific target types that can override the default Delta-to-PG mapping.", + "enum": [ + "PG_SPECIFIC_TYPE_VECTOR" + ], + "enumDescriptions": [ + "[Private Preview]" + ] + }, + { + "type": "string", + "pattern": "\\$\\{(var(\\.\\p{L}+([-_]*[\\p{L}\\p{N}]+)*(\\[[0-9]+\\])*)+)\\}" + } + ] + }, + "database.SyncedTableSpecTypeOverride": { + "oneOf": [ + { + "type": "object", + "description": "Overrides the default Delta-to-PostgreSQL type mapping for a single column.", + "properties": { + "column_name": { + "description": "[Private Preview] Name of the source column whose target PostgreSQL type should be overridden.", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "pg_type": { + "description": "[Private Preview] PostgreSQL-specific target type to use for the column.", + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/database.SyncedTableSpecPgSpecificType", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "size": { + "description": "[Private Preview] Size parameter for the target type. Required when pg_type is PG_SPECIFIC_TYPE_VECTOR\n(specifies the vector dimension, e.g., 1024).", + "$ref": "#/$defs/int", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + } + }, + "additionalProperties": false, + "required": [ + "column_name", + "pg_type" + ] + }, + { + "type": "string", + "pattern": "\\$\\{(var(\\.\\p{L}+([-_]*[\\p{L}\\p{N}]+)*(\\[[0-9]+\\])*)+)\\}" + } + ] + }, "database.SyncedTableState": { "oneOf": [ { @@ -6596,6 +6687,7 @@ "oneOf": [ { "type": "object", + "description": "DEPRECATED — use `AiRuntimeTask` for all new BYOT multi-node GPU\nworkloads (see ai_runtime_task.proto). `AiRuntimeTask` is the only\nsupported BYOT task type for new workloads; this proto is retained only\nfor AIR CLI (fka SGCLI) pywheel backwards compatibility and will be\nremoved once the pywheel → databricks-cli migration completes (post-\nPuPr).", "properties": { "command": { "description": "[Private Preview] Command launcher to run the actual script, e.g. bash, python etc.", @@ -8176,7 +8268,7 @@ "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.ForEachTask" }, "gen_ai_compute_task": { - "description": "[Private Preview]", + "description": "[Private Preview] DEPRECATED — use `AiRuntimeTask` for all new BYOT multi-node GPU\nworkloads (see ai_runtime_task.proto). `AiRuntimeTask` is the only\nsupported BYOT task type for new workloads; this proto is retained only\nfor AIR CLI (fka SGCLI) pywheel backwards compatibility and will be\nremoved once the pywheel → databricks-cli migration completes (post-\nPuPr).", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.GenAiComputeTask", "x-databricks-launch-stage": "PRIVATE_PREVIEW", "doNotSuggest": true @@ -9585,36 +9677,48 @@ "description": "Meta Marketing (Meta Ads) specific options for ingestion", "properties": { "action_attribution_windows": { - "description": "[Beta] (Optional) Action attribution windows for insights reporting (e.g. \"28d_click\", \"1d_view\")", - "$ref": "#/$defs/slice/string" + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.action_attribution_windows) Action attribution\nwindows for insights reporting (e.g. \"28d_click\", \"1d_view\")", + "$ref": "#/$defs/slice/string", + "deprecationMessage": "This field is deprecated", + "deprecated": true }, "action_breakdowns": { - "description": "[Beta] (Optional) Action breakdowns to configure for data aggregation", - "$ref": "#/$defs/slice/string" + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.action_breakdowns) Action breakdowns", + "$ref": "#/$defs/slice/string", + "deprecationMessage": "This field is deprecated", + "deprecated": true }, "action_report_time": { - "description": "[Beta] (Optional) Timing used to report action statistics (impression, conversion, mixed, or lifetime)", - "$ref": "#/$defs/string" + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.action_report_time) Timing used to report\naction statistics (impression, conversion, mixed, or lifetime)", + "$ref": "#/$defs/string", + "deprecationMessage": "This field is deprecated", + "deprecated": true }, "breakdowns": { - "description": "[Beta] (Optional) Breakdowns to configure for data aggregation", - "$ref": "#/$defs/slice/string" + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.breakdowns) Breakdowns to configure", + "$ref": "#/$defs/slice/string", + "deprecationMessage": "This field is deprecated", + "deprecated": true }, "custom_insights_lookback_window": { - "description": "[Beta] (Optional) Window in days to revisit data during sync to capture\nupdated conversion data from the API.", + "description": "[Beta] (Optional) Window in days to revisit data during sync to capture\nupdated conversion data from the API, shared by prebuilt and custom reports.", "$ref": "#/$defs/int" }, "level": { - "description": "[Beta] (Optional) Granularity of data to pull (account, ad, adset, campaign)", - "$ref": "#/$defs/string" + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.level) Granularity of data to pull\n(account, ad, adset, campaign)", + "$ref": "#/$defs/string", + "deprecationMessage": "This field is deprecated", + "deprecated": true }, "start_date": { - "description": "[Beta] (Optional) Start date in yyyy-MM-dd format (e.g. 2025-01-15). Data added\nafter this date will be ingested", + "description": "[Beta] (Optional) Start date in yyyy-MM-dd format (e.g. 2025-01-15). Data added\nafter this date will be ingested, shared by prebuilt and custom reports.", "$ref": "#/$defs/string" }, "time_increment": { - "description": "[Beta] (Optional) Value in string by which to aggregate statistics (can take all_days, monthly or number of days)", - "$ref": "#/$defs/string" + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.time_increment) Value in string by which to\naggregate statistics (can take all_days, monthly or number of days)", + "$ref": "#/$defs/string", + "deprecationMessage": "This field is deprecated", + "deprecated": true } }, "additionalProperties": false @@ -10471,6 +10575,18 @@ "description": "[Public Preview] (Optional, Mutable) Policy for auto full refresh, if enabled pipeline will automatically try\nto fix issues by doing a full refresh on the table in the retry run. auto_full_refresh_policy\nin table configuration will override the above level auto_full_refresh_policy.\nFor example,\n{\n\"auto_full_refresh_policy\": {\n\"enabled\": true,\n\"min_interval_hours\": 23,\n}\n}\nIf unspecified, auto full refresh is disabled.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.AutoFullRefreshPolicy" }, + "clustering_columns": { + "description": "[Private Preview] List of column names to use for clustering the destination table.\nWhen specified, the destination Delta table will be clustered by these columns.\nThis can improve query performance when filtering on these columns.\nNote: clustering_columns in table specific configuration will override the pipeline definition.\nNote: we can only provide enable_auto_clustering or clustering_columns,\nadded as separate fields as we cannot have repeated field in oneof.", + "$ref": "#/$defs/slice/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "enable_auto_clustering": { + "description": "[Private Preview] Whether to enable auto clustering on the destination table.\nWhen enabled, Delta will automatically optimize the data layout\nbased on the clustering columns for improved query performance.\nNote: enable_auto_clustering in table specific configuration will override the pipeline definition.\nNote: we can only provide enable_auto_clustering or clustering_columns,\nadded as separate fields as we cannot have repeated field in oneof.", + "$ref": "#/$defs/bool", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "exclude_columns": { "description": "[Public Preview] A list of column names to be excluded for the ingestion.\nWhen not specified, include_columns fully controls what columns to be ingested.\nWhen specified, all other columns including future ones will be automatically included for ingestion.\nThis field in mutually exclusive with `include_columns`.", "$ref": "#/$defs/slice/string" @@ -10505,6 +10621,12 @@ "description": "[Public Preview] The column names specifying the logical order of events in the source data. Spark Declarative Pipelines uses this sequencing to handle change events that arrive out of order.", "$ref": "#/$defs/slice/string" }, + "table_properties": { + "description": "[Private Preview] Table properties to set on the destination table.\nThese are key-value pairs that configure various Delta table behaviors or any user defined properties.\nExample: {\"delta.feature.variantType\": \"supported\", \"delta.enableTypeWidening\": \"true\"}\nNote: table_properties in table specific configuration will override the table_properties of the pipeline definition.", + "$ref": "#/$defs/map/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "workday_report_parameters": { "description": "[Private Preview] (Optional) Additional custom parameters for Workday Report", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.IngestionPipelineDefinitionWorkdayReportParameters", @@ -10549,43 +10671,53 @@ "description": "TikTok Ads specific options for ingestion", "properties": { "data_level": { - "description": "[Private Preview] (Optional) Data level for the report.\nIf not specified, defaults to AUCTION_CAMPAIGN.", + "description": "[Private Preview] Deprecated. Use custom_report_options.data_level instead.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.TikTokAdsOptionsTikTokDataLevel", "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "deprecationMessage": "This field is deprecated", + "doNotSuggest": true, + "deprecated": true }, "dimensions": { - "description": "[Private Preview] (Optional) Dimensions to include in the report.\nExamples: \"campaign_id\", \"adgroup_id\", \"ad_id\", \"stat_time_day\", \"stat_time_hour\"\nIf not specified, defaults to campaign_id.", + "description": "[Private Preview] Deprecated. Use custom_report_options.dimensions instead.", "$ref": "#/$defs/slice/string", "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "deprecationMessage": "This field is deprecated", + "doNotSuggest": true, + "deprecated": true }, "lookback_window_days": { - "description": "[Private Preview] (Optional) Number of days to look back for report tables during incremental sync\nto capture late-arriving conversions and attribution data.\nIf not specified, defaults to 7 days.", + "description": "[Private Preview] (Optional) Number of days to look back for report tables during incremental sync\nto capture late-arriving conversions and attribution data.", "$ref": "#/$defs/int", "x-databricks-launch-stage": "PRIVATE_PREVIEW", "doNotSuggest": true }, "metrics": { - "description": "[Private Preview] (Optional) Metrics to include in the report.\nExamples: \"spend\", \"impressions\", \"clicks\", \"conversion\", \"cpc\"\nIf not specified, defaults to basic metrics (spend, impressions, clicks, etc.)", + "description": "[Private Preview] Deprecated. Use custom_report_options.metrics instead.", "$ref": "#/$defs/slice/string", "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "deprecationMessage": "This field is deprecated", + "doNotSuggest": true, + "deprecated": true }, "query_lifetime": { - "description": "[Private Preview] (Optional) Whether to request lifetime metrics (all-time aggregated data).\nWhen true, the report returns all-time data.\nIf not specified, defaults to false.", + "description": "[Private Preview] Deprecated. Use custom_report_options.query_lifetime instead.", "$ref": "#/$defs/bool", "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "deprecationMessage": "This field is deprecated", + "doNotSuggest": true, + "deprecated": true }, "report_type": { - "description": "[Private Preview] (Optional) Report type for the TikTok Ads API.\nIf not specified, defaults to BASIC.", + "description": "[Private Preview] Deprecated. Use custom_report_options.report_type instead.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.TikTokAdsOptionsTikTokReportType", "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "deprecationMessage": "This field is deprecated", + "doNotSuggest": true, + "deprecated": true }, "sync_start_date": { - "description": "[Private Preview] (Optional) Start date for the initial sync of report tables in YYYY-MM-DD format.\nThis determines the earliest date from which to sync historical data.\nIf not specified, defaults to 1 year of historical data for daily reports\nand 30 days for hourly reports.", + "description": "[Private Preview] (Optional) Start date for the initial sync of report tables in YYYY-MM-DD format.\nThis determines the earliest date from which to sync historical data.", "$ref": "#/$defs/string", "x-databricks-launch-stage": "PRIVATE_PREVIEW", "doNotSuggest": true @@ -10959,6 +11091,24 @@ } ] }, + "postgres.SyncedTableSyncedTableSpecPgSpecificType": { + "oneOf": [ + { + "type": "string", + "description": "PostgreSQL-specific target types that can override the default Delta-to-PG mapping.", + "enum": [ + "PG_SPECIFIC_TYPE_VECTOR" + ], + "enumDescriptions": [ + "[Private Preview]" + ] + }, + { + "type": "string", + "pattern": "\\$\\{(var(\\.\\p{L}+([-_]*[\\p{L}\\p{N}]+)*(\\[[0-9]+\\])*)+)\\}" + } + ] + }, "postgres.SyncedTableSyncedTableSpecSyncedTableSchedulingPolicy": { "oneOf": [ { @@ -10981,6 +11131,43 @@ } ] }, + "postgres.SyncedTableSyncedTableSpecTypeOverride": { + "oneOf": [ + { + "type": "object", + "description": "Overrides the default Delta-to-PostgreSQL type mapping for a single column.", + "properties": { + "column_name": { + "description": "[Private Preview] Name of the source column whose target PostgreSQL type should be overridden.", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "pg_type": { + "description": "[Private Preview] PostgreSQL-specific target type to use for the column.", + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.SyncedTableSyncedTableSpecPgSpecificType", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "size": { + "description": "[Private Preview] Size parameter for the target type. Required when pg_type is PG_SPECIFIC_TYPE_VECTOR\n(specifies the vector dimension, e.g., 1024).", + "$ref": "#/$defs/int", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + } + }, + "additionalProperties": false, + "required": [ + "column_name", + "pg_type" + ] + }, + { + "type": "string", + "pattern": "\\$\\{(var(\\.\\p{L}+([-_]*[\\p{L}\\p{N}]+)*(\\[[0-9]+\\])*)+)\\}" + } + ] + }, "serving.Ai21LabsConfig": { "oneOf": [ { @@ -12074,7 +12261,7 @@ "oneOf": [ { "type": "string", - "description": "Please keep this in sync with with workload types in InferenceEndpointEntities.scala", + "description": "Please keep this in sync with workload types in InferenceEndpointEntities.scala.", "enum": [ "CPU", "GPU_MEDIUM", @@ -12119,7 +12306,7 @@ "oneOf": [ { "type": "string", - "description": "Please keep this in sync with with workload types in InferenceEndpointEntities.scala", + "description": "Please keep this in sync with workload types in InferenceEndpointEntities.scala.", "enum": [ "CPU", "GPU_MEDIUM", @@ -12595,7 +12782,7 @@ "oneOf": [ { "type": "string", - "description": "EndpointSpotInstancePolicy configures whether the endpoint should use spot\ninstances.\n\nThe breakdown of how the EndpointSpotInstancePolicy converts to per cloud\nconfigurations is:\n\n+-------+--------------------------------------+--------------------------------+\n| Cloud | COST_OPTIMIZED | RELIABILITY_OPTIMIZED |\n+-------+--------------------------------------+--------------------------------+\n| AWS | On Demand Driver with Spot Executors | On Demand Driver and\nExecutors | | AZURE | On Demand Driver and Executors | On Demand Driver\nand Executors |\n+-------+--------------------------------------+--------------------------------+\n\nWhile including \"spot\" in the enum name may limit the the future\nextensibility of this field because it limits this enum to denoting \"spot or\nnot\", this is the field that PM recommends after discussion with customers\nper SC-48783.", + "description": "EndpointSpotInstancePolicy configures whether the endpoint should use spot\ninstances.\n\nThe breakdown of how the EndpointSpotInstancePolicy converts to per cloud\nconfigurations is:\n\n+-------+--------------------------------------+--------------------------------+\n| Cloud | COST_OPTIMIZED | RELIABILITY_OPTIMIZED |\n+-------+--------------------------------------+--------------------------------+\n| AWS | On Demand Driver with Spot Executors | On Demand Driver and\nExecutors | | AZURE | On Demand Driver and Executors | On Demand Driver\nand Executors |\n+-------+--------------------------------------+--------------------------------+", "enum": [ "POLICY_UNSPECIFIED", "COST_OPTIMIZED", @@ -12751,10 +12938,6 @@ "enum": [ "STORAGE_OPTIMIZED", "STANDARD" - ], - "enumDescriptions": [ - "[Public Preview]", - "" ] }, { @@ -13790,6 +13973,20 @@ } ] }, + "database.SyncedTableSpecTypeOverride": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/database.SyncedTableSpecTypeOverride" + } + }, + { + "type": "string", + "pattern": "\\$\\{(var(\\.\\p{L}+([-_]*[\\p{L}\\p{N}]+)*(\\[[0-9]+\\])*)+)\\}" + } + ] + }, "jobs.AlertTaskSubscriber": { "oneOf": [ { @@ -14126,6 +14323,20 @@ } ] }, + "postgres.SyncedTableSyncedTableSpecTypeOverride": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.SyncedTableSyncedTableSpecTypeOverride" + } + }, + { + "type": "string", + "pattern": "\\$\\{(var(\\.\\p{L}+([-_]*[\\p{L}\\p{N}]+)*(\\[[0-9]+\\])*)+)\\}" + } + ] + }, "serving.AiGatewayRateLimit": { "oneOf": [ { diff --git a/bundle/schema/jsonschema_for_docs.json b/bundle/schema/jsonschema_for_docs.json index 526327f4b2c..68b01662512 100644 --- a/bundle/schema/jsonschema_for_docs.json +++ b/bundle/schema/jsonschema_for_docs.json @@ -264,6 +264,10 @@ "$ref": "#/$defs/string", "x-since-version": "v0.287.0" }, + "custom_max_retention_hours": { + "description": "[Public Preview] Custom maximum retention period in hours for the catalog", + "$ref": "#/$defs/int64" + }, "grants": { "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/catalog.PrivilegeAssignment", "x-since-version": "v0.287.0" @@ -623,7 +627,7 @@ "x-since-version": "v0.265.0" }, "database_name": { - "description": "[Public Preview] The name of the database (in a instance) associated with the catalog.", + "description": "[Public Preview] The name of the database (in an instance) associated with the catalog.", "$ref": "#/$defs/string", "x-since-version": "v0.265.0" }, @@ -1389,6 +1393,12 @@ "$ref": "#/$defs/bool", "x-since-version": "v0.229.0" }, + "serverless_compute_id": { + "description": "[Private Preview] Serverless compute ID specified by the user for serverless pipelines.", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "storage": { "description": "DBFS root directory for storing checkpoints and tables.", "$ref": "#/$defs/string", @@ -1537,19 +1547,24 @@ "type": "object", "properties": { "database_id": { - "$ref": "#/$defs/string" + "$ref": "#/$defs/string", + "x-since-version": "v1.4.0" }, "lifecycle": { - "$ref": "#/$defs/github.com/databricks/cli/bundle/config/resources.Lifecycle" + "$ref": "#/$defs/github.com/databricks/cli/bundle/config/resources.Lifecycle", + "x-since-version": "v1.4.0" }, "parent": { - "$ref": "#/$defs/string" + "$ref": "#/$defs/string", + "x-since-version": "v1.4.0" }, "postgres_database": { - "$ref": "#/$defs/string" + "$ref": "#/$defs/string", + "x-since-version": "v1.4.0" }, "role": { - "$ref": "#/$defs/string" + "$ref": "#/$defs/string", + "x-since-version": "v1.4.0" } }, "additionalProperties": false, @@ -1679,34 +1694,42 @@ "properties": { "attributes": { "description": "The desired API-exposed Postgres role attributes to associate with the role.", - "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.RoleAttributes" + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.RoleAttributes", + "x-since-version": "v1.4.0" }, "auth_method": { "description": "How the role is authenticated when connecting to Postgres. If left unspecified, a meaningful authentication method is derived from the identity_type.", - "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.RoleAuthMethod" + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.RoleAuthMethod", + "x-since-version": "v1.4.0" }, "identity_type": { "description": "The type of the Databricks managed identity that this Role represents. Leave empty to create a regular Postgres role not associated with a Databricks identity.", - "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.RoleIdentityType" + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.RoleIdentityType", + "x-since-version": "v1.4.0" }, "lifecycle": { - "$ref": "#/$defs/github.com/databricks/cli/bundle/config/resources.Lifecycle" + "$ref": "#/$defs/github.com/databricks/cli/bundle/config/resources.Lifecycle", + "x-since-version": "v1.4.0" }, "membership_roles": { "description": "Standard roles that this role is a member of.", - "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/postgres.RoleMembershipRole" + "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/postgres.RoleMembershipRole", + "x-since-version": "v1.4.0" }, "parent": { "description": "The branch where this role is created. Format projects/{project_id}/branches/{branch_id}.", - "$ref": "#/$defs/string" + "$ref": "#/$defs/string", + "x-since-version": "v1.4.0" }, "postgres_role": { "description": "The name of the Postgres role. Required when creating the role.", - "$ref": "#/$defs/string" + "$ref": "#/$defs/string", + "x-since-version": "v1.4.0" }, "role_id": { "description": "The user-specified role ID; becomes the final component of the role's resource name. Must be 4-63 characters, lowercase letters, numbers, and hyphens (RFC 1123).", - "$ref": "#/$defs/string" + "$ref": "#/$defs/string", + "x-since-version": "v1.4.0" } }, "additionalProperties": false, @@ -1718,6 +1741,9 @@ "resources.PostgresSyncedTable": { "type": "object", "properties": { + "accelerated_sync": { + "$ref": "#/$defs/bool" + }, "branch": { "$ref": "#/$defs/string", "x-since-version": "v1.0.0" @@ -1761,6 +1787,9 @@ "timeseries_key": { "$ref": "#/$defs/string", "x-since-version": "v1.0.0" + }, + "type_overrides": { + "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/postgres.SyncedTableSyncedTableSpecTypeOverride" } }, "additionalProperties": false, @@ -1959,6 +1988,10 @@ "$ref": "#/$defs/string", "x-since-version": "v0.229.0" }, + "custom_max_retention_hours": { + "description": "[Public Preview] Custom maximum retention period in hours for the schema.", + "$ref": "#/$defs/int64" + }, "grants": { "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/catalog.PrivilegeAssignment", "x-since-version": "v0.229.0" @@ -2077,7 +2110,7 @@ "x-since-version": "v0.260.0" }, "cluster_size": { - "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large", + "description": "Size of the clusters allocated for this warehouse.\nIncreasing the size of a spark cluster allows you to run larger queries on\nit. If you want to increase the number of concurrent queries, please tune\nmax_num_clusters.\n\nSupported values:\n- 2X-Small\n- X-Small\n- Small\n- Medium\n- Large\n- X-Large\n- 2X-Large\n- 3X-Large\n- 4X-Large\n- 5X-Large\n- Auto", "$ref": "#/$defs/string", "x-since-version": "v0.260.0" }, @@ -2848,7 +2881,8 @@ "x-since-version": "v1.0.0" }, "postgres_databases": { - "$ref": "#/$defs/map/github.com/databricks/cli/bundle/config/resources.PostgresDatabase" + "$ref": "#/$defs/map/github.com/databricks/cli/bundle/config/resources.PostgresDatabase", + "x-since-version": "v1.4.0" }, "postgres_endpoints": { "$ref": "#/$defs/map/github.com/databricks/cli/bundle/config/resources.PostgresEndpoint", @@ -2859,7 +2893,8 @@ "x-since-version": "v0.287.0" }, "postgres_roles": { - "$ref": "#/$defs/map/github.com/databricks/cli/bundle/config/resources.PostgresRole" + "$ref": "#/$defs/map/github.com/databricks/cli/bundle/config/resources.PostgresRole", + "x-since-version": "v1.4.0" }, "postgres_synced_tables": { "description": "The Postgres synced table definitions for the bundle, where each key is the name of the synced table. Each entry continuously replicates a Unity Catalog Delta source table into a Postgres table on a Lakebase Autoscaling instance.", @@ -3690,7 +3725,7 @@ "description": "A single telemetry export destination with its configuration and status.", "properties": { "unity_catalog": { - "description": "Unity Catalog Destinations for OTEL telemetry export.", + "description": "[Public Preview] Unity Catalog Destinations for OTEL telemetry export.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/apps.UnityCatalog", "x-since-version": "v0.294.0" } @@ -3702,17 +3737,17 @@ "description": "Unity Catalog Destinations for OTEL telemetry export.", "properties": { "logs_table": { - "description": "Unity Catalog table for OTEL logs.", + "description": "[Public Preview] Unity Catalog table for OTEL logs.", "$ref": "#/$defs/string", "x-since-version": "v0.294.0" }, "metrics_table": { - "description": "Unity Catalog table for OTEL metrics.", + "description": "[Public Preview] Unity Catalog table for OTEL metrics.", "$ref": "#/$defs/string", "x-since-version": "v0.294.0" }, "traces_table": { - "description": "Unity Catalog table for OTEL traces (spans).", + "description": "[Public Preview] Unity Catalog table for OTEL traces (spans).", "$ref": "#/$defs/string", "x-since-version": "v0.294.0" } @@ -4305,6 +4340,10 @@ "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/compute.AzureAvailability", "x-since-version": "v0.229.0" }, + "capacity_reservation_group": { + "description": "[Public Preview] The Azure capacity reservation group resource ID to use for launching VMs.\nWhen specified, VMs will be launched using the provided capacity reservation.\n\nCapacity reservations can only be specified when the workspace uses injected vnet (i.e. customer defined vnet not\nmanaged by databricks). Ensure the databricks-login-prod Enterprise Application is granted the following four permissions:\n1. Microsoft.Compute/capacityReservationGroups/read\n2. Microsoft.Compute/capacityReservationGroups/deploy/action\n3. Microsoft.Compute/capacityReservationGroups/capacityReservations/read\n4. Microsoft.Compute/capacityReservationGroups/capacityReservations/deploy/action\n\nFormat: `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}`", + "$ref": "#/$defs/string" + }, "first_on_demand": { "description": "The first `first_on_demand` nodes of the cluster will be placed on on-demand instances.\nThis value should be greater than 0, to make sure the cluster driver node is placed on an\non-demand instance. If this value is greater than or equal to the current cluster size, all\nnodes will be placed on on-demand instances. If this value is less than the current cluster\nsize, `first_on_demand` nodes will be placed on on-demand instances and the remainder will\nbe placed on `availability` instances. Note that this value does not affect\ncluster size and cannot currently be mutated over the lifetime of a cluster.", "$ref": "#/$defs/int", @@ -5079,12 +5118,12 @@ "type": "object", "properties": { "key": { - "description": "[Public Preview] The key of the custom tag.", + "description": "[Beta] The key of the custom tag.", "$ref": "#/$defs/string", "x-since-version": "v0.273.0" }, "value": { - "description": "[Public Preview] The value of the custom tag.", + "description": "[Beta] The value of the custom tag.", "$ref": "#/$defs/string", "x-since-version": "v0.273.0" } @@ -5231,6 +5270,12 @@ "type": "object", "description": "Specification of a synced database table.", "properties": { + "accelerated_sync": { + "description": "[Private Preview] When true, enables accelerated sync mode for the initial data load.\nThis significantly improves performance for large tables.\nRequires workspace-level enablement.", + "$ref": "#/$defs/bool", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "create_database_objects_if_missing": { "description": "[Public Preview] If true, the synced table's logical database and schema resources in PG\nwill be created if they do not already exist.", "$ref": "#/$defs/bool", @@ -5265,10 +5310,55 @@ "description": "[Public Preview] Time series key to deduplicate (tie-break) rows with the same primary key.", "$ref": "#/$defs/string", "x-since-version": "v0.266.0" + }, + "type_overrides": { + "description": "[Private Preview] Override the default Delta-\u003ePG type mapping for specific columns.\nA TypeOverride with PG_SPECIFIC_TYPE_UNSPECIFIED is rejected; a valid pg_type must be set.", + "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/database.SyncedTableSpecTypeOverride", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true } }, "additionalProperties": false }, + "database.SyncedTableSpecPgSpecificType": { + "type": "string", + "description": "PostgreSQL-specific target types that can override the default Delta-to-PG mapping.", + "enum": [ + "PG_SPECIFIC_TYPE_VECTOR" + ], + "enumDescriptions": [ + "[Private Preview]" + ] + }, + "database.SyncedTableSpecTypeOverride": { + "type": "object", + "description": "Overrides the default Delta-to-PostgreSQL type mapping for a single column.", + "properties": { + "column_name": { + "description": "[Private Preview] Name of the source column whose target PostgreSQL type should be overridden.", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "pg_type": { + "description": "[Private Preview] PostgreSQL-specific target type to use for the column.", + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/database.SyncedTableSpecPgSpecificType", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "size": { + "description": "[Private Preview] Size parameter for the target type. Required when pg_type is PG_SPECIFIC_TYPE_VECTOR\n(specifies the vector dimension, e.g., 1024).", + "$ref": "#/$defs/int", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + } + }, + "additionalProperties": false, + "required": [ + "column_name", + "pg_type" + ] + }, "database.SyncedTableState": { "type": "string", "description": "The state of a synced table.", @@ -5763,6 +5853,7 @@ }, "jobs.GenAiComputeTask": { "type": "object", + "description": "DEPRECATED — use `AiRuntimeTask` for all new BYOT multi-node GPU\nworkloads (see ai_runtime_task.proto). `AiRuntimeTask` is the only\nsupported BYOT task type for new workloads; this proto is retained only\nfor AIR CLI (fka SGCLI) pywheel backwards compatibility and will be\nremoved once the pywheel → databricks-cli migration completes (post-\nPuPr).", "properties": { "command": { "description": "[Private Preview] Command launcher to run the actual script, e.g. bash, python etc.", @@ -7068,7 +7159,7 @@ "x-since-version": "v0.229.0" }, "gen_ai_compute_task": { - "description": "[Private Preview]", + "description": "[Private Preview] DEPRECATED — use `AiRuntimeTask` for all new BYOT multi-node GPU\nworkloads (see ai_runtime_task.proto). `AiRuntimeTask` is the only\nsupported BYOT task type for new workloads; this proto is retained only\nfor AIR CLI (fka SGCLI) pywheel backwards compatibility and will be\nremoved once the pywheel → databricks-cli migration completes (post-\nPuPr).", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.GenAiComputeTask", "x-databricks-launch-stage": "PRIVATE_PREVIEW", "doNotSuggest": true, @@ -8269,44 +8360,56 @@ "description": "Meta Marketing (Meta Ads) specific options for ingestion", "properties": { "action_attribution_windows": { - "description": "[Beta] (Optional) Action attribution windows for insights reporting (e.g. \"28d_click\", \"1d_view\")", + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.action_attribution_windows) Action attribution\nwindows for insights reporting (e.g. \"28d_click\", \"1d_view\")", "$ref": "#/$defs/slice/string", - "x-since-version": "v0.299.2" + "deprecationMessage": "This field is deprecated", + "x-since-version": "v0.299.2", + "deprecated": true }, "action_breakdowns": { - "description": "[Beta] (Optional) Action breakdowns to configure for data aggregation", + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.action_breakdowns) Action breakdowns", "$ref": "#/$defs/slice/string", - "x-since-version": "v0.299.2" + "deprecationMessage": "This field is deprecated", + "x-since-version": "v0.299.2", + "deprecated": true }, "action_report_time": { - "description": "[Beta] (Optional) Timing used to report action statistics (impression, conversion, mixed, or lifetime)", + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.action_report_time) Timing used to report\naction statistics (impression, conversion, mixed, or lifetime)", "$ref": "#/$defs/string", - "x-since-version": "v0.299.2" + "deprecationMessage": "This field is deprecated", + "x-since-version": "v0.299.2", + "deprecated": true }, "breakdowns": { - "description": "[Beta] (Optional) Breakdowns to configure for data aggregation", + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.breakdowns) Breakdowns to configure", "$ref": "#/$defs/slice/string", - "x-since-version": "v0.299.2" + "deprecationMessage": "This field is deprecated", + "x-since-version": "v0.299.2", + "deprecated": true }, "custom_insights_lookback_window": { - "description": "[Beta] (Optional) Window in days to revisit data during sync to capture\nupdated conversion data from the API.", + "description": "[Beta] (Optional) Window in days to revisit data during sync to capture\nupdated conversion data from the API, shared by prebuilt and custom reports.", "$ref": "#/$defs/int", "x-since-version": "v0.299.2" }, "level": { - "description": "[Beta] (Optional) Granularity of data to pull (account, ad, adset, campaign)", + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.level) Granularity of data to pull\n(account, ad, adset, campaign)", "$ref": "#/$defs/string", - "x-since-version": "v0.299.2" + "deprecationMessage": "This field is deprecated", + "x-since-version": "v0.299.2", + "deprecated": true }, "start_date": { - "description": "[Beta] (Optional) Start date in yyyy-MM-dd format (e.g. 2025-01-15). Data added\nafter this date will be ingested", + "description": "[Beta] (Optional) Start date in yyyy-MM-dd format (e.g. 2025-01-15). Data added\nafter this date will be ingested, shared by prebuilt and custom reports.", "$ref": "#/$defs/string", "x-since-version": "v0.299.2" }, "time_increment": { - "description": "[Beta] (Optional) Value in string by which to aggregate statistics (can take all_days, monthly or number of days)", + "description": "[Beta] (Optional, DEPRECATED — use custom_report_options.time_increment) Value in string by which to\naggregate statistics (can take all_days, monthly or number of days)", "$ref": "#/$defs/string", - "x-since-version": "v0.299.2" + "deprecationMessage": "This field is deprecated", + "x-since-version": "v0.299.2", + "deprecated": true } }, "additionalProperties": false @@ -9026,6 +9129,18 @@ "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.AutoFullRefreshPolicy", "x-since-version": "v0.285.0" }, + "clustering_columns": { + "description": "[Private Preview] List of column names to use for clustering the destination table.\nWhen specified, the destination Delta table will be clustered by these columns.\nThis can improve query performance when filtering on these columns.\nNote: clustering_columns in table specific configuration will override the pipeline definition.\nNote: we can only provide enable_auto_clustering or clustering_columns,\nadded as separate fields as we cannot have repeated field in oneof.", + "$ref": "#/$defs/slice/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "enable_auto_clustering": { + "description": "[Private Preview] Whether to enable auto clustering on the destination table.\nWhen enabled, Delta will automatically optimize the data layout\nbased on the clustering columns for improved query performance.\nNote: enable_auto_clustering in table specific configuration will override the pipeline definition.\nNote: we can only provide enable_auto_clustering or clustering_columns,\nadded as separate fields as we cannot have repeated field in oneof.", + "$ref": "#/$defs/bool", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "exclude_columns": { "description": "[Public Preview] A list of column names to be excluded for the ingestion.\nWhen not specified, include_columns fully controls what columns to be ingested.\nWhen specified, all other columns including future ones will be automatically included for ingestion.\nThis field in mutually exclusive with `include_columns`.", "$ref": "#/$defs/slice/string", @@ -9068,6 +9183,12 @@ "$ref": "#/$defs/slice/string", "x-since-version": "v0.231.0" }, + "table_properties": { + "description": "[Private Preview] Table properties to set on the destination table.\nThese are key-value pairs that configure various Delta table behaviors or any user defined properties.\nExample: {\"delta.feature.variantType\": \"supported\", \"delta.enableTypeWidening\": \"true\"}\nNote: table_properties in table specific configuration will override the table_properties of the pipeline definition.", + "$ref": "#/$defs/map/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "workday_report_parameters": { "description": "[Private Preview] (Optional) Additional custom parameters for Workday Report", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.IngestionPipelineDefinitionWorkdayReportParameters", @@ -9097,49 +9218,59 @@ "description": "TikTok Ads specific options for ingestion", "properties": { "data_level": { - "description": "[Private Preview] (Optional) Data level for the report.\nIf not specified, defaults to AUCTION_CAMPAIGN.", + "description": "[Private Preview] Deprecated. Use custom_report_options.data_level instead.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.TikTokAdsOptionsTikTokDataLevel", "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "deprecationMessage": "This field is deprecated", "doNotSuggest": true, - "x-since-version": "v0.298.0" + "x-since-version": "v0.298.0", + "deprecated": true }, "dimensions": { - "description": "[Private Preview] (Optional) Dimensions to include in the report.\nExamples: \"campaign_id\", \"adgroup_id\", \"ad_id\", \"stat_time_day\", \"stat_time_hour\"\nIf not specified, defaults to campaign_id.", + "description": "[Private Preview] Deprecated. Use custom_report_options.dimensions instead.", "$ref": "#/$defs/slice/string", "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "deprecationMessage": "This field is deprecated", "doNotSuggest": true, - "x-since-version": "v0.298.0" + "x-since-version": "v0.298.0", + "deprecated": true }, "lookback_window_days": { - "description": "[Private Preview] (Optional) Number of days to look back for report tables during incremental sync\nto capture late-arriving conversions and attribution data.\nIf not specified, defaults to 7 days.", + "description": "[Private Preview] (Optional) Number of days to look back for report tables during incremental sync\nto capture late-arriving conversions and attribution data.", "$ref": "#/$defs/int", "x-databricks-launch-stage": "PRIVATE_PREVIEW", "doNotSuggest": true, "x-since-version": "v0.298.0" }, "metrics": { - "description": "[Private Preview] (Optional) Metrics to include in the report.\nExamples: \"spend\", \"impressions\", \"clicks\", \"conversion\", \"cpc\"\nIf not specified, defaults to basic metrics (spend, impressions, clicks, etc.)", + "description": "[Private Preview] Deprecated. Use custom_report_options.metrics instead.", "$ref": "#/$defs/slice/string", "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "deprecationMessage": "This field is deprecated", "doNotSuggest": true, - "x-since-version": "v0.298.0" + "x-since-version": "v0.298.0", + "deprecated": true }, "query_lifetime": { - "description": "[Private Preview] (Optional) Whether to request lifetime metrics (all-time aggregated data).\nWhen true, the report returns all-time data.\nIf not specified, defaults to false.", + "description": "[Private Preview] Deprecated. Use custom_report_options.query_lifetime instead.", "$ref": "#/$defs/bool", "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "deprecationMessage": "This field is deprecated", "doNotSuggest": true, - "x-since-version": "v0.298.0" + "x-since-version": "v0.298.0", + "deprecated": true }, "report_type": { - "description": "[Private Preview] (Optional) Report type for the TikTok Ads API.\nIf not specified, defaults to BASIC.", + "description": "[Private Preview] Deprecated. Use custom_report_options.report_type instead.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.TikTokAdsOptionsTikTokReportType", "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "deprecationMessage": "This field is deprecated", "doNotSuggest": true, - "x-since-version": "v0.298.0" + "x-since-version": "v0.298.0", + "deprecated": true }, "sync_start_date": { - "description": "[Private Preview] (Optional) Start date for the initial sync of report tables in YYYY-MM-DD format.\nThis determines the earliest date from which to sync historical data.\nIf not specified, defaults to 1 year of historical data for daily reports\nand 30 days for hourly reports.", + "description": "[Private Preview] (Optional) Start date for the initial sync of report tables in YYYY-MM-DD format.\nThis determines the earliest date from which to sync historical data.", "$ref": "#/$defs/string", "x-databricks-launch-stage": "PRIVATE_PREVIEW", "doNotSuggest": true, @@ -9354,15 +9485,18 @@ "properties": { "bypassrls": { "description": "[Beta]", - "$ref": "#/$defs/bool" + "$ref": "#/$defs/bool", + "x-since-version": "v1.4.0" }, "createdb": { "description": "[Beta]", - "$ref": "#/$defs/bool" + "$ref": "#/$defs/bool", + "x-since-version": "v1.4.0" }, "createrole": { "description": "[Beta]", - "$ref": "#/$defs/bool" + "$ref": "#/$defs/bool", + "x-since-version": "v1.4.0" } }, "additionalProperties": false @@ -9405,6 +9539,16 @@ "[Beta]" ] }, + "postgres.SyncedTableSyncedTableSpecPgSpecificType": { + "type": "string", + "description": "PostgreSQL-specific target types that can override the default Delta-to-PG mapping.", + "enum": [ + "PG_SPECIFIC_TYPE_VECTOR" + ], + "enumDescriptions": [ + "[Private Preview]" + ] + }, "postgres.SyncedTableSyncedTableSpecSyncedTableSchedulingPolicy": { "type": "string", "description": "Scheduling policy of the synced table's underlying pipeline.", @@ -9419,6 +9563,35 @@ "[Beta]" ] }, + "postgres.SyncedTableSyncedTableSpecTypeOverride": { + "type": "object", + "description": "Overrides the default Delta-to-PostgreSQL type mapping for a single column.", + "properties": { + "column_name": { + "description": "[Private Preview] Name of the source column whose target PostgreSQL type should be overridden.", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "pg_type": { + "description": "[Private Preview] PostgreSQL-specific target type to use for the column.", + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.SyncedTableSyncedTableSpecPgSpecificType", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "size": { + "description": "[Private Preview] Size parameter for the target type. Required when pg_type is PG_SPECIFIC_TYPE_VECTOR\n(specifies the vector dimension, e.g., 1024).", + "$ref": "#/$defs/int", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + } + }, + "additionalProperties": false, + "required": [ + "column_name", + "pg_type" + ] + }, "serving.Ai21LabsConfig": { "type": "object", "properties": { @@ -10354,7 +10527,7 @@ }, "serving.ServedModelInputWorkloadType": { "type": "string", - "description": "Please keep this in sync with with workload types in InferenceEndpointEntities.scala", + "description": "Please keep this in sync with workload types in InferenceEndpointEntities.scala.", "enum": [ "CPU", "GPU_MEDIUM", @@ -10383,7 +10556,7 @@ }, "serving.ServingModelWorkloadType": { "type": "string", - "description": "Please keep this in sync with with workload types in InferenceEndpointEntities.scala", + "description": "Please keep this in sync with workload types in InferenceEndpointEntities.scala.", "enum": [ "CPU", "GPU_MEDIUM", @@ -10728,7 +10901,7 @@ }, "sql.SpotInstancePolicy": { "type": "string", - "description": "EndpointSpotInstancePolicy configures whether the endpoint should use spot\ninstances.\n\nThe breakdown of how the EndpointSpotInstancePolicy converts to per cloud\nconfigurations is:\n\n+-------+--------------------------------------+--------------------------------+\n| Cloud | COST_OPTIMIZED | RELIABILITY_OPTIMIZED |\n+-------+--------------------------------------+--------------------------------+\n| AWS | On Demand Driver with Spot Executors | On Demand Driver and\nExecutors | | AZURE | On Demand Driver and Executors | On Demand Driver\nand Executors |\n+-------+--------------------------------------+--------------------------------+\n\nWhile including \"spot\" in the enum name may limit the the future\nextensibility of this field because it limits this enum to denoting \"spot or\nnot\", this is the field that PM recommends after discussion with customers\nper SC-48783.", + "description": "EndpointSpotInstancePolicy configures whether the endpoint should use spot\ninstances.\n\nThe breakdown of how the EndpointSpotInstancePolicy converts to per cloud\nconfigurations is:\n\n+-------+--------------------------------------+--------------------------------+\n| Cloud | COST_OPTIMIZED | RELIABILITY_OPTIMIZED |\n+-------+--------------------------------------+--------------------------------+\n| AWS | On Demand Driver with Spot Executors | On Demand Driver and\nExecutors | | AZURE | On Demand Driver and Executors | On Demand Driver\nand Executors |\n+-------+--------------------------------------+--------------------------------+", "enum": [ "POLICY_UNSPECIFIED", "COST_OPTIMIZED", @@ -10851,10 +11024,6 @@ "enum": [ "STORAGE_OPTIMIZED", "STANDARD" - ], - "enumDescriptions": [ - "[Public Preview]", - "" ] }, "vectorsearch.IndexSubtype": { @@ -11318,6 +11487,12 @@ "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/database.DatabaseInstanceRef" } }, + "database.SyncedTableSpecTypeOverride": { + "type": "array", + "items": { + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/database.SyncedTableSpecTypeOverride" + } + }, "jobs.AlertTaskSubscriber": { "type": "array", "items": { @@ -11462,6 +11637,12 @@ "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.RoleMembershipRole" } }, + "postgres.SyncedTableSyncedTableSpecTypeOverride": { + "type": "array", + "items": { + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.SyncedTableSyncedTableSpecTypeOverride" + } + }, "serving.AiGatewayRateLimit": { "type": "array", "items": { diff --git a/bundle/terraform_dabs_map/generated.go b/bundle/terraform_dabs_map/generated.go index 4609816632f..290d6889c06 100644 --- a/bundle/terraform_dabs_map/generated.go +++ b/bundle/terraform_dabs_map/generated.go @@ -4,19 +4,20 @@ package terraform_dabs_map // alerts / databricks_alert_v2: 1 dabs-only // alerts / databricks_alert_v2: 3 tf-only -// apps / databricks_app: 16 dabs-only +// apps / databricks_app: 17 dabs-only // apps / databricks_app: 1 tf-only +// clusters / databricks_cluster: 1 dabs-only // clusters / databricks_cluster: 25 tf-only // dashboards / databricks_dashboard: 2 tf-only // database_instances / databricks_database_instance: 1 tf-only // experiments / databricks_mlflow_experiment: 1 tf-only // jobs / databricks_job: 11 renames -// jobs / databricks_job: 7 dabs-only +// jobs / databricks_job: 10 dabs-only // jobs / databricks_job: 257 tf-only // model_serving_endpoints / databricks_model_serving: 2 tf-only // models / databricks_mlflow_model: 1 tf-only // pipelines / databricks_pipeline: 3 renames -// pipelines / databricks_pipeline: 5 dabs-only +// pipelines / databricks_pipeline: 23 dabs-only // pipelines / databricks_pipeline: 2 tf-only // postgres_branches / databricks_postgres_branch: 1 tf-only // postgres_branches / databricks_postgres_branch: 1 unwraps @@ -25,10 +26,13 @@ package terraform_dabs_map // postgres_endpoints / databricks_postgres_endpoint: 1 unwraps // postgres_projects / databricks_postgres_project: 1 unwraps // postgres_roles / databricks_postgres_role: 1 unwraps +// postgres_synced_tables / databricks_postgres_synced_table: 5 dabs-only // postgres_synced_tables / databricks_postgres_synced_table: 1 unwraps +// schemas / databricks_schema: 1 dabs-only // schemas / databricks_schema: 1 tf-only // secret_scopes / databricks_secret_scope: 1 tf-only // sql_warehouses / databricks_sql_endpoint: 2 tf-only +// synced_database_tables / databricks_database_synced_database_table: 5 dabs-only // volumes / databricks_volume: 1 tf-only // TerraformToDABsFieldMap maps DABs group name → nested TF segments → DABs segment name. @@ -88,6 +92,9 @@ var DABsOnlyFields = map[string]FieldSet{ "file_path": {}, }, "apps": { + "app_status": { + "running_instances": {}, // apps.*.app_status.running_instances + }, "config": { "command": {}, // apps.*.config.command "env": { @@ -109,10 +116,18 @@ var DABsOnlyFields = map[string]FieldSet{ }, "source_code_path": {}, }, + "clusters": { + "azure_attributes": { + "capacity_reservation_group": {}, // clusters.*.azure_attributes.capacity_reservation_group + }, + }, "jobs": { "job_clusters": { "new_cluster": { "autotermination_minutes": {}, // jobs.*.job_clusters.new_cluster.autotermination_minutes + "azure_attributes": { + "capacity_reservation_group": {}, // jobs.*.job_clusters.new_cluster.azure_attributes.capacity_reservation_group + }, }, }, "tasks": { @@ -125,25 +140,94 @@ var DABsOnlyFields = map[string]FieldSet{ }, "new_cluster": { "autotermination_minutes": {}, // jobs.*.tasks.for_each_task.task.new_cluster.autotermination_minutes + "azure_attributes": { + "capacity_reservation_group": {}, // jobs.*.tasks.for_each_task.task.new_cluster.azure_attributes.capacity_reservation_group + }, }, }, }, "new_cluster": { "autotermination_minutes": {}, // jobs.*.tasks.new_cluster.autotermination_minutes + "azure_attributes": { + "capacity_reservation_group": {}, // jobs.*.tasks.new_cluster.azure_attributes.capacity_reservation_group + }, }, }, }, "pipelines": { "clusters": { + "azure_attributes": { + "capacity_reservation_group": {}, // pipelines.*.clusters.azure_attributes.capacity_reservation_group + }, "gcp_attributes": { "boot_disk_size": {}, // pipelines.*.clusters.gcp_attributes.boot_disk_size "use_preemptible_executors": {}, // pipelines.*.clusters.gcp_attributes.use_preemptible_executors }, }, "dry_run": {}, + "ingestion_definition": { + "objects": { + "report": { + "table_configuration": { + "clustering_columns": {}, // pipelines.*.ingestion_definition.objects.report.table_configuration.clustering_columns + "enable_auto_clustering": {}, // pipelines.*.ingestion_definition.objects.report.table_configuration.enable_auto_clustering + "table_properties": { + "*": {}, // pipelines.*.ingestion_definition.objects.report.table_configuration.table_properties.* + }, + }, + }, + "schema": { + "table_configuration": { + "clustering_columns": {}, // pipelines.*.ingestion_definition.objects.schema.table_configuration.clustering_columns + "enable_auto_clustering": {}, // pipelines.*.ingestion_definition.objects.schema.table_configuration.enable_auto_clustering + "table_properties": { + "*": {}, // pipelines.*.ingestion_definition.objects.schema.table_configuration.table_properties.* + }, + }, + }, + "table": { + "table_configuration": { + "clustering_columns": {}, // pipelines.*.ingestion_definition.objects.table.table_configuration.clustering_columns + "enable_auto_clustering": {}, // pipelines.*.ingestion_definition.objects.table.table_configuration.enable_auto_clustering + "table_properties": { + "*": {}, // pipelines.*.ingestion_definition.objects.table.table_configuration.table_properties.* + }, + }, + }, + }, + "table_configuration": { + "clustering_columns": {}, // pipelines.*.ingestion_definition.table_configuration.clustering_columns + "enable_auto_clustering": {}, // pipelines.*.ingestion_definition.table_configuration.enable_auto_clustering + "table_properties": { + "*": {}, // pipelines.*.ingestion_definition.table_configuration.table_properties.* + }, + }, + }, "parameters": { "*": {}, // pipelines.*.parameters.* }, + "serverless_compute_id": {}, + }, + "postgres_synced_tables": { + "accelerated_sync": {}, + "type_overrides": { + "column_name": {}, // postgres_synced_tables.*.type_overrides.column_name + "pg_type": {}, // postgres_synced_tables.*.type_overrides.pg_type + "size": {}, // postgres_synced_tables.*.type_overrides.size + }, + }, + "schemas": { + "custom_max_retention_hours": {}, + }, + "synced_database_tables": { + "spec": { + "accelerated_sync": {}, // synced_database_tables.*.spec.accelerated_sync + "type_overrides": { + "column_name": {}, // synced_database_tables.*.spec.type_overrides.column_name + "pg_type": {}, // synced_database_tables.*.spec.type_overrides.pg_type + "size": {}, // synced_database_tables.*.spec.type_overrides.size + }, + }, }, } diff --git a/cmd/account/disaster-recovery/disaster-recovery.go b/cmd/account/disaster-recovery/disaster-recovery.go index 156d3baea4a..e63997b417d 100644 --- a/cmd/account/disaster-recovery/disaster-recovery.go +++ b/cmd/account/disaster-recovery/disaster-recovery.go @@ -21,19 +21,18 @@ var cmdOverrides []func(*cobra.Command) func New() *cobra.Command { cmd := &cobra.Command{ - Use: "disaster-recovery", - Short: `Manage disaster recovery configurations and execute failover operations.`, - Long: `Manage disaster recovery configurations and execute failover operations.`, - GroupID: "disasterrecovery", + Use: "disaster-recovery", + Short: `*Public Preview* Manage disaster recovery configurations and execute failover operations.`, + Long: `This command is in Public Preview and may change without notice. - // This service is being previewed; hide from help output. - Hidden: true, - RunE: root.ReportUnknownSubcommand, +Manage disaster recovery configurations and execute failover operations.`, + GroupID: "disasterrecovery", + RunE: root.ReportUnknownSubcommand, } cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" // Add methods cmd.AddCommand(newCreateFailoverGroup()) @@ -79,8 +78,10 @@ func newCreateFailoverGroup() *cobra.Command { // TODO: complex arg: unity_catalog_assets cmd.Use = "create-failover-group PARENT FAILOVER_GROUP_ID REGIONS WORKSPACE_SETS INITIAL_PRIMARY_REGION" - cmd.Short = `Create a Failover Group.` - cmd.Long = `Create a Failover Group. + cmd.Short = `*Public Preview* Create a Failover Group.` + cmd.Long = `This command is in Public Preview and may change without notice. + +Create a Failover Group. Create a new failover group. @@ -94,8 +95,8 @@ func newCreateFailoverGroup() *cobra.Command { primary region. Not returned in responses.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" cmd.Args = func(cmd *cobra.Command, args []string) error { if cmd.Flags().Changed("json") { @@ -188,8 +189,10 @@ func newCreateStableUrl() *cobra.Command { cmd.Flags().StringVar(&createStableUrlReq.StableUrl.Name, "name", createStableUrlReq.StableUrl.Name, `Fully qualified resource name.`) cmd.Use = "create-stable-url PARENT STABLE_URL_ID INITIAL_WORKSPACE_ID" - cmd.Short = `Create a Stable URL.` - cmd.Long = `Create a Stable URL. + cmd.Short = `*Public Preview* Create a Stable URL.` + cmd.Long = `This command is in Public Preview and may change without notice. + +Create a Stable URL. Create a new stable URL. @@ -199,11 +202,11 @@ func newCreateStableUrl() *cobra.Command { resource name as {parent}/stable-urls/{stable_url_id}. INITIAL_WORKSPACE_ID: The workspace this stable URL is initially bound to. Used only in Create requests to associate the stable URL with a workspace. Not returned in - responses. Mirrors FailoverGroup.initial_primary_region semantics.` + responses.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" cmd.Args = func(cmd *cobra.Command, args []string) error { if cmd.Flags().Changed("json") { @@ -277,8 +280,10 @@ func newDeleteFailoverGroup() *cobra.Command { cmd.Flags().StringVar(&deleteFailoverGroupReq.Etag, "etag", deleteFailoverGroupReq.Etag, `Opaque version string for optimistic locking.`) cmd.Use = "delete-failover-group NAME" - cmd.Short = `Delete a Failover Group.` - cmd.Long = `Delete a Failover Group. + cmd.Short = `*Public Preview* Delete a Failover Group.` + cmd.Long = `This command is in Public Preview and may change without notice. + +Delete a Failover Group. Delete a failover group. @@ -287,8 +292,8 @@ func newDeleteFailoverGroup() *cobra.Command { accounts/{account_id}/failover-groups/{failover_group_id}.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -336,8 +341,10 @@ func newDeleteStableUrl() *cobra.Command { var deleteStableUrlReq disasterrecovery.DeleteStableUrlRequest cmd.Use = "delete-stable-url NAME" - cmd.Short = `Delete a Stable URL.` - cmd.Long = `Delete a Stable URL. + cmd.Short = `*Public Preview* Delete a Stable URL.` + cmd.Long = `This command is in Public Preview and may change without notice. + +Delete a Stable URL. Delete a stable URL. @@ -346,8 +353,8 @@ func newDeleteStableUrl() *cobra.Command { accounts/{account_id}/stable-urls/{stable_url_id}.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -400,23 +407,25 @@ func newFailoverFailoverGroup() *cobra.Command { cmd.Flags().StringVar(&failoverFailoverGroupReq.Etag, "etag", failoverFailoverGroupReq.Etag, `Opaque version string for optimistic locking.`) cmd.Use = "failover-failover-group NAME TARGET_PRIMARY_REGION FAILOVER_TYPE" - cmd.Short = `Failover a Failover Group to a new primary region.` - cmd.Long = `Failover a Failover Group to a new primary region. + cmd.Short = `*Public Preview* Failover a Failover Group to a new primary region.` + cmd.Long = `This command is in Public Preview and may change without notice. + +Failover a Failover Group to a new primary region. Initiate a failover to a new primary region. Arguments: NAME: The fully qualified resource name of the failover group to failover. Format: accounts/{account_id}/failover-groups/{failover_group_id}. - TARGET_PRIMARY_REGION: The target primary region. Must be one of the derived regions and + TARGET_PRIMARY_REGION: The target primary region. Must be one of the participating regions and different from the current effective_primary_region. Serves as an idempotency check. FAILOVER_TYPE: The type of failover to perform. Supported values: [FORCED]` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" cmd.Args = func(cmd *cobra.Command, args []string) error { if cmd.Flags().Changed("json") { @@ -494,8 +503,10 @@ func newGetFailoverGroup() *cobra.Command { var getFailoverGroupReq disasterrecovery.GetFailoverGroupRequest cmd.Use = "get-failover-group NAME" - cmd.Short = `Get a Failover Group.` - cmd.Long = `Get a Failover Group. + cmd.Short = `*Public Preview* Get a Failover Group.` + cmd.Long = `This command is in Public Preview and may change without notice. + +Get a Failover Group. Get a failover group. @@ -504,8 +515,8 @@ func newGetFailoverGroup() *cobra.Command { accounts/{account_id}/failover-groups/{failover_group_id}.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -554,8 +565,10 @@ func newGetStableUrl() *cobra.Command { var getStableUrlReq disasterrecovery.GetStableUrlRequest cmd.Use = "get-stable-url NAME" - cmd.Short = `Get a Stable URL.` - cmd.Long = `Get a Stable URL. + cmd.Short = `*Public Preview* Get a Stable URL.` + cmd.Long = `This command is in Public Preview and may change without notice. + +Get a Stable URL. Get a stable URL. @@ -564,8 +577,8 @@ func newGetStableUrl() *cobra.Command { accounts/{account_id}/stable-urls/{stable_url_id}.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -627,17 +640,22 @@ func newListFailoverGroups() *cobra.Command { cmd.Flags().Lookup("page-token").Hidden = true cmd.Use = "list-failover-groups PARENT" - cmd.Short = `List Failover Groups.` - cmd.Long = `List Failover Groups. + cmd.Short = `*Public Preview* List Failover Groups.` + cmd.Long = `This command is in Public Preview and may change without notice. + +List Failover Groups. List failover groups. + List entries are abbreviated: state and replication_point are not + populated. Call GetFailoverGroup to retrieve the full resource. + Arguments: PARENT: The parent resource. Format: accounts/{account_id}.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -702,8 +720,10 @@ func newListStableUrls() *cobra.Command { cmd.Flags().Lookup("page-token").Hidden = true cmd.Use = "list-stable-urls PARENT" - cmd.Short = `List Stable URLs.` - cmd.Long = `List Stable URLs. + cmd.Short = `*Public Preview* List Stable URLs.` + cmd.Long = `This command is in Public Preview and may change without notice. + +List Stable URLs. List stable URLs for an account. @@ -711,8 +731,8 @@ func newListStableUrls() *cobra.Command { PARENT: The parent resource. Format: accounts/{account_id}.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -772,8 +792,10 @@ func newUpdateFailoverGroup() *cobra.Command { // TODO: complex arg: unity_catalog_assets cmd.Use = "update-failover-group NAME UPDATE_MASK REGIONS WORKSPACE_SETS INITIAL_PRIMARY_REGION" - cmd.Short = `Update a Failover Group.` - cmd.Long = `Update a Failover Group. + cmd.Short = `*Public Preview* Update a Failover Group.` + cmd.Long = `This command is in Public Preview and may change without notice. + +Update a Failover Group. Update a failover group. @@ -787,8 +809,8 @@ func newUpdateFailoverGroup() *cobra.Command { primary region. Not returned in responses.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Public Preview" cmd.Args = func(cmd *cobra.Command, args []string) error { if cmd.Flags().Changed("json") { diff --git a/cmd/account/endpoints/endpoints.go b/cmd/account/endpoints/endpoints.go index eb3056de47f..ff6f089b5a3 100644 --- a/cmd/account/endpoints/endpoints.go +++ b/cmd/account/endpoints/endpoints.go @@ -19,18 +19,16 @@ var cmdOverrides []func(*cobra.Command) func New() *cobra.Command { cmd := &cobra.Command{ - Use: "endpoints", - Short: `*Public Preview* These APIs manage endpoint configurations for this account.`, - Long: `This command is in Public Preview and may change without notice. - -These APIs manage endpoint configurations for this account.`, + Use: "endpoints", + Short: `These APIs manage endpoint configurations for this account.`, + Long: `These APIs manage endpoint configurations for this account.`, GroupID: "provisioning", RunE: root.ReportUnknownSubcommand, } cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" // Add methods cmd.AddCommand(newCreateEndpoint()) @@ -67,10 +65,8 @@ func newCreateEndpoint() *cobra.Command { // TODO: complex arg: azure_private_endpoint_info cmd.Use = "create-endpoint PARENT DISPLAY_NAME REGION" - cmd.Short = `*Public Preview* Create a network endpoint.` - cmd.Long = `This command is in Public Preview and may change without notice. - -Create a network endpoint. + cmd.Short = `Create a network endpoint.` + cmd.Long = `Create a network endpoint. Creates a new network connectivity endpoint that enables private connectivity between your network resources and Databricks services. @@ -91,8 +87,8 @@ Create a network endpoint. REGION: The cloud provider region where this endpoint is located.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { if cmd.Flags().Changed("json") { @@ -166,18 +162,16 @@ func newDeleteEndpoint() *cobra.Command { var deleteEndpointReq networking.DeleteEndpointRequest cmd.Use = "delete-endpoint NAME" - cmd.Short = `*Public Preview* Delete a network endpoint.` - cmd.Long = `This command is in Public Preview and may change without notice. - -Delete a network endpoint. + cmd.Short = `Delete a network endpoint.` + cmd.Long = `Delete a network endpoint. Deletes a network endpoint. This will remove the endpoint configuration from Databricks. Depending on the endpoint type and use case, you may also need to delete corresponding network resources in your cloud provider account.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -225,16 +219,14 @@ func newGetEndpoint() *cobra.Command { var getEndpointReq networking.GetEndpointRequest cmd.Use = "get-endpoint NAME" - cmd.Short = `*Public Preview* Get a network endpoint.` - cmd.Long = `This command is in Public Preview and may change without notice. - -Get a network endpoint. + cmd.Short = `Get a network endpoint.` + cmd.Long = `Get a network endpoint. Gets details of a specific network endpoint.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -296,10 +288,8 @@ func newListEndpoints() *cobra.Command { cmd.Flags().Lookup("page-token").Hidden = true cmd.Use = "list-endpoints PARENT" - cmd.Short = `*Public Preview* List network endpoints.` - cmd.Long = `This command is in Public Preview and may change without notice. - -List network endpoints. + cmd.Short = `List network endpoints.` + cmd.Long = `List network endpoints. Lists all network connectivity endpoints for the account. @@ -308,8 +298,8 @@ List network endpoints. accounts/{account_id}.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) diff --git a/cmd/account/iam-v2/iam-v2.go b/cmd/account/iam-v2/iam-v2.go index 965966c124c..d473f4ce804 100644 --- a/cmd/account/iam-v2/iam-v2.go +++ b/cmd/account/iam-v2/iam-v2.go @@ -406,7 +406,10 @@ func newListWorkspaceAssignmentDetails() *cobra.Command { cmd.Short = `List workspace assignment details for a workspace.` cmd.Long = `List workspace assignment details for a workspace. - Lists workspace assignment details for a workspace. + Lists workspace assignment details for a workspace. For scalability, the + response omits the per-principal entitlement fields (entitlements and + effective_entitlements); call GetWorkspaceAssignmentDetail to read + entitlements for a single principal. Arguments: WORKSPACE_ID: Required. The workspace ID for which the workspace assignment details are diff --git a/cmd/bundle/metadata_service.go b/cmd/bundle/metadata_service.go index ba945983ce6..6221d082ffe 100644 --- a/cmd/bundle/metadata_service.go +++ b/cmd/bundle/metadata_service.go @@ -3,7 +3,7 @@ package bundle import ( "strings" - workspacebundle "github.com/databricks/cli/cmd/workspace/bundle" + workspacebundle "github.com/databricks/cli/cmd/workspace/bundle-deployments" "github.com/spf13/cobra" ) diff --git a/cmd/cmd.go b/cmd/cmd.go index 77174aa3990..718d3a8fda3 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -68,11 +68,11 @@ func New(ctx context.Context) *cobra.Command { // Add workspace subcommands. workspaceCommands := workspace.All() for _, cmd := range workspaceCommands { - // The auto-generated `bundle` workspace service (DMS) shares its name - // with the DAB `bundle` command tree (cmd/bundle). Registering both - // here clobbers the DAB tree's help output. Skip the generated one; - // callers still have `databricks api ...` for the DMS endpoints. - if cmd.Name() == "bundle" { + // The auto-generated `bundle-deployments` workspace service (DMS) is + // surfaced under the DAB `bundle` command tree (cmd/bundle). Skip the + // generated top-level command; callers still have `databricks api ...` + // for the DMS endpoints. + if cmd.Name() == "bundle-deployments" { continue } // Order the permissions subcommands after the main commands. diff --git a/cmd/workspace/ai-search/ai-search.go b/cmd/workspace/ai-search/ai-search.go new file mode 100644 index 00000000000..2d5e5f9c3d0 --- /dev/null +++ b/cmd/workspace/ai-search/ai-search.go @@ -0,0 +1,1164 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package ai_search + +import ( + "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" + "github.com/databricks/databricks-sdk-go/service/aisearch" + "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: "ai-search", + Short: `**AI Search Endpoint**: Represents the compute resources to host AI Search indexes.`, + Long: `**AI Search Endpoint**: Represents the compute resources to host AI Search + indexes. AIP-conformant replacement for the legacy VectorSearchEndpoints API; + functionally equivalent.`, + GroupID: "aisearch", + + // This service is being previewed; hide from help output. + Hidden: true, + RunE: root.ReportUnknownSubcommand, + } + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + // Add methods + cmd.AddCommand(newCreateEndpoint()) + cmd.AddCommand(newCreateIndex()) + cmd.AddCommand(newDeleteEndpoint()) + cmd.AddCommand(newDeleteIndex()) + cmd.AddCommand(newGetEndpoint()) + cmd.AddCommand(newGetIndex()) + cmd.AddCommand(newListEndpoints()) + cmd.AddCommand(newListIndexes()) + cmd.AddCommand(newQueryIndex()) + cmd.AddCommand(newRemoveData()) + cmd.AddCommand(newScanIndex()) + cmd.AddCommand(newSyncIndex()) + cmd.AddCommand(newUpdateEndpoint()) + cmd.AddCommand(newUpsertData()) + + // Apply optional overrides to this command. + for _, fn := range cmdOverrides { + fn(cmd) + } + + return cmd +} + +// start create-endpoint 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 createEndpointOverrides []func( + *cobra.Command, + *aisearch.CreateEndpointRequest, +) + +func newCreateEndpoint() *cobra.Command { + cmd := &cobra.Command{} + + var createEndpointReq aisearch.CreateEndpointRequest + createEndpointReq.Endpoint = aisearch.Endpoint{} + var createEndpointJson flags.JsonFlag + + cmd.Flags().Var(&createEndpointJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&createEndpointReq.EndpointId, "endpoint-id", createEndpointReq.EndpointId, `The user-supplied short name for the Endpoint, per AIP-133.`) + cmd.Flags().StringVar(&createEndpointReq.Endpoint.BudgetPolicyId, "budget-policy-id", createEndpointReq.Endpoint.BudgetPolicyId, `The user-selected budget policy id for the endpoint.`) + // TODO: array: custom_tags + // TODO: complex arg: endpoint_status + cmd.Flags().StringVar(&createEndpointReq.Endpoint.Name, "name", createEndpointReq.Endpoint.Name, `Name of the AI Search endpoint.`) + cmd.Flags().IntVar(&createEndpointReq.Endpoint.ReplicaCount, "replica-count", createEndpointReq.Endpoint.ReplicaCount, `The client-supplied desired number of replicas for the endpoint, applied at create/update time.`) + // TODO: complex arg: scaling_info + cmd.Flags().IntVar(&createEndpointReq.Endpoint.TargetQps, "target-qps", createEndpointReq.Endpoint.TargetQps, `Target QPS for the endpoint.`) + // TODO: complex arg: throughput_info + cmd.Flags().StringVar(&createEndpointReq.Endpoint.UsagePolicyId, "usage-policy-id", createEndpointReq.Endpoint.UsagePolicyId, `The usage policy id applied to the endpoint.`) + + cmd.Use = "create-endpoint PARENT ENDPOINT_TYPE" + cmd.Short = `Create an AI Search endpoint.` + cmd.Long = `Create an AI Search endpoint. + + Create a new AI Search endpoint. + + Arguments: + PARENT: The Workspace where this Endpoint will be created. Format: + workspaces/{workspace_id} + ENDPOINT_TYPE: Type of endpoint. Required on create and immutable thereafter. + Supported values: [STANDARD, STORAGE_OPTIMIZED]` + + 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(1)(cmd, args) + if err != nil { + return fmt.Errorf("when --json flag is specified, provide only PARENT as positional arguments. Provide 'endpoint_type' 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 := createEndpointJson.Unmarshal(&createEndpointReq.Endpoint) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + createEndpointReq.Parent = args[0] + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[1], &createEndpointReq.Endpoint.EndpointType) + if err != nil { + return fmt.Errorf("invalid ENDPOINT_TYPE: %s", args[1]) + } + + } + + response, err := w.AiSearch.CreateEndpoint(ctx, createEndpointReq) + 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 createEndpointOverrides { + fn(cmd, &createEndpointReq) + } + + return cmd +} + +// start create-index 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 createIndexOverrides []func( + *cobra.Command, + *aisearch.CreateIndexRequest, +) + +func newCreateIndex() *cobra.Command { + cmd := &cobra.Command{} + + var createIndexReq aisearch.CreateIndexRequest + createIndexReq.Index = aisearch.Index{} + var createIndexJson flags.JsonFlag + + cmd.Flags().Var(&createIndexJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&createIndexReq.IndexId, "index-id", createIndexReq.IndexId, `The user-supplied Unity Catalog table name for the Index, per AIP-133.`) + // TODO: complex arg: delta_sync_index_spec + // TODO: complex arg: direct_access_index_spec + cmd.Flags().Var(&createIndexReq.Index.IndexSubtype, "index-subtype", `The subtype of the index. Supported values: [FULL_TEXT, HYBRID, VECTOR]`) + cmd.Flags().StringVar(&createIndexReq.Index.Name, "name", createIndexReq.Index.Name, `Name of the AI Search index.`) + // TODO: complex arg: status + + cmd.Use = "create-index PARENT PRIMARY_KEY INDEX_TYPE" + cmd.Short = `Create an AI Search index.` + cmd.Long = `Create an AI Search index. + + Create a new AI Search index. + + Arguments: + PARENT: The Endpoint where this Index will be created. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id} + PRIMARY_KEY: Primary key of the index. Set on create and immutable thereafter. + INDEX_TYPE: Type of index. Required on create and immutable thereafter. + Supported values: [DELTA_SYNC, DIRECT_ACCESS]` + + 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(1)(cmd, args) + if err != nil { + return fmt.Errorf("when --json flag is specified, provide only PARENT as positional arguments. Provide 'primary_key', 'index_type' in your JSON input") + } + return nil + } + check := root.ExactArgs(3) + 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 := createIndexJson.Unmarshal(&createIndexReq.Index) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + createIndexReq.Parent = args[0] + if !cmd.Flags().Changed("json") { + createIndexReq.Index.PrimaryKey = args[1] + } + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[2], &createIndexReq.Index.IndexType) + if err != nil { + return fmt.Errorf("invalid INDEX_TYPE: %s", args[2]) + } + + } + + response, err := w.AiSearch.CreateIndex(ctx, createIndexReq) + 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 createIndexOverrides { + fn(cmd, &createIndexReq) + } + + return cmd +} + +// start delete-endpoint 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 deleteEndpointOverrides []func( + *cobra.Command, + *aisearch.DeleteEndpointRequest, +) + +func newDeleteEndpoint() *cobra.Command { + cmd := &cobra.Command{} + + var deleteEndpointReq aisearch.DeleteEndpointRequest + + cmd.Use = "delete-endpoint NAME" + cmd.Short = `Delete an AI Search endpoint.` + cmd.Long = `Delete an AI Search endpoint. + + Arguments: + NAME: Full resource name of the endpoint to delete. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id}` + + 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) + + deleteEndpointReq.Name = args[0] + + err = w.AiSearch.DeleteEndpoint(ctx, deleteEndpointReq) + 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 deleteEndpointOverrides { + fn(cmd, &deleteEndpointReq) + } + + return cmd +} + +// start delete-index 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 deleteIndexOverrides []func( + *cobra.Command, + *aisearch.DeleteIndexRequest, +) + +func newDeleteIndex() *cobra.Command { + cmd := &cobra.Command{} + + var deleteIndexReq aisearch.DeleteIndexRequest + + cmd.Use = "delete-index NAME" + cmd.Short = `Delete an AI Search index.` + cmd.Long = `Delete an AI Search index. + + Arguments: + NAME: Full resource name of the index to delete. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}` + + 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) + + deleteIndexReq.Name = args[0] + + err = w.AiSearch.DeleteIndex(ctx, deleteIndexReq) + 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 deleteIndexOverrides { + fn(cmd, &deleteIndexReq) + } + + return cmd +} + +// start get-endpoint 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 getEndpointOverrides []func( + *cobra.Command, + *aisearch.GetEndpointRequest, +) + +func newGetEndpoint() *cobra.Command { + cmd := &cobra.Command{} + + var getEndpointReq aisearch.GetEndpointRequest + + cmd.Use = "get-endpoint NAME" + cmd.Short = `Get an AI Search endpoint.` + cmd.Long = `Get an AI Search endpoint. + + Get details for a single AI Search endpoint. + + Arguments: + NAME: Full resource name of the endpoint. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id}` + + 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) + + getEndpointReq.Name = args[0] + + response, err := w.AiSearch.GetEndpoint(ctx, getEndpointReq) + 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 getEndpointOverrides { + fn(cmd, &getEndpointReq) + } + + return cmd +} + +// start get-index 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 getIndexOverrides []func( + *cobra.Command, + *aisearch.GetIndexRequest, +) + +func newGetIndex() *cobra.Command { + cmd := &cobra.Command{} + + var getIndexReq aisearch.GetIndexRequest + + cmd.Use = "get-index NAME" + cmd.Short = `Get an AI Search index.` + cmd.Long = `Get an AI Search index. + + Get details for a single AI Search index. + + Arguments: + NAME: Full resource name of the index. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}` + + 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) + + getIndexReq.Name = args[0] + + response, err := w.AiSearch.GetIndex(ctx, getIndexReq) + 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 getIndexOverrides { + fn(cmd, &getIndexReq) + } + + return cmd +} + +// start list-endpoints 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 listEndpointsOverrides []func( + *cobra.Command, + *aisearch.ListEndpointsRequest, +) + +func newListEndpoints() *cobra.Command { + cmd := &cobra.Command{} + + var listEndpointsReq aisearch.ListEndpointsRequest + // 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 listEndpointsLimit int + + cmd.Flags().IntVar(&listEndpointsReq.PageSize, "page-size", listEndpointsReq.PageSize, `Best-effort upper bound on the number of results to return.`) + + // Limit flag for total result capping. + cmd.Flags().IntVar(&listEndpointsLimit, "limit", 0, `Maximum number of results to return.`) + + // Hidden pagination flags (internal API parameters). + cmd.Flags().StringVar(&listEndpointsReq.PageToken, "page-token", listEndpointsReq.PageToken, `Pagination token.`) + cmd.Flags().Lookup("page-token").Hidden = true + + cmd.Use = "list-endpoints PARENT" + cmd.Short = `List AI Search endpoints.` + cmd.Long = `List AI Search endpoints. + + List AI Search endpoints in a workspace. + + Arguments: + PARENT: The Workspace that owns this collection of endpoints. Format: + workspaces/{workspace_id}` + + 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) + + listEndpointsReq.Parent = args[0] + + response := w.AiSearch.ListEndpoints(ctx, listEndpointsReq) + if listEndpointsLimit < 0 { + return fmt.Errorf("--limit must be a non-negative integer, got %d", listEndpointsLimit) + } + if listEndpointsLimit > 0 { + ctx = cmdio.WithLimit(ctx, listEndpointsLimit) + } + + 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 listEndpointsOverrides { + fn(cmd, &listEndpointsReq) + } + + return cmd +} + +// start list-indexes 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 listIndexesOverrides []func( + *cobra.Command, + *aisearch.ListIndexesRequest, +) + +func newListIndexes() *cobra.Command { + cmd := &cobra.Command{} + + var listIndexesReq aisearch.ListIndexesRequest + // 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 listIndexesLimit int + + cmd.Flags().IntVar(&listIndexesReq.PageSize, "page-size", listIndexesReq.PageSize, `Best-effort upper bound on the number of results to return.`) + + // Limit flag for total result capping. + cmd.Flags().IntVar(&listIndexesLimit, "limit", 0, `Maximum number of results to return.`) + + // Hidden pagination flags (internal API parameters). + cmd.Flags().StringVar(&listIndexesReq.PageToken, "page-token", listIndexesReq.PageToken, `Pagination token.`) + cmd.Flags().Lookup("page-token").Hidden = true + + cmd.Use = "list-indexes PARENT" + cmd.Short = `List AI Search indexes.` + cmd.Long = `List AI Search indexes. + + List AI Search indexes on an endpoint. + + Arguments: + PARENT: The Endpoint that owns this collection of indexes. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id}` + + 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) + + listIndexesReq.Parent = args[0] + + response := w.AiSearch.ListIndexes(ctx, listIndexesReq) + if listIndexesLimit < 0 { + return fmt.Errorf("--limit must be a non-negative integer, got %d", listIndexesLimit) + } + if listIndexesLimit > 0 { + ctx = cmdio.WithLimit(ctx, listIndexesLimit) + } + + 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 listIndexesOverrides { + fn(cmd, &listIndexesReq) + } + + return cmd +} + +// start query-index 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 queryIndexOverrides []func( + *cobra.Command, + *aisearch.QueryIndexRequest, +) + +func newQueryIndex() *cobra.Command { + cmd := &cobra.Command{} + + var queryIndexReq aisearch.QueryIndexRequest + var queryIndexJson flags.JsonFlag + + cmd.Flags().Var(&queryIndexJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + // TODO: array: columns_to_rerank + // TODO: array: facets + cmd.Flags().StringVar(&queryIndexReq.FiltersJson, "filters-json", queryIndexReq.FiltersJson, `JSON string describing query filters (e.g.`) + cmd.Flags().IntVar(&queryIndexReq.MaxResults, "max-results", queryIndexReq.MaxResults, `Maximum number of results to return (the legacy num_results).`) + // TODO: array: query_columns + cmd.Flags().StringVar(&queryIndexReq.QueryText, "query-text", queryIndexReq.QueryText, `Query text.`) + cmd.Flags().StringVar(&queryIndexReq.QueryType, "query-type", queryIndexReq.QueryType, `Query type: ANN, HYBRID, or FULL_TEXT.`) + // TODO: array: query_vector + // TODO: complex arg: reranker + cmd.Flags().Float64Var(&queryIndexReq.ScoreThreshold, "score-threshold", queryIndexReq.ScoreThreshold, `Score threshold for the approximate nearest-neighbor search.`) + // TODO: array: sort_columns + + cmd.Use = "query-index NAME" + cmd.Short = `Query an AI Search index.` + cmd.Long = `Query an AI Search index. + + Query (search) an AI Search index. Read-only, so a read-scoped token may + invoke it. + + Arguments: + NAME: Full resource name of the index to query. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}` + + 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) + + if cmd.Flags().Changed("json") { + diags := queryIndexJson.Unmarshal(&queryIndexReq) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } else { + return fmt.Errorf("please provide command input in JSON format by specifying the --json flag") + } + queryIndexReq.Name = args[0] + + response, err := w.AiSearch.QueryIndex(ctx, queryIndexReq) + 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 queryIndexOverrides { + fn(cmd, &queryIndexReq) + } + + return cmd +} + +// start remove-data 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 removeDataOverrides []func( + *cobra.Command, + *aisearch.RemoveDataRequest, +) + +func newRemoveData() *cobra.Command { + cmd := &cobra.Command{} + + var removeDataReq aisearch.RemoveDataRequest + var removeDataJson flags.JsonFlag + + cmd.Flags().Var(&removeDataJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Use = "remove-data NAME" + cmd.Short = `Remove data from an AI Search index.` + cmd.Long = `Remove data from an AI Search index. + + Remove rows by primary key from a Direct Access AI Search index. + + Arguments: + NAME: Full resource name of the index. Must be a Direct Access index. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}` + + 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) + + if cmd.Flags().Changed("json") { + diags := removeDataJson.Unmarshal(&removeDataReq) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } else { + return fmt.Errorf("please provide command input in JSON format by specifying the --json flag") + } + removeDataReq.Name = args[0] + + response, err := w.AiSearch.RemoveData(ctx, removeDataReq) + 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 removeDataOverrides { + fn(cmd, &removeDataReq) + } + + return cmd +} + +// start scan-index 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 scanIndexOverrides []func( + *cobra.Command, + *aisearch.ScanIndexRequest, +) + +func newScanIndex() *cobra.Command { + cmd := &cobra.Command{} + + var scanIndexReq aisearch.ScanIndexRequest + var scanIndexJson flags.JsonFlag + + cmd.Flags().Var(&scanIndexJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().IntVar(&scanIndexReq.PageSize, "page-size", scanIndexReq.PageSize, `Maximum number of rows to return in this page.`) + cmd.Flags().StringVar(&scanIndexReq.PageToken, "page-token", scanIndexReq.PageToken, `Page token from a previous response; if unset, scanning starts from the beginning.`) + + cmd.Use = "scan-index NAME" + cmd.Short = `Scan an AI Search index.` + cmd.Long = `Scan an AI Search index. + + Scan (paginate over) the rows of an AI Search index. + + Arguments: + NAME: Full resource name of the index to scan. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}` + + 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) + + if cmd.Flags().Changed("json") { + diags := scanIndexJson.Unmarshal(&scanIndexReq) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + scanIndexReq.Name = args[0] + + response, err := w.AiSearch.ScanIndex(ctx, scanIndexReq) + 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 scanIndexOverrides { + fn(cmd, &scanIndexReq) + } + + return cmd +} + +// start sync-index 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 syncIndexOverrides []func( + *cobra.Command, + *aisearch.SyncIndexRequest, +) + +func newSyncIndex() *cobra.Command { + cmd := &cobra.Command{} + + var syncIndexReq aisearch.SyncIndexRequest + + cmd.Use = "sync-index NAME" + cmd.Short = `Synchronize an AI Search index.` + cmd.Long = `Synchronize an AI Search index. + + Synchronize a Delta Sync AI Search index with its source Delta table. Applies + only to Delta Sync indexes; Direct Access indexes are written via the + data-plane upsert path. + + Arguments: + NAME: Full resource name of the index to synchronize. Must be a Delta Sync + index. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id}` + + 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) + + syncIndexReq.Name = args[0] + + response, err := w.AiSearch.SyncIndex(ctx, syncIndexReq) + 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 syncIndexOverrides { + fn(cmd, &syncIndexReq) + } + + return cmd +} + +// start update-endpoint 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 updateEndpointOverrides []func( + *cobra.Command, + *aisearch.UpdateEndpointRequest, +) + +func newUpdateEndpoint() *cobra.Command { + cmd := &cobra.Command{} + + var updateEndpointReq aisearch.UpdateEndpointRequest + updateEndpointReq.Endpoint = aisearch.Endpoint{} + var updateEndpointJson flags.JsonFlag + + cmd.Flags().Var(&updateEndpointJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&updateEndpointReq.Endpoint.BudgetPolicyId, "budget-policy-id", updateEndpointReq.Endpoint.BudgetPolicyId, `The user-selected budget policy id for the endpoint.`) + // TODO: array: custom_tags + // TODO: complex arg: endpoint_status + cmd.Flags().StringVar(&updateEndpointReq.Endpoint.Name, "name", updateEndpointReq.Endpoint.Name, `Name of the AI Search endpoint.`) + cmd.Flags().IntVar(&updateEndpointReq.Endpoint.ReplicaCount, "replica-count", updateEndpointReq.Endpoint.ReplicaCount, `The client-supplied desired number of replicas for the endpoint, applied at create/update time.`) + // TODO: complex arg: scaling_info + cmd.Flags().IntVar(&updateEndpointReq.Endpoint.TargetQps, "target-qps", updateEndpointReq.Endpoint.TargetQps, `Target QPS for the endpoint.`) + // TODO: complex arg: throughput_info + cmd.Flags().StringVar(&updateEndpointReq.Endpoint.UsagePolicyId, "usage-policy-id", updateEndpointReq.Endpoint.UsagePolicyId, `The usage policy id applied to the endpoint.`) + + cmd.Use = "update-endpoint NAME UPDATE_MASK ENDPOINT_TYPE" + cmd.Short = `Update an AI Search endpoint.` + cmd.Long = `Update an AI Search endpoint. + + Update an existing AI Search endpoint. Multi-bucket masks are supported and + dispatched in deterministic bucket order: budget policy, custom tags, + throughput, then scaling/replicas. Per-bucket dispatch is not atomic across + buckets — if a later bucket fails, earlier buckets may already have been + applied. + + Arguments: + NAME: Name of the AI Search endpoint. Server-assigned full resource path + (workspaces/{workspace}/endpoints/{endpoint}) on output. On create, the + user-supplied short name is conveyed via + CreateEndpointRequest.endpoint_id; the server composes the full name + and returns it on the response. + UPDATE_MASK: The list of fields to update. + ENDPOINT_TYPE: Type of endpoint. Required on create and immutable thereafter. + Supported values: [STANDARD, STORAGE_OPTIMIZED]` + + 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(2)(cmd, args) + if err != nil { + return fmt.Errorf("when --json flag is specified, provide only NAME, UPDATE_MASK as positional arguments. Provide 'endpoint_type' in your JSON input") + } + return nil + } + check := root.ExactArgs(3) + 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 := updateEndpointJson.Unmarshal(&updateEndpointReq.Endpoint) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + updateEndpointReq.Name = args[0] + if args[1] != "" { + updateMaskArray := strings.Split(args[1], ",") + updateEndpointReq.UpdateMask = *fieldmask.New(updateMaskArray) + } + if !cmd.Flags().Changed("json") { + _, err = fmt.Sscan(args[2], &updateEndpointReq.Endpoint.EndpointType) + if err != nil { + return fmt.Errorf("invalid ENDPOINT_TYPE: %s", args[2]) + } + + } + + response, err := w.AiSearch.UpdateEndpoint(ctx, updateEndpointReq) + 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 updateEndpointOverrides { + fn(cmd, &updateEndpointReq) + } + + return cmd +} + +// start upsert-data 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 upsertDataOverrides []func( + *cobra.Command, + *aisearch.UpsertDataRequest, +) + +func newUpsertData() *cobra.Command { + cmd := &cobra.Command{} + + var upsertDataReq aisearch.UpsertDataRequest + var upsertDataJson flags.JsonFlag + + cmd.Flags().Var(&upsertDataJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Use = "upsert-data NAME INPUTS_JSON" + cmd.Short = `Upsert data into an AI Search index.` + cmd.Long = `Upsert data into an AI Search index. + + Upsert rows into a Direct Access AI Search index. + + Arguments: + NAME: Full resource name of the index. Must be a Direct Access index. Format: + workspaces/{workspace_id}/endpoints/{endpoint_id}/indexes/{index_id} + INPUTS_JSON: JSON document describing the rows to upsert.` + + 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(1)(cmd, args) + if err != nil { + return fmt.Errorf("when --json flag is specified, provide only NAME as positional arguments. Provide 'inputs_json' 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 := upsertDataJson.Unmarshal(&upsertDataReq) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + upsertDataReq.Name = args[0] + if !cmd.Flags().Changed("json") { + upsertDataReq.InputsJson = args[1] + } + + response, err := w.AiSearch.UpsertData(ctx, upsertDataReq) + 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 upsertDataOverrides { + fn(cmd, &upsertDataReq) + } + + return cmd +} + +// end service AiSearch diff --git a/cmd/workspace/artifact-allowlists/artifact-allowlists.go b/cmd/workspace/artifact-allowlists/artifact-allowlists.go index 226c203e369..2d8f100d5d4 100644 --- a/cmd/workspace/artifact-allowlists/artifact-allowlists.go +++ b/cmd/workspace/artifact-allowlists/artifact-allowlists.go @@ -20,9 +20,9 @@ var cmdOverrides []func(*cobra.Command) func New() *cobra.Command { cmd := &cobra.Command{ Use: "artifact-allowlists", - Short: `In Databricks Runtime 13.3 and above, you can add libraries and init scripts to the allowlist in UC so that users can leverage these artifacts on compute configured with shared access mode.`, + Short: `In Databricks Runtime 13.3 and above, you can add libraries and init scripts to the allowlist in UC so that users can use these artifacts on compute configured with shared access mode.`, Long: `In Databricks Runtime 13.3 and above, you can add libraries and init scripts - to the allowlist in UC so that users can leverage these artifacts on compute + to the allowlist in UC so that users can use these artifacts on compute configured with shared access mode.`, GroupID: "catalog", RunE: root.ReportUnknownSubcommand, diff --git a/cmd/workspace/bundle/bundle.go b/cmd/workspace/bundle-deployments/bundle-deployments.go similarity index 91% rename from cmd/workspace/bundle/bundle.go rename to cmd/workspace/bundle-deployments/bundle-deployments.go index 73a64cc20f6..e9afda790e7 100644 --- a/cmd/workspace/bundle/bundle.go +++ b/cmd/workspace/bundle-deployments/bundle-deployments.go @@ -1,6 +1,6 @@ // Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. -package bundle +package bundle_deployments import ( "fmt" @@ -9,7 +9,7 @@ import ( "github.com/databricks/cli/libs/cmdctx" "github.com/databricks/cli/libs/cmdio" "github.com/databricks/cli/libs/flags" - "github.com/databricks/databricks-sdk-go/service/bundle" + "github.com/databricks/databricks-sdk-go/service/bundledeployments" "github.com/spf13/cobra" ) @@ -19,10 +19,10 @@ var cmdOverrides []func(*cobra.Command) func New() *cobra.Command { cmd := &cobra.Command{ - Use: "bundle", + Use: "bundle-deployments", Short: `Service for managing bundle deployment metadata.`, Long: `Service for managing bundle deployment metadata.`, - GroupID: "bundle", + GroupID: "bundledeployments", // This service is being previewed; hide from help output. Hidden: true, @@ -63,13 +63,13 @@ func New() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var completeVersionOverrides []func( *cobra.Command, - *bundle.CompleteVersionRequest, + *bundledeployments.CompleteVersionRequest, ) func newCompleteVersion() *cobra.Command { cmd := &cobra.Command{} - var completeVersionReq bundle.CompleteVersionRequest + var completeVersionReq bundledeployments.CompleteVersionRequest var completeVersionJson flags.JsonFlag cmd.Flags().Var(&completeVersionJson, "json", `either inline JSON string or @path/to/file.json with request body`) @@ -137,7 +137,7 @@ func newCompleteVersion() *cobra.Command { } - response, err := w.Bundle.CompleteVersion(ctx, completeVersionReq) + response, err := w.BundleDeployments.CompleteVersion(ctx, completeVersionReq) if err != nil { return err } @@ -163,20 +163,20 @@ func newCompleteVersion() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var createDeploymentOverrides []func( *cobra.Command, - *bundle.CreateDeploymentRequest, + *bundledeployments.CreateDeploymentRequest, ) func newCreateDeployment() *cobra.Command { cmd := &cobra.Command{} - var createDeploymentReq bundle.CreateDeploymentRequest - createDeploymentReq.Deployment = bundle.Deployment{} + var createDeploymentReq bundledeployments.CreateDeploymentRequest + createDeploymentReq.Deployment = bundledeployments.Deployment{} var createDeploymentJson flags.JsonFlag cmd.Flags().Var(&createDeploymentJson, "json", `either inline JSON string or @path/to/file.json with request body`) - cmd.Flags().StringVar(&createDeploymentReq.Deployment.DisplayName, "display-name", createDeploymentReq.Deployment.DisplayName, `Human-readable name for the deployment.`) - cmd.Flags().StringVar(&createDeploymentReq.Deployment.TargetName, "target-name", createDeploymentReq.Deployment.TargetName, `The bundle target name associated with this deployment.`) + // TODO: complex arg: git_info + // TODO: complex arg: workspace_info cmd.Use = "create-deployment DEPLOYMENT_ID" cmd.Short = `Create a deployment.` @@ -220,7 +220,7 @@ func newCreateDeployment() *cobra.Command { } createDeploymentReq.DeploymentId = args[0] - response, err := w.Bundle.CreateDeployment(ctx, createDeploymentReq) + response, err := w.BundleDeployments.CreateDeployment(ctx, createDeploymentReq) if err != nil { return err } @@ -246,14 +246,14 @@ func newCreateDeployment() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var createOperationOverrides []func( *cobra.Command, - *bundle.CreateOperationRequest, + *bundledeployments.CreateOperationRequest, ) func newCreateOperation() *cobra.Command { cmd := &cobra.Command{} - var createOperationReq bundle.CreateOperationRequest - createOperationReq.Operation = bundle.Operation{} + var createOperationReq bundledeployments.CreateOperationRequest + createOperationReq.Operation = bundledeployments.Operation{} var createOperationJson flags.JsonFlag cmd.Flags().Var(&createOperationJson, "json", `either inline JSON string or @path/to/file.json with request body`) @@ -284,7 +284,7 @@ func newCreateOperation() *cobra.Command { if cmd.Flags().Changed("json") { err := root.ExactArgs(2)(cmd, args) if err != nil { - return fmt.Errorf("when --json flag is specified, provide only PARENT, RESOURCE_KEY as positional arguments. Provide 'action_type', 'resource_id', 'status' in your JSON input") + return fmt.Errorf("when --json flag is specified, provide only PARENT, RESOURCE_KEY as positional arguments. Provide 'action_type', 'status' in your JSON input") } return nil } @@ -313,7 +313,7 @@ func newCreateOperation() *cobra.Command { } createOperationReq.Parent = args[0] - response, err := w.Bundle.CreateOperation(ctx, createOperationReq) + response, err := w.BundleDeployments.CreateOperation(ctx, createOperationReq) if err != nil { return err } @@ -339,21 +339,23 @@ func newCreateOperation() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var createVersionOverrides []func( *cobra.Command, - *bundle.CreateVersionRequest, + *bundledeployments.CreateVersionRequest, ) func newCreateVersion() *cobra.Command { cmd := &cobra.Command{} - var createVersionReq bundle.CreateVersionRequest - createVersionReq.Version = bundle.Version{} + var createVersionReq bundledeployments.CreateVersionRequest + createVersionReq.Version = bundledeployments.Version{} var createVersionJson flags.JsonFlag cmd.Flags().Var(&createVersionJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Flags().Var(&createVersionReq.Version.DeploymentMode, "deployment-mode", `Bundle target deployment mode (development or production), captured at the time of this version. Supported values: [DEPLOYMENT_MODE_DEVELOPMENT, DEPLOYMENT_MODE_PRODUCTION]`) cmd.Flags().StringVar(&createVersionReq.Version.DisplayName, "display-name", createVersionReq.Version.DisplayName, `Display name for the deployment, captured at the time of this version.`) + // TODO: complex arg: git_info cmd.Flags().StringVar(&createVersionReq.Version.TargetName, "target-name", createVersionReq.Version.TargetName, `Target name of the deployment, captured at the time of this version.`) + // TODO: complex arg: workspace_info cmd.Use = "create-version PARENT VERSION_ID CLI_VERSION VERSION_TYPE" cmd.Short = `Create a version.` @@ -421,7 +423,7 @@ func newCreateVersion() *cobra.Command { } - response, err := w.Bundle.CreateVersion(ctx, createVersionReq) + response, err := w.BundleDeployments.CreateVersion(ctx, createVersionReq) if err != nil { return err } @@ -447,13 +449,13 @@ func newCreateVersion() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var deleteDeploymentOverrides []func( *cobra.Command, - *bundle.DeleteDeploymentRequest, + *bundledeployments.DeleteDeploymentRequest, ) func newDeleteDeployment() *cobra.Command { cmd := &cobra.Command{} - var deleteDeploymentReq bundle.DeleteDeploymentRequest + var deleteDeploymentReq bundledeployments.DeleteDeploymentRequest cmd.Use = "delete-deployment NAME" cmd.Short = `Delete a deployment.` @@ -486,7 +488,7 @@ func newDeleteDeployment() *cobra.Command { deleteDeploymentReq.Name = args[0] - err = w.Bundle.DeleteDeployment(ctx, deleteDeploymentReq) + err = w.BundleDeployments.DeleteDeployment(ctx, deleteDeploymentReq) if err != nil { return err } @@ -511,13 +513,13 @@ func newDeleteDeployment() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var getDeploymentOverrides []func( *cobra.Command, - *bundle.GetDeploymentRequest, + *bundledeployments.GetDeploymentRequest, ) func newGetDeployment() *cobra.Command { cmd := &cobra.Command{} - var getDeploymentReq bundle.GetDeploymentRequest + var getDeploymentReq bundledeployments.GetDeploymentRequest cmd.Use = "get-deployment NAME" cmd.Short = `Get a deployment.` @@ -545,7 +547,7 @@ func newGetDeployment() *cobra.Command { getDeploymentReq.Name = args[0] - response, err := w.Bundle.GetDeployment(ctx, getDeploymentReq) + response, err := w.BundleDeployments.GetDeployment(ctx, getDeploymentReq) if err != nil { return err } @@ -571,13 +573,13 @@ func newGetDeployment() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var getOperationOverrides []func( *cobra.Command, - *bundle.GetOperationRequest, + *bundledeployments.GetOperationRequest, ) func newGetOperation() *cobra.Command { cmd := &cobra.Command{} - var getOperationReq bundle.GetOperationRequest + var getOperationReq bundledeployments.GetOperationRequest cmd.Use = "get-operation NAME" cmd.Short = `Get an operation.` @@ -605,7 +607,7 @@ func newGetOperation() *cobra.Command { getOperationReq.Name = args[0] - response, err := w.Bundle.GetOperation(ctx, getOperationReq) + response, err := w.BundleDeployments.GetOperation(ctx, getOperationReq) if err != nil { return err } @@ -631,13 +633,13 @@ func newGetOperation() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var getResourceOverrides []func( *cobra.Command, - *bundle.GetResourceRequest, + *bundledeployments.GetResourceRequest, ) func newGetResource() *cobra.Command { cmd := &cobra.Command{} - var getResourceReq bundle.GetResourceRequest + var getResourceReq bundledeployments.GetResourceRequest cmd.Use = "get-resource NAME" cmd.Short = `Get a resource.` @@ -665,7 +667,7 @@ func newGetResource() *cobra.Command { getResourceReq.Name = args[0] - response, err := w.Bundle.GetResource(ctx, getResourceReq) + response, err := w.BundleDeployments.GetResource(ctx, getResourceReq) if err != nil { return err } @@ -691,13 +693,13 @@ func newGetResource() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var getVersionOverrides []func( *cobra.Command, - *bundle.GetVersionRequest, + *bundledeployments.GetVersionRequest, ) func newGetVersion() *cobra.Command { cmd := &cobra.Command{} - var getVersionReq bundle.GetVersionRequest + var getVersionReq bundledeployments.GetVersionRequest cmd.Use = "get-version NAME" cmd.Short = `Get a version.` @@ -725,7 +727,7 @@ func newGetVersion() *cobra.Command { getVersionReq.Name = args[0] - response, err := w.Bundle.GetVersion(ctx, getVersionReq) + response, err := w.BundleDeployments.GetVersion(ctx, getVersionReq) if err != nil { return err } @@ -751,13 +753,13 @@ func newGetVersion() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var heartbeatOverrides []func( *cobra.Command, - *bundle.HeartbeatRequest, + *bundledeployments.HeartbeatRequest, ) func newHeartbeat() *cobra.Command { cmd := &cobra.Command{} - var heartbeatReq bundle.HeartbeatRequest + var heartbeatReq bundledeployments.HeartbeatRequest cmd.Use = "heartbeat NAME" cmd.Short = `Send a version heartbeat.` @@ -789,7 +791,7 @@ func newHeartbeat() *cobra.Command { heartbeatReq.Name = args[0] - response, err := w.Bundle.Heartbeat(ctx, heartbeatReq) + response, err := w.BundleDeployments.Heartbeat(ctx, heartbeatReq) if err != nil { return err } @@ -815,13 +817,13 @@ func newHeartbeat() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var listDeploymentsOverrides []func( *cobra.Command, - *bundle.ListDeploymentsRequest, + *bundledeployments.ListDeploymentsRequest, ) func newListDeployments() *cobra.Command { cmd := &cobra.Command{} - var listDeploymentsReq bundle.ListDeploymentsRequest + var listDeploymentsReq bundledeployments.ListDeploymentsRequest // 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. @@ -856,7 +858,7 @@ func newListDeployments() *cobra.Command { ctx := cmd.Context() w := cmdctx.WorkspaceClient(ctx) - response := w.Bundle.ListDeployments(ctx, listDeploymentsReq) + response := w.BundleDeployments.ListDeployments(ctx, listDeploymentsReq) if listDeploymentsLimit < 0 { return fmt.Errorf("--limit must be a non-negative integer, got %d", listDeploymentsLimit) } @@ -885,13 +887,13 @@ func newListDeployments() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var listOperationsOverrides []func( *cobra.Command, - *bundle.ListOperationsRequest, + *bundledeployments.ListOperationsRequest, ) func newListOperations() *cobra.Command { cmd := &cobra.Command{} - var listOperationsReq bundle.ListOperationsRequest + var listOperationsReq bundledeployments.ListOperationsRequest // 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. @@ -932,7 +934,7 @@ func newListOperations() *cobra.Command { listOperationsReq.Parent = args[0] - response := w.Bundle.ListOperations(ctx, listOperationsReq) + response := w.BundleDeployments.ListOperations(ctx, listOperationsReq) if listOperationsLimit < 0 { return fmt.Errorf("--limit must be a non-negative integer, got %d", listOperationsLimit) } @@ -961,13 +963,13 @@ func newListOperations() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var listResourcesOverrides []func( *cobra.Command, - *bundle.ListResourcesRequest, + *bundledeployments.ListResourcesRequest, ) func newListResources() *cobra.Command { cmd := &cobra.Command{} - var listResourcesReq bundle.ListResourcesRequest + var listResourcesReq bundledeployments.ListResourcesRequest // 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. @@ -1007,7 +1009,7 @@ func newListResources() *cobra.Command { listResourcesReq.Parent = args[0] - response := w.Bundle.ListResources(ctx, listResourcesReq) + response := w.BundleDeployments.ListResources(ctx, listResourcesReq) if listResourcesLimit < 0 { return fmt.Errorf("--limit must be a non-negative integer, got %d", listResourcesLimit) } @@ -1036,13 +1038,13 @@ func newListResources() *cobra.Command { // Functions can be added from the `init()` function in manually curated files in this directory. var listVersionsOverrides []func( *cobra.Command, - *bundle.ListVersionsRequest, + *bundledeployments.ListVersionsRequest, ) func newListVersions() *cobra.Command { cmd := &cobra.Command{} - var listVersionsReq bundle.ListVersionsRequest + var listVersionsReq bundledeployments.ListVersionsRequest // 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. @@ -1083,7 +1085,7 @@ func newListVersions() *cobra.Command { listVersionsReq.Parent = args[0] - response := w.Bundle.ListVersions(ctx, listVersionsReq) + response := w.BundleDeployments.ListVersions(ctx, listVersionsReq) if listVersionsLimit < 0 { return fmt.Errorf("--limit must be a non-negative integer, got %d", listVersionsLimit) } @@ -1106,4 +1108,4 @@ func newListVersions() *cobra.Command { return cmd } -// end service Bundle +// end service BundleDeployments diff --git a/cmd/workspace/catalogs/catalogs.go b/cmd/workspace/catalogs/catalogs.go index 568501b4ea4..9753089ac6e 100644 --- a/cmd/workspace/catalogs/catalogs.go +++ b/cmd/workspace/catalogs/catalogs.go @@ -71,6 +71,7 @@ func newCreate() *cobra.Command { cmd.Flags().StringVar(&createReq.Comment, "comment", createReq.Comment, `User-provided free-form text description.`) cmd.Flags().StringVar(&createReq.ConnectionName, "connection-name", createReq.ConnectionName, `The name of the connection to an external data source.`) + cmd.Flags().Int64Var(&createReq.CustomMaxRetentionHours, "custom-max-retention-hours", createReq.CustomMaxRetentionHours, `Custom maximum retention period in hours for the catalog.`) // TODO: complex arg: managed_encryption_settings // TODO: map via StringToStringVar: options // TODO: map via StringToStringVar: properties @@ -372,6 +373,7 @@ func newUpdate() *cobra.Command { cmd.Flags().Var(&updateJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Flags().StringVar(&updateReq.Comment, "comment", updateReq.Comment, `User-provided free-form text description.`) + cmd.Flags().Int64Var(&updateReq.CustomMaxRetentionHours, "custom-max-retention-hours", updateReq.CustomMaxRetentionHours, `Custom maximum retention period in hours for the catalog.`) cmd.Flags().Var(&updateReq.EnablePredictiveOptimization, "enable-predictive-optimization", `Whether predictive optimization should be enabled for this object and objects under it. Supported values: [DISABLE, ENABLE, INHERIT]`) cmd.Flags().Var(&updateReq.IsolationMode, "isolation-mode", `Whether the current securable is accessible from all workspaces or a specific set of workspaces. Supported values: [ISOLATED, OPEN]`) // TODO: complex arg: managed_encryption_settings diff --git a/cmd/workspace/cmd.go b/cmd/workspace/cmd.go index d944c6c90a2..2244fc1bced 100644 --- a/cmd/workspace/cmd.go +++ b/cmd/workspace/cmd.go @@ -5,13 +5,14 @@ package workspace import ( access_control "github.com/databricks/cli/cmd/workspace/access-control" agent_bricks "github.com/databricks/cli/cmd/workspace/agent-bricks" + ai_search "github.com/databricks/cli/cmd/workspace/ai-search" alerts "github.com/databricks/cli/cmd/workspace/alerts" alerts_legacy "github.com/databricks/cli/cmd/workspace/alerts-legacy" alerts_v2 "github.com/databricks/cli/cmd/workspace/alerts-v2" apps "github.com/databricks/cli/cmd/workspace/apps" apps_settings "github.com/databricks/cli/cmd/workspace/apps-settings" artifact_allowlists "github.com/databricks/cli/cmd/workspace/artifact-allowlists" - bundle "github.com/databricks/cli/cmd/workspace/bundle" + bundle_deployments "github.com/databricks/cli/cmd/workspace/bundle-deployments" catalogs "github.com/databricks/cli/cmd/workspace/catalogs" clean_room_asset_revisions "github.com/databricks/cli/cmd/workspace/clean-room-asset-revisions" clean_room_assets "github.com/databricks/cli/cmd/workspace/clean-room-assets" @@ -137,13 +138,14 @@ func All() []*cobra.Command { out = append(out, access_control.New()) out = append(out, agent_bricks.New()) + out = append(out, ai_search.New()) out = append(out, alerts.New()) out = append(out, alerts_legacy.New()) out = append(out, alerts_v2.New()) out = append(out, apps.New()) out = append(out, apps_settings.New()) out = append(out, artifact_allowlists.New()) - out = append(out, bundle.New()) + out = append(out, bundle_deployments.New()) out = append(out, catalogs.New()) out = append(out, clean_room_asset_revisions.New()) out = append(out, clean_room_assets.New()) diff --git a/cmd/workspace/connections/connections.go b/cmd/workspace/connections/connections.go index 7753bba923f..99220048db1 100644 --- a/cmd/workspace/connections/connections.go +++ b/cmd/workspace/connections/connections.go @@ -20,18 +20,16 @@ var cmdOverrides []func(*cobra.Command) func New() *cobra.Command { cmd := &cobra.Command{ Use: "connections", - Short: `Connections allow for creating a connection to an external data source.`, - Long: `Connections allow for creating a connection to an external data source. - - A connection is an abstraction of an external data source that can be - connected from Databricks Compute. Creating a connection object is the first - step to managing external data sources within Unity Catalog, with the second - step being creating a data object (catalog, schema, or table) using the - connection. Data objects derived from a connection can be written to or read - from similar to other Unity Catalog data objects based on cloud storage. Users - may create different types of connections with each connection having a unique - set of configuration options to support credential management and other - settings.`, + Short: `A connection represents an external data source for use within Databricks.`, + Long: `A connection represents an external data source for use within Databricks. + + Creating a connection object is the first step to managing external data + sources within Unity Catalog. The second step is creating a data object + (catalog, schema, or table) using the connection. Data objects derived from a + connection can be written to or read from similar to other Unity Catalog data + objects based on cloud storage. You can create different types of connections, + and each connection has a unique set of configuration options to support + credential management and other settings.`, GroupID: "catalog", RunE: root.ReportUnknownSubcommand, } @@ -73,6 +71,7 @@ func newCreate() *cobra.Command { cmd.Flags().Var(&createJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Flags().StringVar(&createReq.Comment, "comment", createReq.Comment, `User-provided free-form text description.`) + // TODO: complex arg: environment_settings // TODO: map via StringToStringVar: properties cmd.Flags().BoolVar(&createReq.ReadOnly, "read-only", createReq.ReadOnly, `If the connection is read only.`) @@ -366,6 +365,7 @@ func newUpdate() *cobra.Command { cmd.Flags().Var(&updateJson, "json", `either inline JSON string or @path/to/file.json with request body`) + // TODO: complex arg: environment_settings cmd.Flags().StringVar(&updateReq.NewName, "new-name", updateReq.NewName, `New name for the connection.`) cmd.Flags().StringVar(&updateReq.Owner, "owner", updateReq.Owner, `Username of current owner of the connection.`) diff --git a/cmd/workspace/database/database.go b/cmd/workspace/database/database.go index 92aa1408bfd..ef18c20038a 100644 --- a/cmd/workspace/database/database.go +++ b/cmd/workspace/database/database.go @@ -96,7 +96,7 @@ Create a Database Catalog. Arguments: NAME: The name of the catalog in UC. DATABASE_INSTANCE_NAME: The name of the DatabaseInstance housing the database. - DATABASE_NAME: The name of the database (in a instance) associated with the catalog.` + DATABASE_NAME: The name of the database (in an instance) associated with the catalog.` cmd.Annotations = make(map[string]string) cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" @@ -619,7 +619,7 @@ func newDeleteDatabaseInstance() *cobra.Command { var deleteDatabaseInstanceReq database.DeleteDatabaseInstanceRequest - cmd.Flags().BoolVar(&deleteDatabaseInstanceReq.Force, "force", deleteDatabaseInstanceReq.Force, `By default, a instance cannot be deleted if it has descendant instances created via PITR.`) + cmd.Flags().BoolVar(&deleteDatabaseInstanceReq.Force, "force", deleteDatabaseInstanceReq.Force, `By default, an instance cannot be deleted if it has descendant instances created via PITR.`) cmd.Flags().BoolVar(&deleteDatabaseInstanceReq.Purge, "purge", deleteDatabaseInstanceReq.Purge, `Deprecated.`) cmd.Use = "delete-database-instance NAME" @@ -1592,7 +1592,7 @@ func newUpdateDatabaseCatalog() *cobra.Command { NAME: The name of the catalog in UC. UPDATE_MASK: The list of fields to update. Setting this field is not yet supported. DATABASE_INSTANCE_NAME: The name of the DatabaseInstance housing the database. - DATABASE_NAME: The name of the database (in a instance) associated with the catalog.` + DATABASE_NAME: The name of the database (in an instance) associated with the catalog.` // This command is being previewed; hide from help output. cmd.Hidden = true diff --git a/cmd/workspace/entity-tag-assignments/entity-tag-assignments.go b/cmd/workspace/entity-tag-assignments/entity-tag-assignments.go index d3e98174a93..b269222fcce 100644 --- a/cmd/workspace/entity-tag-assignments/entity-tag-assignments.go +++ b/cmd/workspace/entity-tag-assignments/entity-tag-assignments.go @@ -22,10 +22,10 @@ func New() *cobra.Command { Use: "entity-tag-assignments", Short: `Tags are attributes that include keys and optional values that you can use to organize and categorize entities in Unity Catalog.`, Long: `Tags are attributes that include keys and optional values that you can use to - organize and categorize entities in Unity Catalog. Entity tagging is currently - supported on catalogs, schemas, tables (including views), columns, volumes. - With these APIs, users can create, update, delete, and list tag assignments - across Unity Catalog entities`, + organize and categorize entities in Unity Catalog. Entity tagging is supported + on catalogs, schemas, tables (including views), columns, and volumes. With + these APIs, you can create, update, delete, and list tag assignments across + Unity Catalog entities.`, GroupID: "catalog", RunE: root.ReportUnknownSubcommand, } diff --git a/cmd/workspace/feature-engineering/feature-engineering.go b/cmd/workspace/feature-engineering/feature-engineering.go index 47df60b489c..61497c9c5f3 100644 --- a/cmd/workspace/feature-engineering/feature-engineering.go +++ b/cmd/workspace/feature-engineering/feature-engineering.go @@ -195,6 +195,7 @@ func newCreateKafkaConfig() *cobra.Command { // TODO: complex arg: backfill_source // TODO: map via StringToStringVar: extra_options + // TODO: complex arg: ingestion_config // TODO: complex arg: key_schema // TODO: complex arg: value_schema @@ -1388,6 +1389,7 @@ func newUpdateKafkaConfig() *cobra.Command { // TODO: complex arg: backfill_source // TODO: map via StringToStringVar: extra_options + // TODO: complex arg: ingestion_config // TODO: complex arg: key_schema // TODO: complex arg: value_schema diff --git a/cmd/workspace/grants/grants.go b/cmd/workspace/grants/grants.go index b7d40343867..8b71709b5e8 100644 --- a/cmd/workspace/grants/grants.go +++ b/cmd/workspace/grants/grants.go @@ -25,11 +25,10 @@ func New() *cobra.Command { object. Securable objects in Unity Catalog are hierarchical and privileges are inherited downward. - Securable objects in Unity Catalog are hierarchical and privileges are - inherited downward. This means that granting a privilege on the catalog - automatically grants the privilege to all current and future objects within - the catalog. Similarly, privileges granted on a schema are inherited by all - current and future objects within that schema.`, + This means that granting a privilege on the catalog automatically grants the + privilege to all current and future objects within the catalog. Similarly, + privileges granted on a schema are inherited by all current and future objects + within that schema.`, GroupID: "catalog", RunE: root.ReportUnknownSubcommand, } diff --git a/cmd/workspace/groups.go b/cmd/workspace/groups.go index 985b4815695..35e1bdd36c2 100644 --- a/cmd/workspace/groups.go +++ b/cmd/workspace/groups.go @@ -40,6 +40,10 @@ func Groups() []cobra.Group { ID: "vectorsearch", Title: "Vector Search", }, + { + ID: "aisearch", + Title: "AI Search", + }, { ID: "iam", Title: "Identity and Access Management", @@ -109,8 +113,8 @@ func Groups() []cobra.Group { Title: "Environments", }, { - ID: "bundle", - Title: "Bundle", + ID: "bundledeployments", + Title: "Bundle Deployments", }, } } diff --git a/cmd/workspace/model-versions/model-versions.go b/cmd/workspace/model-versions/model-versions.go index 44e1bd995ed..039c545ade9 100644 --- a/cmd/workspace/model-versions/model-versions.go +++ b/cmd/workspace/model-versions/model-versions.go @@ -298,7 +298,7 @@ func newList() *cobra.Command { The returned models are filtered based on the privileges of the calling user. For example, the metastore admin is able to list all the model versions. A regular user needs to be the owner or have the **EXECUTE** privilege on the - parent registered model to recieve the model versions in the response. For the + parent registered model to receive the model versions in the response. For the latter case, the caller must also be the owner or have the **USE_CATALOG** privilege on the parent catalog and the **USE_SCHEMA** privilege on the parent schema. diff --git a/cmd/workspace/pipelines/pipelines.go b/cmd/workspace/pipelines/pipelines.go index 75b2cc514c8..d5f4a2046b2 100644 --- a/cmd/workspace/pipelines/pipelines.go +++ b/cmd/workspace/pipelines/pipelines.go @@ -1188,6 +1188,7 @@ func newUpdate() *cobra.Command { // TODO: complex arg: run_as cmd.Flags().StringVar(&updateReq.Schema, "schema", updateReq.Schema, `The default schema (database) where tables are read from or published to.`) cmd.Flags().BoolVar(&updateReq.Serverless, "serverless", updateReq.Serverless, `Whether serverless compute is enabled for this pipeline.`) + cmd.Flags().StringVar(&updateReq.ServerlessComputeId, "serverless-compute-id", updateReq.ServerlessComputeId, `Serverless compute ID specified by the user for serverless pipelines.`) cmd.Flags().StringVar(&updateReq.Storage, "storage", updateReq.Storage, `DBFS root directory for storing checkpoints and tables.`) // TODO: map via StringToStringVar: tags cmd.Flags().StringVar(&updateReq.Target, "target", updateReq.Target, `Target schema (database) to add tables in this pipeline to.`) diff --git a/cmd/workspace/postgres/postgres.go b/cmd/workspace/postgres/postgres.go index 9522a6d7745..f66c43fb722 100644 --- a/cmd/workspace/postgres/postgres.go +++ b/cmd/workspace/postgres/postgres.go @@ -50,6 +50,7 @@ Use the Postgres API to create and manage Lakebase Autoscaling Postgres // Add methods cmd.AddCommand(newCreateBranch()) cmd.AddCommand(newCreateCatalog()) + cmd.AddCommand(newCreateDataApi()) cmd.AddCommand(newCreateDatabase()) cmd.AddCommand(newCreateEndpoint()) cmd.AddCommand(newCreateProject()) @@ -57,6 +58,7 @@ Use the Postgres API to create and manage Lakebase Autoscaling Postgres cmd.AddCommand(newCreateSyncedTable()) cmd.AddCommand(newDeleteBranch()) cmd.AddCommand(newDeleteCatalog()) + cmd.AddCommand(newDeleteDataApi()) cmd.AddCommand(newDeleteDatabase()) cmd.AddCommand(newDeleteEndpoint()) cmd.AddCommand(newDeleteProject()) @@ -65,6 +67,7 @@ Use the Postgres API to create and manage Lakebase Autoscaling Postgres cmd.AddCommand(newGenerateDatabaseCredential()) cmd.AddCommand(newGetBranch()) cmd.AddCommand(newGetCatalog()) + cmd.AddCommand(newGetDataApi()) cmd.AddCommand(newGetDatabase()) cmd.AddCommand(newGetEndpoint()) cmd.AddCommand(newGetOperation()) @@ -79,6 +82,7 @@ Use the Postgres API to create and manage Lakebase Autoscaling Postgres cmd.AddCommand(newUndeleteBranch()) cmd.AddCommand(newUndeleteProject()) cmd.AddCommand(newUpdateBranch()) + cmd.AddCommand(newUpdateDataApi()) cmd.AddCommand(newUpdateDatabase()) cmd.AddCommand(newUpdateEndpoint()) cmd.AddCommand(newUpdateProject()) @@ -345,6 +349,128 @@ Register a Database in UC. return cmd } +// start create-data-api 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 createDataApiOverrides []func( + *cobra.Command, + *postgres.CreateDataApiRequest, +) + +func newCreateDataApi() *cobra.Command { + cmd := &cobra.Command{} + + var createDataApiReq postgres.CreateDataApiRequest + createDataApiReq.DataApi = postgres.DataApi{} + var createDataApiJson flags.JsonFlag + + var createDataApiSkipWait bool + var createDataApiTimeout time.Duration + + cmd.Flags().BoolVar(&createDataApiSkipWait, "no-wait", createDataApiSkipWait, `do not wait to reach DONE state`) + cmd.Flags().DurationVar(&createDataApiTimeout, "timeout", 0, `maximum amount of time to reach DONE state`) + + cmd.Flags().Var(&createDataApiJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&createDataApiReq.DataApi.Name, "name", createDataApiReq.DataApi.Name, `Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api.`) + // TODO: complex arg: spec + // TODO: complex arg: status + + cmd.Use = "create-data-api PARENT" + cmd.Short = `Enable Data API for a database.` + cmd.Long = `Enable Data API for a database. + + This is a long-running operation. By default, the command waits for the + operation to complete. Use --no-wait to return immediately with the raw + operation details. The operation's 'name' field can then be used to poll for + completion using the get-operation command. + + Arguments: + PARENT: Parent database: + projects/{project_id}/branches/{branch_id}/databases/{database_id}` + + // 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) + + if cmd.Flags().Changed("json") { + diags := createDataApiJson.Unmarshal(&createDataApiReq.DataApi) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + createDataApiReq.Parent = args[0] + + // Determine which mode to execute based on flags. + switch { + case createDataApiSkipWait: + wait, err := w.Postgres.CreateDataApi(ctx, createDataApiReq) + if err != nil { + return err + } + + // Return operation immediately without waiting. + operation, err := w.Postgres.GetOperation(ctx, postgres.GetOperationRequest{ + Name: wait.Name(), + }) + if err != nil { + return err + } + return cmdio.Render(ctx, operation) + + default: + wait, err := w.Postgres.CreateDataApi(ctx, createDataApiReq) + if err != nil { + return err + } + + // Show spinner while waiting for completion. + sp := cmdio.NewSpinner(ctx) + sp.Update("Waiting for create-data-api to complete...") + + // Wait for completion. + opts := api.WithTimeout(createDataApiTimeout) + response, err := wait.Wait(ctx, opts) + if err != nil { + return err + } + sp.Close() + 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 createDataApiOverrides { + fn(cmd, &createDataApiReq) + } + + return cmd +} + // start create-database command // Slice with functions to override default command behavior. @@ -1195,6 +1321,109 @@ Delete a Database Catalog. return cmd } +// start delete-data-api 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 deleteDataApiOverrides []func( + *cobra.Command, + *postgres.DeleteDataApiRequest, +) + +func newDeleteDataApi() *cobra.Command { + cmd := &cobra.Command{} + + var deleteDataApiReq postgres.DeleteDataApiRequest + + var deleteDataApiSkipWait bool + var deleteDataApiTimeout time.Duration + + cmd.Flags().BoolVar(&deleteDataApiSkipWait, "no-wait", deleteDataApiSkipWait, `do not wait to reach DONE state`) + cmd.Flags().DurationVar(&deleteDataApiTimeout, "timeout", 0, `maximum amount of time to reach DONE state`) + + cmd.Use = "delete-data-api NAME" + cmd.Short = `Disable Data API for a database.` + cmd.Long = `Disable Data API for a database. + + This is a long-running operation. By default, the command waits for the + operation to complete. Use --no-wait to return immediately with the raw + operation details. The operation's 'name' field can then be used to poll for + completion using the get-operation command. + + Arguments: + NAME: Resource name: + projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api` + + // 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) + + deleteDataApiReq.Name = args[0] + + // Determine which mode to execute based on flags. + switch { + case deleteDataApiSkipWait: + wait, err := w.Postgres.DeleteDataApi(ctx, deleteDataApiReq) + if err != nil { + return err + } + + // Return operation immediately without waiting. + operation, err := w.Postgres.GetOperation(ctx, postgres.GetOperationRequest{ + Name: wait.Name(), + }) + if err != nil { + return err + } + return cmdio.Render(ctx, operation) + + default: + wait, err := w.Postgres.DeleteDataApi(ctx, deleteDataApiReq) + if err != nil { + return err + } + + // Show spinner while waiting for completion. + sp := cmdio.NewSpinner(ctx) + sp.Update("Waiting for delete-data-api to complete...") + + // Wait for completion. + opts := api.WithTimeout(deleteDataApiTimeout) + + err = wait.Wait(ctx, opts) + if err != nil { + return err + } + sp.Close() + 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 deleteDataApiOverrides { + fn(cmd, &deleteDataApiReq) + } + + return cmd +} + // start delete-database command // Slice with functions to override default command behavior. @@ -1927,6 +2156,69 @@ Get a Database Catalog. return cmd } +// start get-data-api 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 getDataApiOverrides []func( + *cobra.Command, + *postgres.GetDataApiRequest, +) + +func newGetDataApi() *cobra.Command { + cmd := &cobra.Command{} + + var getDataApiReq postgres.GetDataApiRequest + + cmd.Use = "get-data-api NAME" + cmd.Short = `Get Data API configuration.` + cmd.Long = `Get Data API configuration. + + Get Data API configuration for a database. + + Arguments: + NAME: Resource name: + projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api` + + // 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) + + getDataApiReq.Name = args[0] + + response, err := w.Postgres.GetDataApi(ctx, getDataApiReq) + 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 getDataApiOverrides { + fn(cmd, &getDataApiReq) + } + + return cmd +} + // start get-database command // Slice with functions to override default command behavior. @@ -3025,6 +3317,136 @@ Update a Branch. return cmd } +// start update-data-api 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 updateDataApiOverrides []func( + *cobra.Command, + *postgres.UpdateDataApiRequest, +) + +func newUpdateDataApi() *cobra.Command { + cmd := &cobra.Command{} + + var updateDataApiReq postgres.UpdateDataApiRequest + updateDataApiReq.DataApi = postgres.DataApi{} + var updateDataApiJson flags.JsonFlag + + var updateDataApiSkipWait bool + var updateDataApiTimeout time.Duration + + cmd.Flags().BoolVar(&updateDataApiSkipWait, "no-wait", updateDataApiSkipWait, `do not wait to reach DONE state`) + cmd.Flags().DurationVar(&updateDataApiTimeout, "timeout", 0, `maximum amount of time to reach DONE state`) + + cmd.Flags().Var(&updateDataApiJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&updateDataApiReq.DataApi.Name, "name", updateDataApiReq.DataApi.Name, `Resource name: projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api.`) + // TODO: complex arg: spec + // TODO: complex arg: status + + cmd.Use = "update-data-api NAME UPDATE_MASK" + cmd.Short = `Update Data API configuration.` + cmd.Long = `Update Data API configuration. + + Update Data API configuration for a database. + + This is a long-running operation. By default, the command waits for the + operation to complete. Use --no-wait to return immediately with the raw + operation details. The operation's 'name' field can then be used to poll for + completion using the get-operation command. + + Arguments: + NAME: Resource name: + projects/{project_id}/branches/{branch_id}/databases/{database_id}/data-api + UPDATE_MASK: The list of fields to update. If unspecified, all fields will be updated + when possible.` + + // 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(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 := updateDataApiJson.Unmarshal(&updateDataApiReq.DataApi) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + updateDataApiReq.Name = args[0] + if args[1] != "" { + updateMaskArray := strings.Split(args[1], ",") + updateDataApiReq.UpdateMask = *fieldmask.New(updateMaskArray) + } + + // Determine which mode to execute based on flags. + switch { + case updateDataApiSkipWait: + wait, err := w.Postgres.UpdateDataApi(ctx, updateDataApiReq) + if err != nil { + return err + } + + // Return operation immediately without waiting. + operation, err := w.Postgres.GetOperation(ctx, postgres.GetOperationRequest{ + Name: wait.Name(), + }) + if err != nil { + return err + } + return cmdio.Render(ctx, operation) + + default: + wait, err := w.Postgres.UpdateDataApi(ctx, updateDataApiReq) + if err != nil { + return err + } + + // Show spinner while waiting for completion. + sp := cmdio.NewSpinner(ctx) + sp.Update("Waiting for update-data-api to complete...") + + // Wait for completion. + opts := api.WithTimeout(updateDataApiTimeout) + response, err := wait.Wait(ctx, opts) + if err != nil { + return err + } + sp.Close() + 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 updateDataApiOverrides { + fn(cmd, &updateDataApiReq) + } + + return cmd +} + // start update-database command // Slice with functions to override default command behavior. diff --git a/cmd/workspace/registered-models/registered-models.go b/cmd/workspace/registered-models/registered-models.go index 66628aa810c..5e423cd9bb3 100644 --- a/cmd/workspace/registered-models/registered-models.go +++ b/cmd/workspace/registered-models/registered-models.go @@ -28,9 +28,9 @@ func New() *cobra.Command { An MLflow registered model resides in the third layer of Unity Catalog’s three-level namespace. Registered models contain model versions, which correspond to actual ML models (MLflow models). Creating new model versions - currently requires use of the MLflow Python client. Once model versions are - created, you can load them for batch inference using MLflow Python client - APIs, or deploy them for real-time serving using Databricks Model Serving. + requires use of the MLflow Python client. After model versions are created, + you can load them for batch inference using MLflow Python client APIs, or + deploy them for real-time serving using Databricks Model Serving. All operations on registered models and model versions require USE_CATALOG permissions on the enclosing catalog and USE_SCHEMA permissions on the @@ -47,9 +47,9 @@ func New() *cobra.Command { update permissions on the registered model, users must be owners of the registered model. - Note: The securable type for models is FUNCTION. When using REST APIs (e.g. - tagging, grants) that specify a securable type, use FUNCTION as the securable - type.`, + Note: The securable type for models is FUNCTION. When using REST APIs (for + example, tagging, grants) that specify a securable type, use FUNCTION as the + securable type.`, GroupID: "catalog", RunE: root.ReportUnknownSubcommand, } @@ -431,7 +431,7 @@ func newList() *cobra.Command { The returned models are filtered based on the privileges of the calling user. For example, the metastore admin is able to list all the registered models. A regular user needs to be the owner or have the **EXECUTE** privilege on the - registered model to recieve the registered models in the response. For the + registered model to receive the registered models in the response. For the latter case, the caller must also be the owner or have the **USE_CATALOG** privilege on the parent catalog and the **USE_SCHEMA** privilege on the parent schema. diff --git a/cmd/workspace/repos/repos.go b/cmd/workspace/repos/repos.go index dd8f1f3c53b..cbcde860760 100644 --- a/cmd/workspace/repos/repos.go +++ b/cmd/workspace/repos/repos.go @@ -624,6 +624,7 @@ func newUpdate() *cobra.Command { cmd.Flags().Var(&updateJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Flags().StringVar(&updateReq.Branch, "branch", updateReq.Branch, `Branch that the local version of the repo is checked out to.`) + cmd.Flags().BoolVar(&updateReq.DangerouslyForceDiscardAll, "dangerously-force-discard-all", updateReq.DangerouslyForceDiscardAll, `WARNING: DESTRUCTIVE AND IRREVERSIBLE.`) // TODO: complex arg: sparse_checkout cmd.Flags().StringVar(&updateReq.Tag, "tag", updateReq.Tag, `Tag that the local version of the repo is checked out to.`) diff --git a/cmd/workspace/schemas/schemas.go b/cmd/workspace/schemas/schemas.go index 768e6729bae..248e18b4996 100644 --- a/cmd/workspace/schemas/schemas.go +++ b/cmd/workspace/schemas/schemas.go @@ -22,7 +22,7 @@ func New() *cobra.Command { Use: "schemas", Short: `A schema (also called a database) is the second layer of Unity Catalog’s three-level namespace.`, Long: `A schema (also called a database) is the second layer of Unity Catalog’s - three-level namespace. A schema organizes tables, views and functions. To + three-level namespace. A schema organizes tables, views, and functions. To access (or list) a table or view in a schema, users must have the USE_SCHEMA data permission on the schema and its parent catalog, and they must have the SELECT permission on the table or view.`, @@ -67,6 +67,7 @@ func newCreate() *cobra.Command { cmd.Flags().Var(&createJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Flags().StringVar(&createReq.Comment, "comment", createReq.Comment, `User-provided free-form text description.`) + cmd.Flags().Int64Var(&createReq.CustomMaxRetentionHours, "custom-max-retention-hours", createReq.CustomMaxRetentionHours, `Custom maximum retention period in hours for the schema.`) // TODO: map via StringToStringVar: properties cmd.Flags().StringVar(&createReq.StorageRoot, "storage-root", createReq.StorageRoot, `Storage root URL for managed tables within schema.`) @@ -373,6 +374,7 @@ func newUpdate() *cobra.Command { cmd.Flags().Var(&updateJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Flags().StringVar(&updateReq.Comment, "comment", updateReq.Comment, `User-provided free-form text description.`) + cmd.Flags().Int64Var(&updateReq.CustomMaxRetentionHours, "custom-max-retention-hours", updateReq.CustomMaxRetentionHours, `Custom maximum retention period in hours for the schema.`) cmd.Flags().Var(&updateReq.EnablePredictiveOptimization, "enable-predictive-optimization", `Whether predictive optimization should be enabled for this object and objects under it. Supported values: [DISABLE, ENABLE, INHERIT]`) cmd.Flags().StringVar(&updateReq.NewName, "new-name", updateReq.NewName, `New name for the schema.`) cmd.Flags().StringVar(&updateReq.Owner, "owner", updateReq.Owner, `Username of current owner of schema.`) diff --git a/cmd/workspace/system-schemas/system-schemas.go b/cmd/workspace/system-schemas/system-schemas.go index a1bcba0cc7c..f29cd30a16d 100644 --- a/cmd/workspace/system-schemas/system-schemas.go +++ b/cmd/workspace/system-schemas/system-schemas.go @@ -25,7 +25,7 @@ func New() *cobra.Command { A system schema is a schema that lives within the system catalog. A system schema may contain information about customer usage of Unity Catalog such as - audit-logs, billing-logs, lineage information, etc.`, + audit logs, billing logs, and lineage information.`, GroupID: "catalog", RunE: root.ReportUnknownSubcommand, } diff --git a/cmd/workspace/table-constraints/table-constraints.go b/cmd/workspace/table-constraints/table-constraints.go index f01a2c9b345..cf2891200db 100644 --- a/cmd/workspace/table-constraints/table-constraints.go +++ b/cmd/workspace/table-constraints/table-constraints.go @@ -26,9 +26,9 @@ func New() *cobra.Command { Primary and foreign keys are informational only and are not enforced. Foreign keys must reference a primary key in another table. This primary key is the - parent constraint of the foreign key and the table this primary key is on is + parent constraint of the foreign key, and the table this primary key is on is the parent table of the foreign key. Similarly, the foreign key is the child - constraint of its referenced primary key; the table of the foreign key is the + constraint of its referenced primary key. The table of the foreign key is the child table of the primary key. You can declare primary keys and foreign keys as part of the table diff --git a/cmd/workspace/temporary-path-credentials/temporary-path-credentials.go b/cmd/workspace/temporary-path-credentials/temporary-path-credentials.go index b7b5c76e4ca..0bd28cd8487 100644 --- a/cmd/workspace/temporary-path-credentials/temporary-path-credentials.go +++ b/cmd/workspace/temporary-path-credentials/temporary-path-credentials.go @@ -20,31 +20,32 @@ var cmdOverrides []func(*cobra.Command) func New() *cobra.Command { cmd := &cobra.Command{ Use: "temporary-path-credentials", - Short: `Temporary Path Credentials refer to short-lived, downscoped credentials used to access external cloud storage locations registered in Databricks.`, - Long: `Temporary Path Credentials refer to short-lived, downscoped credentials used - to access external cloud storage locations registered in Databricks. These - credentials are employed to provide secure and time-limited access to data in - cloud environments such as AWS, Azure, and Google Cloud. Each cloud provider - has its own type of credentials: AWS uses temporary session tokens via AWS - Security Token Service (STS), Azure utilizes Shared Access Signatures (SAS) - for its data storage services, and Google Cloud supports temporary credentials + Short: `Temporary Path Credentials are short-lived, downscoped credentials used to access external cloud storage locations registered in Databricks.`, + Long: `Temporary Path Credentials are short-lived, downscoped credentials used to + access external cloud storage locations registered in Databricks. These + credentials provide secure and time-limited access to data in cloud + environments such as AWS, Azure, and Google Cloud. Each cloud provider has its + own type of credentials: AWS uses temporary session tokens through AWS + Security Token Service (STS), Azure uses Shared Access Signatures (SAS) for + its data storage services, and Google Cloud supports temporary credentials through OAuth 2.0. Temporary path credentials ensure that data access is limited in scope and duration, reducing the risk of unauthorized access or misuse. To use the - temporary path credentials API, a metastore admin needs to enable the + temporary path credentials API, a metastore admin must enable the external_access_enabled flag (off by default) at the metastore level. A user - needs to be granted the EXTERNAL USE LOCATION permission by external location - owner. For requests on existing external tables and external volumes, user - also needs to be granted the EXTERNAL USE SCHEMA permission at the schema - level by catalog owner. + must be granted the EXTERNAL USE LOCATION permission by the external location + owner. For requests on existing external tables and external volumes, the user + must also be granted the EXTERNAL USE SCHEMA permission at the schema level by + the catalog owner. Note that EXTERNAL USE SCHEMA is a schema level permission that can only be - granted by catalog owner explicitly and is not included in schema ownership or - ALL PRIVILEGES on the schema for security reasons. Similarly, EXTERNAL USE - LOCATION is an external location level permission that can only be granted by - external location owner explicitly and is not included in external location - ownership or ALL PRIVILEGES on the external location for security reasons.`, + granted by the catalog owner explicitly and is not included in schema + ownership or ALL PRIVILEGES on the schema for security reasons. Similarly, + EXTERNAL USE LOCATION is an external location level permission that can only + be granted by the external location owner explicitly and is not included in + external location ownership or ALL PRIVILEGES on the external location for + security reasons.`, GroupID: "catalog", RunE: root.ReportUnknownSubcommand, } diff --git a/cmd/workspace/temporary-table-credentials/temporary-table-credentials.go b/cmd/workspace/temporary-table-credentials/temporary-table-credentials.go index d0511467f95..7ec127cbb05 100644 --- a/cmd/workspace/temporary-table-credentials/temporary-table-credentials.go +++ b/cmd/workspace/temporary-table-credentials/temporary-table-credentials.go @@ -18,24 +18,24 @@ var cmdOverrides []func(*cobra.Command) func New() *cobra.Command { cmd := &cobra.Command{ Use: "temporary-table-credentials", - Short: `Temporary Table Credentials refer to short-lived, downscoped credentials used to access cloud storage locations where table data is stored in Databricks.`, - Long: `Temporary Table Credentials refer to short-lived, downscoped credentials used - to access cloud storage locations where table data is stored in Databricks. - These credentials are employed to provide secure and time-limited access to - data in cloud environments such as AWS, Azure, and Google Cloud. Each cloud - provider has its own type of credentials: AWS uses temporary session tokens - via AWS Security Token Service (STS), Azure utilizes Shared Access Signatures - (SAS) for its data storage services, and Google Cloud supports temporary - credentials through OAuth 2.0. + Short: `Temporary Table Credentials are short-lived, downscoped credentials used to access cloud storage locations where table data is stored in Databricks.`, + Long: `Temporary Table Credentials are short-lived, downscoped credentials used to + access cloud storage locations where table data is stored in Databricks. These + credentials provide secure and time-limited access to data in cloud + environments such as AWS, Azure, and Google Cloud. Each cloud provider has its + own type of credentials: AWS uses temporary session tokens through AWS + Security Token Service (STS), Azure uses Shared Access Signatures (SAS) for + its data storage services, and Google Cloud supports temporary credentials + through OAuth 2.0. Temporary table credentials ensure that data access is limited in scope and duration, reducing the risk of unauthorized access or misuse. To use the - temporary table credentials API, a metastore admin needs to enable the - external_access_enabled flag (off by default) at the metastore level, and user - needs to be granted the EXTERNAL USE SCHEMA permission at the schema level by - catalog owner. Note that EXTERNAL USE SCHEMA is a schema level permission that - can only be granted by catalog owner explicitly and is not included in schema - ownership or ALL PRIVILEGES on the schema for security reasons.`, + temporary table credentials API, a metastore admin must enable the + external_access_enabled flag (off by default) at the metastore level, and the + user must be granted the EXTERNAL USE SCHEMA permission at the schema level by + the catalog owner. Note that EXTERNAL USE SCHEMA is a schema level permission + that can only be granted by the catalog owner explicitly and is not included + in schema ownership or ALL PRIVILEGES on the schema for security reasons.`, GroupID: "catalog", RunE: root.ReportUnknownSubcommand, } diff --git a/cmd/workspace/temporary-volume-credentials/temporary-volume-credentials.go b/cmd/workspace/temporary-volume-credentials/temporary-volume-credentials.go index 1afe54d31f5..d503dba3a08 100644 --- a/cmd/workspace/temporary-volume-credentials/temporary-volume-credentials.go +++ b/cmd/workspace/temporary-volume-credentials/temporary-volume-credentials.go @@ -18,26 +18,26 @@ var cmdOverrides []func(*cobra.Command) func New() *cobra.Command { cmd := &cobra.Command{ Use: "temporary-volume-credentials", - Short: `*Public Preview* Temporary Volume Credentials refer to short-lived, downscoped credentials used to access cloud storage locations where volume data is stored in Databricks.`, + Short: `*Public Preview* Temporary Volume Credentials are short-lived, downscoped credentials used to access cloud storage locations where volume data is stored in Databricks.`, Long: `This command is in Public Preview and may change without notice. -Temporary Volume Credentials refer to short-lived, downscoped credentials used - to access cloud storage locations where volume data is stored in Databricks. - These credentials are employed to provide secure and time-limited access to - data in cloud environments such as AWS, Azure, and Google Cloud. Each cloud - provider has its own type of credentials: AWS uses temporary session tokens - via AWS Security Token Service (STS), Azure utilizes Shared Access Signatures - (SAS) for its data storage services, and Google Cloud supports temporary - credentials through OAuth 2.0. +Temporary Volume Credentials are short-lived, downscoped credentials used to + access cloud storage locations where volume data is stored in Databricks. + These credentials provide secure and time-limited access to data in cloud + environments such as AWS, Azure, and Google Cloud. Each cloud provider has its + own type of credentials: AWS uses temporary session tokens through AWS + Security Token Service (STS), Azure uses Shared Access Signatures (SAS) for + its data storage services, and Google Cloud supports temporary credentials + through OAuth 2.0. Temporary volume credentials ensure that data access is limited in scope and duration, reducing the risk of unauthorized access or misuse. To use the - temporary volume credentials API, a metastore admin needs to enable the - external_access_enabled flag (off by default) at the metastore level, and user - needs to be granted the EXTERNAL USE SCHEMA permission at the schema level by - catalog owner. Note that EXTERNAL USE SCHEMA is a schema level permission that - can only be granted by catalog owner explicitly and is not included in schema - ownership or ALL PRIVILEGES on the schema for security reasons.`, + temporary volume credentials API, a metastore admin must enable the + external_access_enabled flag (off by default) at the metastore level, and the + user must be granted the EXTERNAL USE SCHEMA permission at the schema level by + the catalog owner. Note that EXTERNAL USE SCHEMA is a schema level permission + that can only be granted by the catalog owner explicitly and is not included + in schema ownership or ALL PRIVILEGES on the schema for security reasons.`, GroupID: "catalog", RunE: root.ReportUnknownSubcommand, } diff --git a/cmd/workspace/vector-search-indexes/vector-search-indexes.go b/cmd/workspace/vector-search-indexes/vector-search-indexes.go index 53b5c250716..c0126db5abd 100644 --- a/cmd/workspace/vector-search-indexes/vector-search-indexes.go +++ b/cmd/workspace/vector-search-indexes/vector-search-indexes.go @@ -445,13 +445,16 @@ func newQueryIndex() *cobra.Command { cmd.Flags().Var(&queryIndexJson, "json", `either inline JSON string or @path/to/file.json with request body`) // TODO: array: columns_to_rerank + // TODO: array: facets cmd.Flags().StringVar(&queryIndexReq.FiltersJson, "filters-json", queryIndexReq.FiltersJson, `JSON string representing query filters.`) cmd.Flags().IntVar(&queryIndexReq.NumResults, "num-results", queryIndexReq.NumResults, `Number of results to return.`) + // TODO: array: query_columns cmd.Flags().StringVar(&queryIndexReq.QueryText, "query-text", queryIndexReq.QueryText, `Query text.`) cmd.Flags().StringVar(&queryIndexReq.QueryType, "query-type", queryIndexReq.QueryType, `The query type to use.`) // TODO: array: query_vector // TODO: complex arg: reranker cmd.Flags().Float64Var(&queryIndexReq.ScoreThreshold, "score-threshold", queryIndexReq.ScoreThreshold, `Threshold for the approximate nearest neighbor search.`) + // TODO: array: sort_columns cmd.Use = "query-index INDEX_NAME" cmd.Short = `Query an index.` diff --git a/cmd/workspace/volumes/volumes.go b/cmd/workspace/volumes/volumes.go index 29750eb3e3b..9e8acd065ef 100644 --- a/cmd/workspace/volumes/volumes.go +++ b/cmd/workspace/volumes/volumes.go @@ -20,15 +20,15 @@ var cmdOverrides []func(*cobra.Command) func New() *cobra.Command { cmd := &cobra.Command{ Use: "volumes", - Short: `Volumes are a Unity Catalog (UC) capability for accessing, storing, governing, organizing and processing files.`, + Short: `Volumes are a Unity Catalog (UC) capability for accessing, storing, governing, organizing, and processing files.`, Long: `Volumes are a Unity Catalog (UC) capability for accessing, storing, governing, - organizing and processing files. Use cases include running machine learning on - unstructured data such as image, audio, video, or PDF files, organizing data - sets during the data exploration stages in data science, working with + organizing, and processing files. Use cases include running machine learning + on unstructured data such as image, audio, video, or PDF files, organizing + data sets during the data exploration stages in data science, working with libraries that require access to the local file system on cluster machines, storing library and config files of arbitrary formats such as .whl or .txt - centrally and providing secure access across workspaces to it, or transforming - and querying non-tabular data files in ETL.`, + centrally and providing secure access to those files across workspaces, or + transforming and querying non-tabular data files in ETL.`, GroupID: "catalog", RunE: root.ReportUnknownSubcommand, } diff --git a/cmd/workspace/workspace-bindings/workspace-bindings.go b/cmd/workspace/workspace-bindings/workspace-bindings.go index 2b26185465a..eac23b59514 100644 --- a/cmd/workspace/workspace-bindings/workspace-bindings.go +++ b/cmd/workspace/workspace-bindings/workspace-bindings.go @@ -34,8 +34,8 @@ func New() *cobra.Command { owner of the securable. The original path (/api/2.1/unity-catalog/workspace-bindings/catalogs/{name}) - is deprecated. Please use the new path - (/api/2.1/unity-catalog/bindings/{securable_type}/{securable_name}) which + is deprecated. Use the new path + (/api/2.1/unity-catalog/bindings/{securable_type}/{securable_name}), which introduces the ability to bind a securable in READ_ONLY mode (catalogs only). Securable types that support binding: - catalog - storage_credential - diff --git a/cmd/workspace/workspace-iam-v2/workspace-iam-v2.go b/cmd/workspace/workspace-iam-v2/workspace-iam-v2.go index f46706976cf..d5be73577ef 100644 --- a/cmd/workspace/workspace-iam-v2/workspace-iam-v2.go +++ b/cmd/workspace/workspace-iam-v2/workspace-iam-v2.go @@ -381,7 +381,10 @@ func newListWorkspaceAssignmentDetailsProxy() *cobra.Command { cmd.Short = `List workspace assignment details for a workspace.` cmd.Long = `List workspace assignment details for a workspace. - Lists workspace assignment details for a workspace (workspace-level proxy).` + Lists workspace assignment details for a workspace (workspace-level proxy). + For scalability, the response omits the per-principal entitlement fields + (entitlements and effective_entitlements); call + GetWorkspaceAssignmentDetailProxy to read entitlements for a single principal.` // This command is being previewed; hide from help output. cmd.Hidden = true diff --git a/go.mod b/go.mod index 9329b7ea427..53b2004ea0f 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.7 // MIT - github.com/databricks/databricks-sdk-go v0.141.0 // Apache-2.0 + github.com/databricks/databricks-sdk-go v0.147.0 // Apache-2.0 github.com/google/jsonschema-go v0.4.3 // MIT github.com/google/uuid v1.6.0 // BSD-3-Clause github.com/gorilla/websocket v1.5.3 // BSD-2-Clause diff --git a/go.sum b/go.sum index 69b070166e8..21b2bb26150 100644 --- a/go.sum +++ b/go.sum @@ -69,8 +69,8 @@ github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22r github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= 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.141.0 h1:8s8H85cmivL0AkiK551hPikra5jvOVEWzW/oJnjCYEo= -github.com/databricks/databricks-sdk-go v0.141.0/go.mod h1:C5LNgGe6hGuRrTwoxFmuup3XtQQEaqtq0e+K8IFDIS4= +github.com/databricks/databricks-sdk-go v0.147.0 h1:B6Qk0LVvazg/qdvqoINzipnl0QhXKwgdw35JH905LCg= +github.com/databricks/databricks-sdk-go v0.147.0/go.mod h1:C5LNgGe6hGuRrTwoxFmuup3XtQQEaqtq0e+K8IFDIS4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/internal/cligen/cli_json_test.go b/internal/cligen/cli_json_test.go index 087940d4e05..2aeec36e2d9 100644 --- a/internal/cligen/cli_json_test.go +++ b/internal/cligen/cli_json_test.go @@ -17,9 +17,6 @@ const cliJSONPath = "../../.codegen/cli.json" // block is consumed by the Python direct-engine generators; here we only need // enough of it to assert structural invariants (keys + field refs). type fullDoc struct { - Metadata struct { - GeneratorVersion string `json:"generator_version"` - } `json:"metadata"` Schemas map[string]schemaDoc `json:"schemas"` Commands *CommandsBlock `json:"commands"` } @@ -48,10 +45,6 @@ func TestCliJSONIsInterpretable(t *testing.T) { t.Fatalf("decode cli.json: %v", err) } - // --- metadata --- - if doc.Metadata.GeneratorVersion != "cliv1" { - t.Errorf("metadata.generator_version = %q, want %q", doc.Metadata.GeneratorVersion, "cliv1") - } // The spec SHA is not carried in cli.json metadata; genkit writes it to the // sibling _openapi_sha file, the same convention every other SDK target uses. shaBytes, err := os.ReadFile("../../.codegen/_openapi_sha") diff --git a/internal/clijson/types.go b/internal/clijson/types.go index 868b61b0921..7b0f02277e1 100644 --- a/internal/clijson/types.go +++ b/internal/clijson/types.go @@ -11,16 +11,10 @@ package clijson // CliJSON is the root document. type CliJSON struct { - Metadata Metadata `json:"metadata"` Schemas map[string]*SchemaJSON `json:"schemas,omitempty"` Commands *CommandsBlock `json:"commands,omitempty"` } -// Metadata identifies the producer of this file. -type Metadata struct { - GeneratorVersion string `json:"generator_version,omitempty"` -} - // --- schemas block: the API type graph (messages and enums) --- // SchemaJSON is one schema in the type graph: a description plus either a diff --git a/python/databricks/bundles/catalogs/_models/catalog.py b/python/databricks/bundles/catalogs/_models/catalog.py index 1b35255dd6d..b251da697b9 100644 --- a/python/databricks/bundles/catalogs/_models/catalog.py +++ b/python/databricks/bundles/catalogs/_models/catalog.py @@ -43,6 +43,11 @@ class Catalog(Resource): The name of the connection to an external data source. """ + custom_max_retention_hours: VariableOrOptional[int] = None + """ + [Public Preview] Custom maximum retention period in hours for the catalog + """ + grants: VariableOrList[PrivilegeAssignment] = field(default_factory=list) lifecycle: VariableOrOptional[Lifecycle] = None @@ -105,6 +110,11 @@ class CatalogDict(TypedDict, total=False): The name of the connection to an external data source. """ + custom_max_retention_hours: VariableOrOptional[int] + """ + [Public Preview] Custom maximum retention period in hours for the catalog + """ + grants: VariableOrList[PrivilegeAssignmentParam] lifecycle: VariableOrOptional[LifecycleParam] diff --git a/python/databricks/bundles/jobs/_models/azure_attributes.py b/python/databricks/bundles/jobs/_models/azure_attributes.py index 0e1c2379025..a89bbc9e875 100644 --- a/python/databricks/bundles/jobs/_models/azure_attributes.py +++ b/python/databricks/bundles/jobs/_models/azure_attributes.py @@ -30,6 +30,21 @@ class AzureAttributes: type will be used for the entire cluster. """ + capacity_reservation_group: VariableOrOptional[str] = None + """ + [Public Preview] The Azure capacity reservation group resource ID to use for launching VMs. + When specified, VMs will be launched using the provided capacity reservation. + + Capacity reservations can only be specified when the workspace uses injected vnet (i.e. customer defined vnet not + managed by databricks). Ensure the databricks-login-prod Enterprise Application is granted the following four permissions: + 1. Microsoft.Compute/capacityReservationGroups/read + 2. Microsoft.Compute/capacityReservationGroups/deploy/action + 3. Microsoft.Compute/capacityReservationGroups/capacityReservations/read + 4. Microsoft.Compute/capacityReservationGroups/capacityReservations/deploy/action + + Format: `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}` + """ + first_on_demand: VariableOrOptional[int] = None """ The first `first_on_demand` nodes of the cluster will be placed on on-demand instances. @@ -72,6 +87,21 @@ class AzureAttributesDict(TypedDict, total=False): type will be used for the entire cluster. """ + capacity_reservation_group: VariableOrOptional[str] + """ + [Public Preview] The Azure capacity reservation group resource ID to use for launching VMs. + When specified, VMs will be launched using the provided capacity reservation. + + Capacity reservations can only be specified when the workspace uses injected vnet (i.e. customer defined vnet not + managed by databricks). Ensure the databricks-login-prod Enterprise Application is granted the following four permissions: + 1. Microsoft.Compute/capacityReservationGroups/read + 2. Microsoft.Compute/capacityReservationGroups/deploy/action + 3. Microsoft.Compute/capacityReservationGroups/capacityReservations/read + 4. Microsoft.Compute/capacityReservationGroups/capacityReservations/deploy/action + + Format: `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}` + """ + first_on_demand: VariableOrOptional[int] """ The first `first_on_demand` nodes of the cluster will be placed on on-demand instances. diff --git a/python/databricks/bundles/jobs/_models/gen_ai_compute_task.py b/python/databricks/bundles/jobs/_models/gen_ai_compute_task.py index d4d22f2f271..534e83910e6 100644 --- a/python/databricks/bundles/jobs/_models/gen_ai_compute_task.py +++ b/python/databricks/bundles/jobs/_models/gen_ai_compute_task.py @@ -18,6 +18,13 @@ class GenAiComputeTask: """ :meta private: [EXPERIMENTAL] + + DEPRECATED — use `AiRuntimeTask` for all new BYOT multi-node GPU + workloads (see ai_runtime_task.proto). `AiRuntimeTask` is the only + supported BYOT task type for new workloads; this proto is retained only + for AIR CLI (fka SGCLI) pywheel backwards compatibility and will be + removed once the pywheel → databricks-cli migration completes (post- + PuPr). """ dl_runtime_image: VariableOr[str] diff --git a/python/databricks/bundles/jobs/_models/task.py b/python/databricks/bundles/jobs/_models/task.py index 06c7043b003..6fde86e05d8 100644 --- a/python/databricks/bundles/jobs/_models/task.py +++ b/python/databricks/bundles/jobs/_models/task.py @@ -196,7 +196,12 @@ class Task: """ :meta private: [EXPERIMENTAL] - [Private Preview] + [Private Preview] DEPRECATED — use `AiRuntimeTask` for all new BYOT multi-node GPU + workloads (see ai_runtime_task.proto). `AiRuntimeTask` is the only + supported BYOT task type for new workloads; this proto is retained only + for AIR CLI (fka SGCLI) pywheel backwards compatibility and will be + removed once the pywheel → databricks-cli migration completes (post- + PuPr). """ health: VariableOrOptional[JobsHealthRules] = None @@ -421,7 +426,12 @@ class TaskDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] + [Private Preview] DEPRECATED — use `AiRuntimeTask` for all new BYOT multi-node GPU + workloads (see ai_runtime_task.proto). `AiRuntimeTask` is the only + supported BYOT task type for new workloads; this proto is retained only + for AIR CLI (fka SGCLI) pywheel backwards compatibility and will be + removed once the pywheel → databricks-cli migration completes (post- + PuPr). """ health: VariableOrOptional[JobsHealthRulesParam] diff --git a/python/databricks/bundles/pipelines/__init__.py b/python/databricks/bundles/pipelines/__init__.py index fb5a372a950..bac69263b87 100644 --- a/python/databricks/bundles/pipelines/__init__.py +++ b/python/databricks/bundles/pipelines/__init__.py @@ -208,10 +208,6 @@ "TikTokAdsOptions", "TikTokAdsOptionsDict", "TikTokAdsOptionsParam", - "TikTokAdsOptionsTikTokDataLevel", - "TikTokAdsOptionsTikTokDataLevelParam", - "TikTokAdsOptionsTikTokReportType", - "TikTokAdsOptionsTikTokReportTypeParam", "Transformer", "TransformerDict", "TransformerFormat", @@ -581,14 +577,6 @@ TikTokAdsOptionsDict, TikTokAdsOptionsParam, ) -from databricks.bundles.pipelines._models.tik_tok_ads_options_tik_tok_data_level import ( - TikTokAdsOptionsTikTokDataLevel, - TikTokAdsOptionsTikTokDataLevelParam, -) -from databricks.bundles.pipelines._models.tik_tok_ads_options_tik_tok_report_type import ( - TikTokAdsOptionsTikTokReportType, - TikTokAdsOptionsTikTokReportTypeParam, -) from databricks.bundles.pipelines._models.transformer import ( Transformer, TransformerDict, diff --git a/python/databricks/bundles/pipelines/_models/azure_attributes.py b/python/databricks/bundles/pipelines/_models/azure_attributes.py index 42a481b1938..2a2367e47e6 100644 --- a/python/databricks/bundles/pipelines/_models/azure_attributes.py +++ b/python/databricks/bundles/pipelines/_models/azure_attributes.py @@ -30,6 +30,21 @@ class AzureAttributes: type will be used for the entire cluster. """ + capacity_reservation_group: VariableOrOptional[str] = None + """ + [Public Preview] The Azure capacity reservation group resource ID to use for launching VMs. + When specified, VMs will be launched using the provided capacity reservation. + + Capacity reservations can only be specified when the workspace uses injected vnet (i.e. customer defined vnet not + managed by databricks). Ensure the databricks-login-prod Enterprise Application is granted the following four permissions: + 1. Microsoft.Compute/capacityReservationGroups/read + 2. Microsoft.Compute/capacityReservationGroups/deploy/action + 3. Microsoft.Compute/capacityReservationGroups/capacityReservations/read + 4. Microsoft.Compute/capacityReservationGroups/capacityReservations/deploy/action + + Format: `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}` + """ + first_on_demand: VariableOrOptional[int] = None """ The first `first_on_demand` nodes of the cluster will be placed on on-demand instances. @@ -72,6 +87,21 @@ class AzureAttributesDict(TypedDict, total=False): type will be used for the entire cluster. """ + capacity_reservation_group: VariableOrOptional[str] + """ + [Public Preview] The Azure capacity reservation group resource ID to use for launching VMs. + When specified, VMs will be launched using the provided capacity reservation. + + Capacity reservations can only be specified when the workspace uses injected vnet (i.e. customer defined vnet not + managed by databricks). Ensure the databricks-login-prod Enterprise Application is granted the following four permissions: + 1. Microsoft.Compute/capacityReservationGroups/read + 2. Microsoft.Compute/capacityReservationGroups/deploy/action + 3. Microsoft.Compute/capacityReservationGroups/capacityReservations/read + 4. Microsoft.Compute/capacityReservationGroups/capacityReservations/deploy/action + + Format: `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}` + """ + first_on_demand: VariableOrOptional[int] """ The first `first_on_demand` nodes of the cluster will be placed on on-demand instances. diff --git a/python/databricks/bundles/pipelines/_models/meta_marketing_options.py b/python/databricks/bundles/pipelines/_models/meta_marketing_options.py index c78284427e3..d77005c7b40 100644 --- a/python/databricks/bundles/pipelines/_models/meta_marketing_options.py +++ b/python/databricks/bundles/pipelines/_models/meta_marketing_options.py @@ -17,44 +17,48 @@ class MetaMarketingOptions: action_attribution_windows: VariableOrList[str] = field(default_factory=list) """ - [Beta] (Optional) Action attribution windows for insights reporting (e.g. "28d_click", "1d_view") + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.action_attribution_windows) Action attribution + windows for insights reporting (e.g. "28d_click", "1d_view") """ action_breakdowns: VariableOrList[str] = field(default_factory=list) """ - [Beta] (Optional) Action breakdowns to configure for data aggregation + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.action_breakdowns) Action breakdowns """ action_report_time: VariableOrOptional[str] = None """ - [Beta] (Optional) Timing used to report action statistics (impression, conversion, mixed, or lifetime) + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.action_report_time) Timing used to report + action statistics (impression, conversion, mixed, or lifetime) """ breakdowns: VariableOrList[str] = field(default_factory=list) """ - [Beta] (Optional) Breakdowns to configure for data aggregation + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.breakdowns) Breakdowns to configure """ custom_insights_lookback_window: VariableOrOptional[int] = None """ [Beta] (Optional) Window in days to revisit data during sync to capture - updated conversion data from the API. + updated conversion data from the API, shared by prebuilt and custom reports. """ level: VariableOrOptional[str] = None """ - [Beta] (Optional) Granularity of data to pull (account, ad, adset, campaign) + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.level) Granularity of data to pull + (account, ad, adset, campaign) """ start_date: VariableOrOptional[str] = None """ [Beta] (Optional) Start date in yyyy-MM-dd format (e.g. 2025-01-15). Data added - after this date will be ingested + after this date will be ingested, shared by prebuilt and custom reports. """ time_increment: VariableOrOptional[str] = None """ - [Beta] (Optional) Value in string by which to aggregate statistics (can take all_days, monthly or number of days) + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.time_increment) Value in string by which to + aggregate statistics (can take all_days, monthly or number of days) """ @classmethod @@ -70,44 +74,48 @@ class MetaMarketingOptionsDict(TypedDict, total=False): action_attribution_windows: VariableOrList[str] """ - [Beta] (Optional) Action attribution windows for insights reporting (e.g. "28d_click", "1d_view") + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.action_attribution_windows) Action attribution + windows for insights reporting (e.g. "28d_click", "1d_view") """ action_breakdowns: VariableOrList[str] """ - [Beta] (Optional) Action breakdowns to configure for data aggregation + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.action_breakdowns) Action breakdowns """ action_report_time: VariableOrOptional[str] """ - [Beta] (Optional) Timing used to report action statistics (impression, conversion, mixed, or lifetime) + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.action_report_time) Timing used to report + action statistics (impression, conversion, mixed, or lifetime) """ breakdowns: VariableOrList[str] """ - [Beta] (Optional) Breakdowns to configure for data aggregation + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.breakdowns) Breakdowns to configure """ custom_insights_lookback_window: VariableOrOptional[int] """ [Beta] (Optional) Window in days to revisit data during sync to capture - updated conversion data from the API. + updated conversion data from the API, shared by prebuilt and custom reports. """ level: VariableOrOptional[str] """ - [Beta] (Optional) Granularity of data to pull (account, ad, adset, campaign) + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.level) Granularity of data to pull + (account, ad, adset, campaign) """ start_date: VariableOrOptional[str] """ [Beta] (Optional) Start date in yyyy-MM-dd format (e.g. 2025-01-15). Data added - after this date will be ingested + after this date will be ingested, shared by prebuilt and custom reports. """ time_increment: VariableOrOptional[str] """ - [Beta] (Optional) Value in string by which to aggregate statistics (can take all_days, monthly or number of days) + [DEPRECATED] [Beta] (Optional, DEPRECATED — use custom_report_options.time_increment) Value in string by which to + aggregate statistics (can take all_days, monthly or number of days) """ diff --git a/python/databricks/bundles/pipelines/_models/pipeline.py b/python/databricks/bundles/pipelines/_models/pipeline.py index 05a6435969a..32f2e5c266a 100644 --- a/python/databricks/bundles/pipelines/_models/pipeline.py +++ b/python/databricks/bundles/pipelines/_models/pipeline.py @@ -201,6 +201,13 @@ class Pipeline(Resource): Whether serverless compute is enabled for this pipeline. """ + serverless_compute_id: VariableOrOptional[str] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Serverless compute ID specified by the user for serverless pipelines. + """ + storage: VariableOrOptional[str] = None """ DBFS root directory for storing checkpoints and tables. @@ -377,6 +384,13 @@ class PipelineDict(TypedDict, total=False): Whether serverless compute is enabled for this pipeline. """ + serverless_compute_id: VariableOrOptional[str] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Serverless compute ID specified by the user for serverless pipelines. + """ + storage: VariableOrOptional[str] """ DBFS root directory for storing checkpoints and tables. diff --git a/python/databricks/bundles/pipelines/_models/table_specific_config.py b/python/databricks/bundles/pipelines/_models/table_specific_config.py index b1c4a9ba6e6..e08e404710a 100644 --- a/python/databricks/bundles/pipelines/_models/table_specific_config.py +++ b/python/databricks/bundles/pipelines/_models/table_specific_config.py @@ -3,7 +3,11 @@ from databricks.bundles.core._transform import _transform from databricks.bundles.core._transform_to_json import _transform_to_json_value -from databricks.bundles.core._variable import VariableOrList, VariableOrOptional +from databricks.bundles.core._variable import ( + VariableOrDict, + VariableOrList, + VariableOrOptional, +) from databricks.bundles.pipelines._models.auto_full_refresh_policy import ( AutoFullRefreshPolicy, AutoFullRefreshPolicyParam, @@ -44,6 +48,30 @@ class TableSpecificConfig: If unspecified, auto full refresh is disabled. """ + clustering_columns: VariableOrList[str] = field(default_factory=list) + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] List of column names to use for clustering the destination table. + When specified, the destination Delta table will be clustered by these columns. + This can improve query performance when filtering on these columns. + Note: clustering_columns in table specific configuration will override the pipeline definition. + Note: we can only provide enable_auto_clustering or clustering_columns, + added as separate fields as we cannot have repeated field in oneof. + """ + + enable_auto_clustering: VariableOrOptional[bool] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Whether to enable auto clustering on the destination table. + When enabled, Delta will automatically optimize the data layout + based on the clustering columns for improved query performance. + Note: enable_auto_clustering in table specific configuration will override the pipeline definition. + Note: we can only provide enable_auto_clustering or clustering_columns, + added as separate fields as we cannot have repeated field in oneof. + """ + exclude_columns: VariableOrList[str] = field(default_factory=list) """ [Public Preview] A list of column names to be excluded for the ingestion. @@ -97,6 +125,16 @@ class TableSpecificConfig: [Public Preview] The column names specifying the logical order of events in the source data. Spark Declarative Pipelines uses this sequencing to handle change events that arrive out of order. """ + table_properties: VariableOrDict[str] = field(default_factory=dict) + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Table properties to set on the destination table. + These are key-value pairs that configure various Delta table behaviors or any user defined properties. + Example: {"delta.feature.variantType": "supported", "delta.enableTypeWidening": "true"} + Note: table_properties in table specific configuration will override the table_properties of the pipeline definition. + """ + workday_report_parameters: VariableOrOptional[ IngestionPipelineDefinitionWorkdayReportParameters ] = None @@ -132,6 +170,30 @@ class TableSpecificConfigDict(TypedDict, total=False): If unspecified, auto full refresh is disabled. """ + clustering_columns: VariableOrList[str] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] List of column names to use for clustering the destination table. + When specified, the destination Delta table will be clustered by these columns. + This can improve query performance when filtering on these columns. + Note: clustering_columns in table specific configuration will override the pipeline definition. + Note: we can only provide enable_auto_clustering or clustering_columns, + added as separate fields as we cannot have repeated field in oneof. + """ + + enable_auto_clustering: VariableOrOptional[bool] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Whether to enable auto clustering on the destination table. + When enabled, Delta will automatically optimize the data layout + based on the clustering columns for improved query performance. + Note: enable_auto_clustering in table specific configuration will override the pipeline definition. + Note: we can only provide enable_auto_clustering or clustering_columns, + added as separate fields as we cannot have repeated field in oneof. + """ + exclude_columns: VariableOrList[str] """ [Public Preview] A list of column names to be excluded for the ingestion. @@ -185,6 +247,16 @@ class TableSpecificConfigDict(TypedDict, total=False): [Public Preview] The column names specifying the logical order of events in the source data. Spark Declarative Pipelines uses this sequencing to handle change events that arrive out of order. """ + table_properties: VariableOrDict[str] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Table properties to set on the destination table. + These are key-value pairs that configure various Delta table behaviors or any user defined properties. + Example: {"delta.feature.variantType": "supported", "delta.enableTypeWidening": "true"} + Note: table_properties in table specific configuration will override the table_properties of the pipeline definition. + """ + workday_report_parameters: VariableOrOptional[ IngestionPipelineDefinitionWorkdayReportParametersParam ] diff --git a/python/databricks/bundles/pipelines/_models/tik_tok_ads_options.py b/python/databricks/bundles/pipelines/_models/tik_tok_ads_options.py index a4a814b78b5..c1fd6811a52 100644 --- a/python/databricks/bundles/pipelines/_models/tik_tok_ads_options.py +++ b/python/databricks/bundles/pipelines/_models/tik_tok_ads_options.py @@ -1,17 +1,9 @@ -from dataclasses import dataclass, field +from dataclasses import dataclass from typing import TYPE_CHECKING, TypedDict from databricks.bundles.core._transform import _transform from databricks.bundles.core._transform_to_json import _transform_to_json_value -from databricks.bundles.core._variable import VariableOrList, VariableOrOptional -from databricks.bundles.pipelines._models.tik_tok_ads_options_tik_tok_data_level import ( - TikTokAdsOptionsTikTokDataLevel, - TikTokAdsOptionsTikTokDataLevelParam, -) -from databricks.bundles.pipelines._models.tik_tok_ads_options_tik_tok_report_type import ( - TikTokAdsOptionsTikTokReportType, - TikTokAdsOptionsTikTokReportTypeParam, -) +from databricks.bundles.core._variable import VariableOrOptional if TYPE_CHECKING: from typing_extensions import Self @@ -25,56 +17,12 @@ class TikTokAdsOptions: TikTok Ads specific options for ingestion """ - data_level: VariableOrOptional[TikTokAdsOptionsTikTokDataLevel] = None - """ - :meta private: [EXPERIMENTAL] - - [Private Preview] (Optional) Data level for the report. - If not specified, defaults to AUCTION_CAMPAIGN. - """ - - dimensions: VariableOrList[str] = field(default_factory=list) - """ - :meta private: [EXPERIMENTAL] - - [Private Preview] (Optional) Dimensions to include in the report. - Examples: "campaign_id", "adgroup_id", "ad_id", "stat_time_day", "stat_time_hour" - If not specified, defaults to campaign_id. - """ - lookback_window_days: VariableOrOptional[int] = None """ :meta private: [EXPERIMENTAL] [Private Preview] (Optional) Number of days to look back for report tables during incremental sync to capture late-arriving conversions and attribution data. - If not specified, defaults to 7 days. - """ - - metrics: VariableOrList[str] = field(default_factory=list) - """ - :meta private: [EXPERIMENTAL] - - [Private Preview] (Optional) Metrics to include in the report. - Examples: "spend", "impressions", "clicks", "conversion", "cpc" - If not specified, defaults to basic metrics (spend, impressions, clicks, etc.) - """ - - query_lifetime: VariableOrOptional[bool] = None - """ - :meta private: [EXPERIMENTAL] - - [Private Preview] (Optional) Whether to request lifetime metrics (all-time aggregated data). - When true, the report returns all-time data. - If not specified, defaults to false. - """ - - report_type: VariableOrOptional[TikTokAdsOptionsTikTokReportType] = None - """ - :meta private: [EXPERIMENTAL] - - [Private Preview] (Optional) Report type for the TikTok Ads API. - If not specified, defaults to BASIC. """ sync_start_date: VariableOrOptional[str] = None @@ -83,8 +31,6 @@ class TikTokAdsOptions: [Private Preview] (Optional) Start date for the initial sync of report tables in YYYY-MM-DD format. This determines the earliest date from which to sync historical data. - If not specified, defaults to 1 year of historical data for daily reports - and 30 days for hourly reports. """ @classmethod @@ -98,56 +44,12 @@ def as_dict(self) -> "TikTokAdsOptionsDict": class TikTokAdsOptionsDict(TypedDict, total=False): """""" - data_level: VariableOrOptional[TikTokAdsOptionsTikTokDataLevelParam] - """ - :meta private: [EXPERIMENTAL] - - [Private Preview] (Optional) Data level for the report. - If not specified, defaults to AUCTION_CAMPAIGN. - """ - - dimensions: VariableOrList[str] - """ - :meta private: [EXPERIMENTAL] - - [Private Preview] (Optional) Dimensions to include in the report. - Examples: "campaign_id", "adgroup_id", "ad_id", "stat_time_day", "stat_time_hour" - If not specified, defaults to campaign_id. - """ - lookback_window_days: VariableOrOptional[int] """ :meta private: [EXPERIMENTAL] [Private Preview] (Optional) Number of days to look back for report tables during incremental sync to capture late-arriving conversions and attribution data. - If not specified, defaults to 7 days. - """ - - metrics: VariableOrList[str] - """ - :meta private: [EXPERIMENTAL] - - [Private Preview] (Optional) Metrics to include in the report. - Examples: "spend", "impressions", "clicks", "conversion", "cpc" - If not specified, defaults to basic metrics (spend, impressions, clicks, etc.) - """ - - query_lifetime: VariableOrOptional[bool] - """ - :meta private: [EXPERIMENTAL] - - [Private Preview] (Optional) Whether to request lifetime metrics (all-time aggregated data). - When true, the report returns all-time data. - If not specified, defaults to false. - """ - - report_type: VariableOrOptional[TikTokAdsOptionsTikTokReportTypeParam] - """ - :meta private: [EXPERIMENTAL] - - [Private Preview] (Optional) Report type for the TikTok Ads API. - If not specified, defaults to BASIC. """ sync_start_date: VariableOrOptional[str] @@ -156,8 +58,6 @@ class TikTokAdsOptionsDict(TypedDict, total=False): [Private Preview] (Optional) Start date for the initial sync of report tables in YYYY-MM-DD format. This determines the earliest date from which to sync historical data. - If not specified, defaults to 1 year of historical data for daily reports - and 30 days for hourly reports. """ diff --git a/python/databricks/bundles/pipelines/_models/tik_tok_ads_options_tik_tok_data_level.py b/python/databricks/bundles/pipelines/_models/tik_tok_ads_options_tik_tok_data_level.py deleted file mode 100644 index 11f6159bcf8..00000000000 --- a/python/databricks/bundles/pipelines/_models/tik_tok_ads_options_tik_tok_data_level.py +++ /dev/null @@ -1,21 +0,0 @@ -from enum import Enum -from typing import Literal - - -class TikTokAdsOptionsTikTokDataLevel(Enum): - """ - :meta private: [EXPERIMENTAL] - - Data level for TikTok Ads report aggregation. - """ - - AUCTION_ADVERTISER = "AUCTION_ADVERTISER" - AUCTION_CAMPAIGN = "AUCTION_CAMPAIGN" - AUCTION_ADGROUP = "AUCTION_ADGROUP" - AUCTION_AD = "AUCTION_AD" - - -TikTokAdsOptionsTikTokDataLevelParam = ( - Literal["AUCTION_ADVERTISER", "AUCTION_CAMPAIGN", "AUCTION_ADGROUP", "AUCTION_AD"] - | TikTokAdsOptionsTikTokDataLevel -) diff --git a/python/databricks/bundles/pipelines/_models/tik_tok_ads_options_tik_tok_report_type.py b/python/databricks/bundles/pipelines/_models/tik_tok_ads_options_tik_tok_report_type.py deleted file mode 100644 index 272d36ff0c0..00000000000 --- a/python/databricks/bundles/pipelines/_models/tik_tok_ads_options_tik_tok_report_type.py +++ /dev/null @@ -1,23 +0,0 @@ -from enum import Enum -from typing import Literal - - -class TikTokAdsOptionsTikTokReportType(Enum): - """ - :meta private: [EXPERIMENTAL] - - Report type for TikTok Ads API. - """ - - BASIC = "BASIC" - AUDIENCE = "AUDIENCE" - PLAYABLE_AD = "PLAYABLE_AD" - DSA = "DSA" - BUSINESS_CENTER = "BUSINESS_CENTER" - GMV_MAX = "GMV_MAX" - - -TikTokAdsOptionsTikTokReportTypeParam = ( - Literal["BASIC", "AUDIENCE", "PLAYABLE_AD", "DSA", "BUSINESS_CENTER", "GMV_MAX"] - | TikTokAdsOptionsTikTokReportType -) diff --git a/python/databricks/bundles/schemas/_models/schema.py b/python/databricks/bundles/schemas/_models/schema.py index 5dfa24d41b4..9f095706d06 100644 --- a/python/databricks/bundles/schemas/_models/schema.py +++ b/python/databricks/bundles/schemas/_models/schema.py @@ -39,6 +39,11 @@ class Schema(Resource): User-provided free-form text description. """ + custom_max_retention_hours: VariableOrOptional[int] = None + """ + [Public Preview] Custom maximum retention period in hours for the schema. + """ + grants: VariableOrList[PrivilegeAssignment] = field(default_factory=list) lifecycle: VariableOrOptional[Lifecycle] = None @@ -82,6 +87,11 @@ class SchemaDict(TypedDict, total=False): User-provided free-form text description. """ + custom_max_retention_hours: VariableOrOptional[int] + """ + [Public Preview] Custom maximum retention period in hours for the schema. + """ + grants: VariableOrList[PrivilegeAssignmentParam] lifecycle: VariableOrOptional[LifecycleParam]