diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index 165042179b5..bd00da3e923 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -1603cd4e00e208260dc36be11f5ba9822ff73360 \ No newline at end of file +155fbabb3529267ce58c1a37573911f59d90b06c \ No newline at end of file diff --git a/.codegen/cli.json b/.codegen/cli.json index 372ab22fee1..c3e114bb11e 100644 --- a/.codegen/cli.json +++ b/.codegen/cli.json @@ -4632,7 +4632,7 @@ "launch_stage": "PUBLIC_PREVIEW" }, "alert_configurations": { - "description": "Alerts to configure when this budget is in a triggered state. Budgets must have exactly one alert configuration.", + "description": "Alerts to configure when this budget is in a triggered state. Budgets must have at least one alert configuration.\nA budget can have up to four shared alerts per time period, each with a unique `quantity_threshold`.\nBudgets with `resource_type` set to `BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY` can also use per-user alerts, with optional `principal_overrides`.\nThese budgets can have at most one per-user alert per time period, and can use shared alerts, a per-user alert, or both.\nThe `BLOCK_USAGE` action is only supported on budgets with `resource_type` set to `BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY`.\nAt most one shared alert per time period can have a `BLOCK_USAGE` action, and it must be the shared alert with the highest threshold in that period.", "launch_stage": "PUBLIC_PREVIEW" }, "budget_configuration_id": { @@ -4794,7 +4794,7 @@ "launch_stage": "PUBLIC_PREVIEW" }, "alert_configurations": { - "description": "Alerts to configure when this budget is in a triggered state. Budgets must have exactly one alert configuration.", + "description": "Alerts to configure when this budget is in a triggered state. Budgets must have at least one alert configuration.\nA budget can have up to four shared alerts per time period, each with a unique `quantity_threshold`.\nBudgets with `resource_type` set to `BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY` can also use per-user alerts, with optional `principal_overrides`.\nThese budgets can have at most one per-user alert per time period, and can use shared alerts, a per-user alert, or both.\nThe `BLOCK_USAGE` action is only supported on budgets with `resource_type` set to `BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY`.\nAt most one shared alert per time period can have a `BLOCK_USAGE` action, and it must be the shared alert with the highest threshold in that period.", "launch_stage": "PUBLIC_PREVIEW" }, "display_name": { @@ -5320,7 +5320,7 @@ "launch_stage": "PUBLIC_PREVIEW" }, "alert_configurations": { - "description": "Alerts to configure when this budget is in a triggered state. Budgets must have exactly one alert configuration.", + "description": "Alerts to configure when this budget is in a triggered state. Budgets must have at least one alert configuration.\nA budget can have up to four shared alerts per time period, each with a unique `quantity_threshold`.\nBudgets with `resource_type` set to `BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY` can also use per-user alerts, with optional `principal_overrides`.\nThese budgets can have at most one per-user alert per time period, and can use shared alerts, a per-user alert, or both.\nThe `BLOCK_USAGE` action is only supported on budgets with `resource_type` set to `BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY`.\nAt most one shared alert per time period can have a `BLOCK_USAGE` action, and it must be the shared alert with the highest threshold in that period.", "launch_stage": "PUBLIC_PREVIEW" }, "budget_configuration_id": { @@ -5945,7 +5945,7 @@ ] }, "state": { - "description": "Serialized local config state after the operation. Its presence records\nwhether the resource still exists. Explicitly clearing state removes the resource;\nomitting it from the update mask leaves resource state unchanged.\nState is stored only on Resources. UpdateOperation accepts state but omits it\nfrom its response, as do subsequent GetOperation and ListOperations.\n\nMutable: may be updated after creation via UpdateOperation. When updating,\nthe caller must echo the last-observed `sequence_id` as a concurrency\nprecondition.\n\nThe string is not parsed; it is projected onto the corresponding Resource's\nstate. It is deliberately not google.protobuf.Value, whose only numeric case\nis `double number_value`, so parsing the client's JSON into it rewrites every\ninteger as a double - `1` reads back as `1.0`, which no longer deserializes\ninto an integer field - and silently loses precision above 2^53, which is\nwithin range for IDs the client records.\n\nA string rather than bytes: the payload is always UTF-8 JSON, and proto3 JSON\nmaps bytes to base64, which inflates every request and response by a third\nand makes state unreadable in logs and API responses. Both generate the same\nOpenAPI schema (\"type\": \"string\"), so the SDKs are identical either way.", + "description": "Serialized local config state after the operation. Its presence records\nwhether the resource is still tracked by the deployment. Explicitly clearing\nstate removes the resource from the deployment; omitting it from the update\nmask leaves resource state unchanged.\nState is stored only on Resources. UpdateOperation accepts state but omits it\nfrom its response, as do subsequent GetOperation and ListOperations.\n\nMutable: may be updated after creation via UpdateOperation. When updating,\nthe caller must echo the last-observed `sequence_id` as a concurrency\nprecondition.\n\nThe string is not parsed; it is projected onto the corresponding Resource's\nstate. It is deliberately not google.protobuf.Value, whose only numeric case\nis `double number_value`, so parsing the client's JSON into it rewrites every\ninteger as a double - `1` reads back as `1.0`, which no longer deserializes\ninto an integer field - and silently loses precision above 2^53, which is\nwithin range for IDs the client records.\n\nA string rather than bytes: the payload is always UTF-8 JSON, and proto3 JSON\nmaps bytes to base64, which inflates every request and response by a third\nand makes state unreadable in logs and API responses. Both generate the same\nOpenAPI schema (\"type\": \"string\"), so the SDKs are identical either way.", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OPTIONAL" @@ -10565,7 +10565,7 @@ "catalog.ListMcpServicesRequest": { "fields": { "page_size": { - "description": "Maximum number of MCP services to return. Defaults to 100 when unset or 0;\nthe maximum is 200. Use `page_token` to retrieve additional pages.", + "description": "Maximum number of MCP services to return. Defaults to 200 when unset or 0;\nthe maximum is 200. Use `page_token` to retrieve additional pages.", "launch_stage": "GA", "behaviors": [ "OPTIONAL" @@ -10646,7 +10646,7 @@ "catalog.ListModelProviderServicesRequest": { "fields": { "page_size": { - "description": "Maximum number of provider services to return. Defaults to 100 when unset or\n0; the maximum is 200. Use `page_token` to retrieve additional pages.", + "description": "Maximum number of provider services to return. Defaults to 200 when unset or\n0; the maximum is 200. Use `page_token` to retrieve additional pages.", "launch_stage": "GA", "behaviors": [ "OPTIONAL" @@ -10703,7 +10703,7 @@ "catalog.ListModelServicesRequest": { "fields": { "page_size": { - "description": "Maximum number of model services to return. Defaults to 100 when unset or 0;\nthe maximum is 200. Use `page_token` to retrieve additional pages.", + "description": "Maximum number of model services to return. Defaults to 200 when unset or 0;\nthe maximum is 200. Use `page_token` to retrieve additional pages.", "launch_stage": "GA", "behaviors": [ "OPTIONAL" @@ -11009,7 +11009,7 @@ "catalog.ListSkillsRequest": { "fields": { "page_size": { - "description": "Maximum number of skills to return. Defaults to 100 when unset or 0; the\nmaximum is 200. Use `page_token` to retrieve additional pages.", + "description": "Maximum number of skills to return. Defaults to 200 when unset or 0; the\nmaximum is 200. Use `page_token` to retrieve additional pages.", "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" @@ -11869,7 +11869,7 @@ } }, "catalog.ModelProviderServiceConfigCustomProviderConfig": { - "description": "Custom OpenAI-compatible provider configuration with bearer-token\nauthentication.", + "description": "Custom OpenAI-compatible provider configuration.", "fields": { "direct": { "description": "Endpoint and authentication configuration for the custom provider.", @@ -35620,7 +35620,7 @@ "attachment": { "description": "Optional: The configuration for the files attached to the dashboard snapshot notification. It\ncontrols the underlying data of dashboard widgets that is attached as data files and which\npages are included in the attached PDF. If not specified, the notification is sent with only\nthe default snapshot.", "ref": "jobs.SubscriptionAttachment", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -35645,7 +35645,7 @@ "data_attachment": { "description": "Optional: The configuration for the underlying data of dashboard widgets attached as tabular\ndata files. If not specified, no tabular data is attached.", "ref": "jobs.SubscriptionAttachmentDataAttachment", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -35653,7 +35653,7 @@ "page_attachment": { "description": "Optional: The selection of dashboard pages included in the attached PDF. If not specified,\nonly the first page is included.", "ref": "jobs.SubscriptionAttachmentPageAttachment", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -35666,18 +35666,18 @@ "file_format": { "description": "The file format of the exported tabular data files.", "ref": "jobs.SubscriptionAttachmentDataAttachmentFileFormat", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "include_applied_filters": { "description": "When true, the dashboard's applied filter values are included alongside the tabular data as\nan additional attached file.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "widgets": { "description": "The widgets whose underlying data is exported. At least one widget must be referenced.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -35689,9 +35689,9 @@ "FILE_FORMAT_EXCEL" ], "enum_launch_stages": { - "FILE_FORMAT_CSV": "PRIVATE_PREVIEW", - "FILE_FORMAT_EXCEL": "PRIVATE_PREVIEW", - "FILE_FORMAT_TSV": "PRIVATE_PREVIEW" + "FILE_FORMAT_CSV": "PUBLIC_BETA", + "FILE_FORMAT_EXCEL": "PUBLIC_BETA", + "FILE_FORMAT_TSV": "PUBLIC_BETA" } }, "jobs.SubscriptionAttachmentDataAttachmentWidget": { @@ -35699,11 +35699,11 @@ "fields": { "page_id": { "description": "The URL identifier of the page containing the widget. This is the value of the `name`\nfield of the corresponding entry under `pages` in the serialized dashboard definition.\nFormat: alphanumeric, hyphen, and underscore characters allowed, max length 63.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "widget_id": { "description": "The URL identifier of the widget. This is the value of the `name` field of the\ncorresponding widget under that page's `layout` in the serialized dashboard definition.\nFormat: alphanumeric, hyphen, and underscore characters allowed, max length 63.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -35712,7 +35712,7 @@ "fields": { "page_ids": { "description": "The identifiers of the pages to include in the PDF. Only specified when `page_selection` is\n`PAGE_SELECTION_SUBSET`. Each value is the identifier of a page in the dashboard's\nserialized definition returned by the Get dashboard API (`serialized_dashboard`): the value\nof the `name` field of an entry under `pages`.\nFormat: alphanumeric, hyphen, and underscore characters allowed, max length 63.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -35720,7 +35720,7 @@ "page_selection": { "description": "How the attached pages are selected. When set to `PAGE_SELECTION_SUBSET`, the pages to\ninclude are listed in `page_ids`.", "ref": "jobs.SubscriptionAttachmentPageAttachmentPageSelection", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -35734,8 +35734,8 @@ "PAGE_SELECTION_SUBSET" ], "enum_launch_stages": { - "PAGE_SELECTION_ALL": "PRIVATE_PREVIEW", - "PAGE_SELECTION_SUBSET": "PRIVATE_PREVIEW" + "PAGE_SELECTION_ALL": "PUBLIC_BETA", + "PAGE_SELECTION_SUBSET": "PUBLIC_BETA" } }, "jobs.SubscriptionSubscriber": { @@ -39762,6 +39762,14 @@ "OPTIONAL" ] }, + "sdp_source": { + "description": "A Spark Declarative Pipeline data source.", + "ref": "ml.SdpSource", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "stream_source": { "description": "A Stream data source.", "ref": "ml.StreamSource", @@ -43864,6 +43872,74 @@ } } }, + "ml.SdpSource": { + "description": "A Spark Declarative Pipeline (SDP) data source.", + "fields": { + "dataframe_schema": { + "description": "Schema of the resulting dataframe after transformations, in Spark StructType JSON format (from df.schema.json()).\nRequired if transformation_sql is specified.\nExample: {\"type\":\"struct\",\"fields\":[{\"name\":\"col_a\",\"type\":\"integer\",\"nullable\":true,\"metadata\":{}},{\"name\":\"col_c\",\"type\":\"integer\",\"nullable\":true,\"metadata\":{}}]}", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "filter_condition": { + "description": "Single WHERE clause to filter the pipeline's output table before applying transformations. Will be row-wise evaluated, so should only include conditionals and projections.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "input_tables": { + "description": "The full three-part names of the tables the pipeline reads from. Required to materialize this\nfeature with a TableTrigger, which starts a run when these tables update. Each table must exist\nwhen the feature is created. After the pipeline runs, Feature Store checks that it reads from\nthese tables, and the run fails if it doesn't. At most 100 tables.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "output_table": { + "description": "The full three-part (catalog, schema, table) name of the pipeline's output table to read from.\nThe table doesn't need to exist until the pipeline first runs. Required.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "pipeline_id": { + "description": "The ID of the Spark Declarative Pipeline that Feature Store runs to produce this source, before\neach materialization or backfill. The pipeline must already exist when the feature is created,\nand you need CAN_RUN, CAN_MANAGE, or owner permission on it. It doesn't need to have run yet.\nDeleting the feature doesn't delete the pipeline. If the pipeline is deleted, this field reads\nback empty. Required.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "pipeline_state": { + "description": "State tracking pipeline execution and output table validation. PENDING until the pipeline\nhas run at least once and created the output table; then RESOLVED on success, or ERROR on failure.", + "ref": "ml.SdpSourceState", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "transformation_sql": { + "description": "A single SQL SELECT expression applied after filter_condition.\nShould contain all the columns needed (eg. \"SELECT *, col_a + col_b AS col_c FROM x.y.z WHERE col_a \u003e 0\" would have `transformation_sql` \"*, col_a + col_b AS col_c\")\nIf transformation_sql is not provided, all columns of the pipeline's output table are present in the DataSource dataframe.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "ml.SdpSourceState": { + "description": "State of the SDP source relative to pipeline execution and output table validation.", + "enum": [ + "PENDING", + "RESOLVED", + "ERROR" + ], + "enum_launch_stages": { + "ERROR": "PRIVATE_PREVIEW", + "PENDING": "PRIVATE_PREVIEW", + "RESOLVED": "PRIVATE_PREVIEW" + } + }, "ml.SearchExperiments": { "fields": { "filter": { @@ -47952,7 +48028,7 @@ "launch_stage": "GA" }, "order_by": { - "description": "A list of strings specifying the order of results.\nSupported order_by fields are id and name. The default is id asc.\nThis field is optional.", + "description": "A list of strings specifying the order of results.\nThe supported order_by field is id. The default is id asc.\nThis field is optional.", "launch_stage": "GA" }, "page_token": { @@ -61644,11 +61720,6 @@ "description": "Name of the share.", "launch_stage": "GA" }, - "replication_config": { - "description": "Configuration for share replication.", - "ref": "sharing.ReplicationConfig", - "launch_stage": "PRIVATE_PREVIEW" - }, "storage_root": { "description": "Storage root URL for the share.", "launch_stage": "GA" @@ -62626,15 +62697,6 @@ } } }, - "sharing.ReplicationConfig": { - "description": "Configuration for Delta Sharing replication on a share. When enabled, the share's data is\ncopied into each recipient's region so recipients can query the share locally.", - "fields": { - "enabled": { - "description": "Whether replication is enabled for the share.", - "launch_stage": "PRIVATE_PREVIEW" - } - } - }, "sharing.RetrieveTokenRequest": {}, "sharing.RetrieveTokenResponse": { "fields": { @@ -62727,11 +62789,6 @@ "description": "Username of current owner of share.", "launch_stage": "GA" }, - "replication_config": { - "description": "Configuration for share replication.", - "ref": "sharing.ReplicationConfig", - "launch_stage": "PRIVATE_PREVIEW" - }, "storage_location": { "description": "Storage Location URL (full path) for the share.", "launch_stage": "GA", @@ -64183,6 +64240,13 @@ "description": "warehouse creator name", "launch_stage": "GA" }, + "customer_version_label": { + "description": "Compute version label for a REALTIME warehouse. This field is output only.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "enable_photon": { "description": "Configures whether the warehouse should use Photon optimized clusters.\n\nDefaults to true.", "launch_stage": "GA" @@ -64196,6 +64260,10 @@ "deprecated": true, "launch_stage": "GA" }, + "max_dbu": { + "description": "Maximum compute capacity of a real-time SQL warehouse, in DBU per hour.\nMust be a multiple of 3 between 3 and 960. The effective maximum cannot be\nlower than the warehouse's minimum capacity.", + "launch_stage": "PRIVATE_PREVIEW" + }, "max_num_clusters": { "description": "Maximum number of clusters that the autoscaler will create to handle\nconcurrent queries.\n\nSupported values:\n- Must be \u003e= min_num_clusters\n- Must be \u003c= 40.\n\nDefaults to min_clusters if unset.", "launch_stage": "GA" @@ -64208,6 +64276,10 @@ "description": "Logical name for the cluster.\n\nSupported values:\n- Must be unique within an org.\n- Must be less than 100 characters.", "launch_stage": "GA" }, + "reyden_cluster_size_multiplier": { + "description": "Cluster size multiplier for Reyden warehouses. Scales the effective compute\ncapacity relative to the nominal virtual cluster size. Only meaningful when\nthe warehouse is of Reyden type.\n\nAccepted range: 1.0 to the workspace-configured maximum (decimals\nallowed). The default maximum is 100.0.\n- Values below 1.0 are normalized to 1.0.\n- Values above the configured maximum are capped at that maximum.\n- When absent, the warehouse is treated as having a multiplier of 1.0.", + "launch_stage": "PRIVATE_PREVIEW" + }, "spot_instance_policy": { "description": "Configurations whether the endpoint should use spot instances.", "ref": "sql.SpotInstancePolicy", @@ -64655,6 +64727,13 @@ "description": "warehouse creator name", "launch_stage": "GA" }, + "customer_version_label": { + "description": "Compute version label for a REALTIME warehouse. This field is output only.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "enable_photon": { "description": "Configures whether the warehouse should use Photon optimized clusters.\n\nDefaults to true.", "launch_stage": "GA" @@ -64668,6 +64747,10 @@ "deprecated": true, "launch_stage": "GA" }, + "max_dbu": { + "description": "Maximum compute capacity of a real-time SQL warehouse, in DBU per hour.\nMust be a multiple of 3 between 3 and 960. The effective maximum cannot be\nlower than the warehouse's minimum capacity.", + "launch_stage": "PRIVATE_PREVIEW" + }, "max_num_clusters": { "description": "Maximum number of clusters that the autoscaler will create to handle\nconcurrent queries.\n\nSupported values:\n- Must be \u003e= min_num_clusters\n- Must be \u003c= 40.\n\nDefaults to min_clusters if unset.", "launch_stage": "GA" @@ -64680,6 +64763,10 @@ "description": "Logical name for the cluster.\n\nSupported values:\n- Must be unique within an org.\n- Must be less than 100 characters.", "launch_stage": "GA" }, + "reyden_cluster_size_multiplier": { + "description": "Cluster size multiplier for Reyden warehouses. Scales the effective compute\ncapacity relative to the nominal virtual cluster size. Only meaningful when\nthe warehouse is of Reyden type.\n\nAccepted range: 1.0 to the workspace-configured maximum (decimals\nallowed). The default maximum is 100.0.\n- Values below 1.0 are normalized to 1.0.\n- Values above the configured maximum are capped at that maximum.\n- When absent, the warehouse is treated as having a multiplier of 1.0.", + "launch_stage": "PRIVATE_PREVIEW" + }, "spot_instance_policy": { "description": "Configurations whether the endpoint should use spot instances.", "ref": "sql.SpotInstancePolicy", @@ -64778,6 +64865,13 @@ "description": "warehouse creator name", "launch_stage": "GA" }, + "customer_version_label": { + "description": "Compute version label for a REALTIME warehouse. This field is output only.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "enable_photon": { "description": "Configures whether the warehouse should use Photon optimized clusters.\n\nDefaults to true.", "launch_stage": "GA" @@ -64810,6 +64904,10 @@ "description": "the jdbc connection string for this warehouse", "launch_stage": "GA" }, + "max_dbu": { + "description": "Maximum compute capacity of a real-time SQL warehouse, in DBU per hour.\nMust be a multiple of 3 between 3 and 960. The effective maximum cannot be\nlower than the warehouse's minimum capacity.", + "launch_stage": "PRIVATE_PREVIEW" + }, "max_num_clusters": { "description": "Maximum number of clusters that the autoscaler will create to handle\nconcurrent queries.\n\nSupported values:\n- Must be \u003e= min_num_clusters\n- Must be \u003c= 40.\n\nDefaults to min_clusters if unset.", "launch_stage": "GA" @@ -64836,6 +64934,10 @@ "ref": "sql.OdbcParams", "launch_stage": "GA" }, + "reyden_cluster_size_multiplier": { + "description": "Cluster size multiplier for Reyden warehouses. Scales the effective compute\ncapacity relative to the nominal virtual cluster size. Only meaningful when\nthe warehouse is of Reyden type.\n\nAccepted range: 1.0 to the workspace-configured maximum (decimals\nallowed). The default maximum is 100.0.\n- Values below 1.0 are normalized to 1.0.\n- Values above the configured maximum are capped at that maximum.\n- When absent, the warehouse is treated as having a multiplier of 1.0.", + "launch_stage": "PRIVATE_PREVIEW" + }, "spot_instance_policy": { "description": "Configurations whether the endpoint should use spot instances.", "ref": "sql.SpotInstancePolicy", @@ -65133,6 +65235,13 @@ "description": "warehouse creator name", "launch_stage": "GA" }, + "customer_version_label": { + "description": "Compute version label for a REALTIME warehouse. This field is output only.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "enable_photon": { "description": "Configures whether the warehouse should use Photon optimized clusters.\n\nDefaults to true.", "launch_stage": "GA" @@ -65165,6 +65274,10 @@ "description": "the jdbc connection string for this warehouse", "launch_stage": "GA" }, + "max_dbu": { + "description": "Maximum compute capacity of a real-time SQL warehouse, in DBU per hour.\nMust be a multiple of 3 between 3 and 960. The effective maximum cannot be\nlower than the warehouse's minimum capacity.", + "launch_stage": "PRIVATE_PREVIEW" + }, "max_num_clusters": { "description": "Maximum number of clusters that the autoscaler will create to handle\nconcurrent queries.\n\nSupported values:\n- Must be \u003e= min_num_clusters\n- Must be \u003c= 40.\n\nDefaults to min_clusters if unset.", "launch_stage": "GA" @@ -65191,6 +65304,10 @@ "ref": "sql.OdbcParams", "launch_stage": "GA" }, + "reyden_cluster_size_multiplier": { + "description": "Cluster size multiplier for Reyden warehouses. Scales the effective compute\ncapacity relative to the nominal virtual cluster size. Only meaningful when\nthe warehouse is of Reyden type.\n\nAccepted range: 1.0 to the workspace-configured maximum (decimals\nallowed). The default maximum is 100.0.\n- Values below 1.0 are normalized to 1.0.\n- Values above the configured maximum are capped at that maximum.\n- When absent, the warehouse is treated as having a multiplier of 1.0.", + "launch_stage": "PRIVATE_PREVIEW" + }, "spot_instance_policy": { "description": "Configurations whether the endpoint should use spot instances.", "ref": "sql.SpotInstancePolicy", @@ -77537,7 +77654,7 @@ }, { "name": "CreateSkill", - "description": "Creates a skill in a Unity Catalog schema and provisions its managed bundle\nstorage. Specify its name in `skill_id`. The request contains an optional\ncomment but no bundle bytes. Upload bundle files through the Files API,\nthen call FinalizeSkill.\n\nYou must be the owner of the parent schema or have `CREATE_VOLUME` and\n`USE_SCHEMA` on it, plus `USE_CATALOG` on the parent catalog.", + "description": "Creates a skill in a Unity Catalog schema and provisions its managed bundle\nstorage. Specify its name in `skill_id`. The request contains an optional\ncomment but no bundle bytes.\n\nTo publish a skill:\n\n1. Call CreateSkill to create the skill in Unity Catalog.\n2. Upload every bundle file, including `SKILL.md` at the bundle root,\nwith the Files API:\n`PUT /api/2.0/fs/files/Skills/{catalog}/{schema}/{skill}/{file_path}`.\nThe CreateSkill caller owns the skill and can upload. Other callers\nneed `READ_VOLUME` and `WRITE_VOLUME` on the skill.\n3. Call FinalizeSkill to validate `SKILL.md` and set the skill's\n`bundle_name` and `description` from its frontmatter `name` and\n`description`.\n\nYou must be the owner of the parent schema or have `CREATE_VOLUME` and\n`USE_SCHEMA` on it, plus `USE_CATALOG` on the parent catalog.", "summary": "Create a skill.", "path": "/api/2.1/unity-catalog/skills", "can_use_json": true, @@ -78127,7 +78244,7 @@ }, { "name": "FinalizeSkill", - "description": "Finalizes a skill after its bundle is uploaded. This method reads SKILL.md\nthrough the Files API using the caller's authorization. Its YAML\nfrontmatter must contain an agentskills.io-compliant `name` and a nonblank\n`description` within the configured UTF-8 byte limit. On success, it\nreplaces `bundle_name` and `description`; refreshes `finalize_time`,\n`update_time`, and `updated_by`; and returns the updated skill. `comment` is\npreserved. Re-finalization uses the latest SKILL.md and is last-write-wins\nwithout an etag precondition. Validation failures do not change metadata.\n\nYou must be the owner of the skill or have `READ_VOLUME` on it, plus\n`USE_CATALOG` on the parent catalog and `USE_SCHEMA` on the parent schema.", + "description": "Finalizes a skill after its bundle files are uploaded or changed through\nthe Files API. Call it again after every bundle change. This method reads\nSKILL.md through the Files API using the caller's authorization. Its YAML\nfrontmatter must contain an agentskills.io-compliant `name` and a nonblank\n`description` within the configured UTF-8 byte limit. On success, it\nreplaces `bundle_name` and `description`; refreshes `finalize_time`,\n`update_time`, and `updated_by`; and returns the updated skill. `comment` is\npreserved. Re-finalization uses the latest SKILL.md and is last-write-wins\nwithout an etag precondition. Validation failures do not change metadata.\n\nYou must be the owner of the skill or have `READ_VOLUME` on it, plus\n`USE_CATALOG` on the parent catalog and `USE_SCHEMA` on the parent schema.", "summary": "Finalize a skill.", "path": "/api/2.1/unity-catalog/{name=skills/*}/finalize", "has_required_positional_arguments": true, @@ -78521,7 +78638,7 @@ "all_fields": [ { "name": "page_size", - "description": "Maximum number of MCP services to return. Defaults to 100 when unset or 0;\nthe maximum is 200. Use `page_token` to retrieve additional pages.", + "description": "Maximum number of MCP services to return. Defaults to 200 when unset or 0;\nthe maximum is 200. Use `page_token` to retrieve additional pages.", "is_query": true, "entity": { "is_int": true @@ -78592,7 +78709,7 @@ "all_fields": [ { "name": "page_size", - "description": "Maximum number of provider services to return. Defaults to 100 when unset or\n0; the maximum is 200. Use `page_token` to retrieve additional pages.", + "description": "Maximum number of provider services to return. Defaults to 200 when unset or\n0; the maximum is 200. Use `page_token` to retrieve additional pages.", "is_query": true, "entity": { "is_int": true @@ -78663,7 +78780,7 @@ "all_fields": [ { "name": "page_size", - "description": "Maximum number of model services to return. Defaults to 100 when unset or 0;\nthe maximum is 200. Use `page_token` to retrieve additional pages.", + "description": "Maximum number of model services to return. Defaults to 200 when unset or 0;\nthe maximum is 200. Use `page_token` to retrieve additional pages.", "is_query": true, "entity": { "is_int": true @@ -78758,7 +78875,7 @@ "all_fields": [ { "name": "page_size", - "description": "Maximum number of skills to return. Defaults to 100 when unset or 0; the\nmaximum is 200. Use `page_token` to retrieve additional pages.", + "description": "Maximum number of skills to return. Defaults to 200 when unset or 0; the\nmaximum is 200. Use `page_token` to retrieve additional pages.", "is_query": true, "entity": { "is_int": true @@ -79543,7 +79660,7 @@ }, { "name": "UpdateSkill", - "description": "Updates a skill. Only fields named in `update_mask` are changed; currently\nonly `comment` is supported. The resource name is immutable. Optionally\nsupply an `etag` to make the update conditional on the skill not having\nchanged since it was read. Bundle files, grants, tags, and ownership are\nunchanged.\n\nYou must be the owner of the skill or have `MANAGE` on it, plus\n`USE_CATALOG` on the parent catalog and `USE_SCHEMA` on the parent schema.", + "description": "Updates a skill. Only fields named in `update_mask` are changed; currently\nonly `comment` is supported. The resource name is immutable. Optionally\nsupply an `etag` to make the update conditional on the skill not having\nchanged since it was read. Bundle files, grants, tags, and ownership are\nunchanged.\n\nTo update the bundle, add, overwrite (`overwrite=true`), or delete files\nunder `/Skills/{catalog}/{schema}/{skill}/` with the Files API, then call\nFinalizeSkill. Changing bundle files requires being the owner of the skill\nor having `READ_VOLUME` and `WRITE_VOLUME` on it; `MANAGE` does not grant\naccess to bundle files.\n\nTo call UpdateSkill, you must be the owner of the skill or have `MANAGE` on\nit, plus `USE_CATALOG` on the parent catalog and `USE_SCHEMA` on the parent\nschema.", "summary": "Update a skill.", "path": "/api/2.1/unity-catalog/{name=skills/*}", "can_use_json": true, @@ -93504,7 +93621,7 @@ }, { "name": "UpdateOperation", - "description": "Updates a resource operation's mutable fields.\n\n`state`, `error_message`, `resource_id`, `status`, and `dashboard_metadata`\nmay be updated, independently; `update_mask` must contain only those paths.\nAll other fields are immutable. The update is guarded by an\noptimistic-concurrency check: the caller sets `operation.sequence_id` to the\nvalue it last observed, and the server rejects the update with `ABORTED` if\nthe operation has been modified since. On success the server increments\n`sequence_id`; updates to `state`, `resource_id`, and `dashboard_metadata`\nare mirrored onto the corresponding deployment-level resource. Listing\n`state` in `update_mask` with no value clears it, which removes the\nresource, so a delete that is retried until it succeeds must clear `state`.\nThe parent version must be in progress, and after the update is applied a\nsucceeded operation cannot carry an `error_message`. See the `state` and\n`resource_id` fields for the rest.", + "description": "Updates a resource operation's mutable fields.\n\n`state`, `error_message`, `resource_id`, `status`, and `dashboard_metadata`\nmay be updated, independently; `update_mask` must contain only those paths.\nAll other fields are immutable. The update is guarded by an\noptimistic-concurrency check: the caller sets `operation.sequence_id` to the\nvalue it last observed, and the server rejects the update with `ABORTED` if\nthe operation has been modified since. On success the server increments\n`sequence_id`; updates to `state`, `resource_id`, and `dashboard_metadata`\nare mirrored onto the corresponding deployment-level resource. Listing\n`state` in `update_mask` with no value clears it, which removes the\ntracked resource, so a delete or unbind that succeeds must clear `state`.\nThe parent version must be in progress, and after the update is applied a\nsucceeded operation cannot carry an `error_message`. See the `state` and\n`resource_id` fields for the rest.", "summary": "Update an operation.", "path": "/api/2.0/bundle/{name=deployments/*/versions/*/operations/*}", "can_use_json": true, @@ -93837,7 +93954,7 @@ }, { "name": "state", - "description": "Serialized local config state after the operation. Its presence records\nwhether the resource still exists. Explicitly clearing state removes the resource;\nomitting it from the update mask leaves resource state unchanged.\nState is stored only on Resources. UpdateOperation accepts state but omits it\nfrom its response, as do subsequent GetOperation and ListOperations.\n\nMutable: may be updated after creation via UpdateOperation. When updating,\nthe caller must echo the last-observed `sequence_id` as a concurrency\nprecondition.\n\nThe string is not parsed; it is projected onto the corresponding Resource's\nstate. It is deliberately not google.protobuf.Value, whose only numeric case\nis `double number_value`, so parsing the client's JSON into it rewrites every\ninteger as a double - `1` reads back as `1.0`, which no longer deserializes\ninto an integer field - and silently loses precision above 2^53, which is\nwithin range for IDs the client records.\n\nA string rather than bytes: the payload is always UTF-8 JSON, and proto3 JSON\nmaps bytes to base64, which inflates every request and response by a third\nand makes state unreadable in logs and API responses. Both generate the same\nOpenAPI schema (\"type\": \"string\"), so the SDKs are identical either way.", + "description": "Serialized local config state after the operation. Its presence records\nwhether the resource is still tracked by the deployment. Explicitly clearing\nstate removes the resource from the deployment; omitting it from the update\nmask leaves resource state unchanged.\nState is stored only on Resources. UpdateOperation accepts state but omits it\nfrom its response, as do subsequent GetOperation and ListOperations.\n\nMutable: may be updated after creation via UpdateOperation. When updating,\nthe caller must echo the last-observed `sequence_id` as a concurrency\nprecondition.\n\nThe string is not parsed; it is projected onto the corresponding Resource's\nstate. It is deliberately not google.protobuf.Value, whose only numeric case\nis `double number_value`, so parsing the client's JSON into it rewrites every\ninteger as a double - `1` reads back as `1.0`, which no longer deserializes\ninto an integer field - and silently loses precision above 2^53, which is\nwithin range for IDs the client records.\n\nA string rather than bytes: the payload is always UTF-8 JSON, and proto3 JSON\nmaps bytes to base64, which inflates every request and response by a third\nand makes state unreadable in logs and API responses. Both generate the same\nOpenAPI schema (\"type\": \"string\"), so the SDKs are identical either way.", "is_request_body_field": true, "entity": { "is_string": true @@ -177531,7 +177648,7 @@ }, { "name": "order_by", - "description": "A list of strings specifying the order of results.\nSupported order_by fields are id and name. The default is id asc.\nThis field is optional.", + "description": "A list of strings specifying the order of results.\nThe supported order_by field is id. The default is id asc.\nThis field is optional.", "is_query": true, "entity": { "pascal_name": "List", @@ -211624,16 +211741,6 @@ "is_string": true } }, - { - "name": "replication_config", - "description": "Configuration for share replication.", - "is_request_body_field": true, - "is_optional_object": true, - "entity": { - "pascal_name": "ReplicationConfig", - "is_object": true - } - }, { "name": "storage_root", "description": "Storage root URL for the share.", @@ -225092,6 +225199,15 @@ "is_string": true } }, + { + "name": "customer_version_label", + "description": "Compute version label for a REALTIME warehouse. This field is output only.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "enable_photon", "description": "Configures whether the warehouse should use Photon optimized clusters.\n\nDefaults to true.", @@ -225116,6 +225232,14 @@ "is_string": true } }, + { + "name": "max_dbu", + "description": "Maximum compute capacity of a real-time SQL warehouse, in DBU per hour.\nMust be a multiple of 3 between 3 and 960. The effective maximum cannot be\nlower than the warehouse's minimum capacity.", + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, { "name": "max_num_clusters", "description": "Maximum number of clusters that the autoscaler will create to handle\nconcurrent queries.\n\nSupported values:\n- Must be \u003e= min_num_clusters\n- Must be \u003c= 40.\n\nDefaults to min_clusters if unset.", @@ -225140,6 +225264,14 @@ "is_string": true } }, + { + "name": "reyden_cluster_size_multiplier", + "description": "Cluster size multiplier for Reyden warehouses. Scales the effective compute\ncapacity relative to the nominal virtual cluster size. Only meaningful when\nthe warehouse is of Reyden type.\n\nAccepted range: 1.0 to the workspace-configured maximum (decimals\nallowed). The default maximum is 100.0.\n- Values below 1.0 are normalized to 1.0.\n- Values above the configured maximum are capped at that maximum.\n- When absent, the warehouse is treated as having a multiplier of 1.0.", + "is_request_body_field": true, + "entity": { + "is_float64": true + } + }, { "name": "spot_instance_policy", "description": "Configurations whether the endpoint should use spot instances.", @@ -225714,6 +225846,15 @@ "is_string": true } }, + { + "name": "customer_version_label", + "description": "Compute version label for a REALTIME warehouse. This field is output only.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "enable_photon", "description": "Configures whether the warehouse should use Photon optimized clusters.\n\nDefaults to true.", @@ -225747,6 +225888,14 @@ "is_string": true } }, + { + "name": "max_dbu", + "description": "Maximum compute capacity of a real-time SQL warehouse, in DBU per hour.\nMust be a multiple of 3 between 3 and 960. The effective maximum cannot be\nlower than the warehouse's minimum capacity.", + "is_request_body_field": true, + "entity": { + "is_int": true + } + }, { "name": "max_num_clusters", "description": "Maximum number of clusters that the autoscaler will create to handle\nconcurrent queries.\n\nSupported values:\n- Must be \u003e= min_num_clusters\n- Must be \u003c= 40.\n\nDefaults to min_clusters if unset.", @@ -225771,6 +225920,14 @@ "is_string": true } }, + { + "name": "reyden_cluster_size_multiplier", + "description": "Cluster size multiplier for Reyden warehouses. Scales the effective compute\ncapacity relative to the nominal virtual cluster size. Only meaningful when\nthe warehouse is of Reyden type.\n\nAccepted range: 1.0 to the workspace-configured maximum (decimals\nallowed). The default maximum is 100.0.\n- Values below 1.0 are normalized to 1.0.\n- Values above the configured maximum are capped at that maximum.\n- When absent, the warehouse is treated as having a multiplier of 1.0.", + "is_request_body_field": true, + "entity": { + "is_float64": true + } + }, { "name": "spot_instance_policy", "description": "Configurations whether the endpoint should use spot instances.", diff --git a/.nextchanges/dependency-updates/go-sdk-v0.190.0.md b/.nextchanges/dependency-updates/go-sdk-v0.190.0.md new file mode 100644 index 00000000000..fc629ea54ef --- /dev/null +++ b/.nextchanges/dependency-updates/go-sdk-v0.190.0.md @@ -0,0 +1 @@ +* Update the Go SDK to [v0.190.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.190.0). ([#7155](https://github.com/databricks/cli/pull/7155)) diff --git a/acceptance/bundle/refschema/out.fields.txt b/acceptance/bundle/refschema/out.fields.txt index 8663853ceb1..978c468c0ac 100644 --- a/acceptance/bundle/refschema/out.fields.txt +++ b/acceptance/bundle/refschema/out.fields.txt @@ -967,6 +967,15 @@ resources.features.*.source.request_source.flat_schema.fields []ml.FieldDefiniti resources.features.*.source.request_source.flat_schema.fields[*] ml.FieldDefinition ALL resources.features.*.source.request_source.flat_schema.fields[*].data_type ml.ScalarDataType ALL resources.features.*.source.request_source.flat_schema.fields[*].name string ALL +resources.features.*.source.sdp_source *ml.SdpSource ALL +resources.features.*.source.sdp_source.dataframe_schema string ALL +resources.features.*.source.sdp_source.filter_condition string ALL +resources.features.*.source.sdp_source.input_tables []string ALL +resources.features.*.source.sdp_source.input_tables[*] string ALL +resources.features.*.source.sdp_source.output_table string ALL +resources.features.*.source.sdp_source.pipeline_id string ALL +resources.features.*.source.sdp_source.pipeline_state ml.SdpSourceState ALL +resources.features.*.source.sdp_source.transformation_sql string ALL resources.features.*.source.stream_source *ml.StreamSource ALL resources.features.*.source.stream_source.dataframe_schema string ALL resources.features.*.source.stream_source.filter_condition string ALL @@ -4396,6 +4405,7 @@ resources.sql_warehouses.*.channel.dbsql_version string ALL resources.sql_warehouses.*.channel.name sql.ChannelName ALL resources.sql_warehouses.*.cluster_size string ALL resources.sql_warehouses.*.creator_name string ALL +resources.sql_warehouses.*.customer_version_label string ALL resources.sql_warehouses.*.enable_photon bool ALL resources.sql_warehouses.*.enable_serverless_compute bool ALL resources.sql_warehouses.*.health *sql.EndpointHealth REMOTE @@ -4416,6 +4426,7 @@ resources.sql_warehouses.*.lifecycle *resources.LifecycleWithStarted INPUT resources.sql_warehouses.*.lifecycle resources.Lifecycle INPUT resources.sql_warehouses.*.lifecycle.prevent_destroy bool INPUT resources.sql_warehouses.*.lifecycle.started *bool ALL +resources.sql_warehouses.*.max_dbu int ALL resources.sql_warehouses.*.max_num_clusters int ALL resources.sql_warehouses.*.min_num_clusters int ALL resources.sql_warehouses.*.modified_status string INPUT @@ -4427,6 +4438,7 @@ resources.sql_warehouses.*.odbc_params.hostname string REMOTE resources.sql_warehouses.*.odbc_params.path string REMOTE resources.sql_warehouses.*.odbc_params.port int REMOTE resources.sql_warehouses.*.odbc_params.protocol string REMOTE +resources.sql_warehouses.*.reyden_cluster_size_multiplier float64 ALL resources.sql_warehouses.*.spot_instance_policy sql.SpotInstancePolicy ALL resources.sql_warehouses.*.state sql.State REMOTE resources.sql_warehouses.*.statement_timeout int ALL diff --git a/bundle/direct/dresources/configs/features.generated.yml b/bundle/direct/dresources/configs/features.generated.yml index 51dae44ab90..e845514a9e7 100644 --- a/bundle/direct/dresources/configs/features.generated.yml +++ b/bundle/direct/dresources/configs/features.generated.yml @@ -34,3 +34,5 @@ ignore_remote_changes: reason: spec:output_only - field: schema_name reason: spec:output_only + - field: source.sdp_source.pipeline_state + reason: spec:output_only diff --git a/bundle/direct/dresources/configs/sql_warehouses.generated.yml b/bundle/direct/dresources/configs/sql_warehouses.generated.yml new file mode 100644 index 00000000000..e770f766b9c --- /dev/null +++ b/bundle/direct/dresources/configs/sql_warehouses.generated.yml @@ -0,0 +1,5 @@ +# Generated, do not edit. + +ignore_remote_changes: + - field: customer_version_label + reason: spec:output_only diff --git a/bundle/direct/dresources/sql_warehouse.go b/bundle/direct/dresources/sql_warehouse.go index 7d4578dd6f2..f7b9ca09fbe 100644 --- a/bundle/direct/dresources/sql_warehouse.go +++ b/bundle/direct/dresources/sql_warehouse.go @@ -72,22 +72,25 @@ func (*ResourceSqlWarehouse) PrepareState(input *resources.SqlWarehouse) *SqlWar // Started is derived from warehouse state so the planner can detect start/stop changes. func (*ResourceSqlWarehouse) RemapState(warehouse *SqlWarehouseRemote) *SqlWarehouseState { return &SqlWarehouseState{ - AutoStopMins: warehouse.AutoStopMins, - Channel: warehouse.Channel, - ClusterSize: warehouse.ClusterSize, - CreatorName: warehouse.CreatorName, - EnablePhoton: warehouse.EnablePhoton, - EnableServerlessCompute: warehouse.EnableServerlessCompute, - InstanceProfileArn: warehouse.InstanceProfileArn, - MaxNumClusters: warehouse.MaxNumClusters, - MinNumClusters: warehouse.MinNumClusters, - Name: warehouse.Name, - SpotInstancePolicy: warehouse.SpotInstancePolicy, - StatementTimeout: warehouse.StatementTimeout, - Tags: warehouse.Tags, - WarehouseType: sql.CreateWarehouseRequestWarehouseType(warehouse.WarehouseType), - ForceSendFields: utils.FilterFields[sql.CreateWarehouseRequest](warehouse.ForceSendFields), - Lifecycle: warehouse.Lifecycle, + AutoStopMins: warehouse.AutoStopMins, + Channel: warehouse.Channel, + ClusterSize: warehouse.ClusterSize, + CreatorName: warehouse.CreatorName, + CustomerVersionLabel: warehouse.CustomerVersionLabel, + EnablePhoton: warehouse.EnablePhoton, + EnableServerlessCompute: warehouse.EnableServerlessCompute, + InstanceProfileArn: warehouse.InstanceProfileArn, + MaxDbu: warehouse.MaxDbu, + MaxNumClusters: warehouse.MaxNumClusters, + MinNumClusters: warehouse.MinNumClusters, + Name: warehouse.Name, + ReydenClusterSizeMultiplier: warehouse.ReydenClusterSizeMultiplier, + SpotInstancePolicy: warehouse.SpotInstancePolicy, + StatementTimeout: warehouse.StatementTimeout, + Tags: warehouse.Tags, + WarehouseType: sql.CreateWarehouseRequestWarehouseType(warehouse.WarehouseType), + ForceSendFields: utils.FilterFields[sql.CreateWarehouseRequest](warehouse.ForceSendFields), + Lifecycle: warehouse.Lifecycle, } } @@ -135,22 +138,25 @@ func (r *ResourceSqlWarehouse) DoUpdate(ctx context.Context, id string, config * edited := hasWarehouseChanges(entry) if edited { request := sql.EditWarehouseRequest{ - AutoStopMins: config.AutoStopMins, - Channel: config.Channel, - ClusterSize: config.ClusterSize, - CreatorName: config.CreatorName, - EnablePhoton: config.EnablePhoton, - EnableServerlessCompute: config.EnableServerlessCompute, - Id: id, - InstanceProfileArn: config.InstanceProfileArn, - MaxNumClusters: config.MaxNumClusters, - MinNumClusters: config.MinNumClusters, - Name: config.Name, - SpotInstancePolicy: config.SpotInstancePolicy, - StatementTimeout: config.StatementTimeout, - Tags: config.Tags, - WarehouseType: sql.EditWarehouseRequestWarehouseType(config.WarehouseType), - ForceSendFields: utils.FilterFields[sql.EditWarehouseRequest](config.ForceSendFields), + AutoStopMins: config.AutoStopMins, + Channel: config.Channel, + ClusterSize: config.ClusterSize, + CreatorName: config.CreatorName, + CustomerVersionLabel: config.CustomerVersionLabel, + EnablePhoton: config.EnablePhoton, + EnableServerlessCompute: config.EnableServerlessCompute, + Id: id, + InstanceProfileArn: config.InstanceProfileArn, + MaxDbu: config.MaxDbu, + MaxNumClusters: config.MaxNumClusters, + MinNumClusters: config.MinNumClusters, + Name: config.Name, + ReydenClusterSizeMultiplier: config.ReydenClusterSizeMultiplier, + SpotInstancePolicy: config.SpotInstancePolicy, + StatementTimeout: config.StatementTimeout, + Tags: config.Tags, + WarehouseType: sql.EditWarehouseRequestWarehouseType(config.WarehouseType), + ForceSendFields: utils.FilterFields[sql.EditWarehouseRequest](config.ForceSendFields), } waiter, err := r.client.Warehouses.Edit(ctx, request) diff --git a/bundle/internal/validation/generated/enum_fields.go b/bundle/internal/validation/generated/enum_fields.go index e811c87414b..e67e605689d 100644 --- a/bundle/internal/validation/generated/enum_fields.go +++ b/bundle/internal/validation/generated/enum_fields.go @@ -68,6 +68,7 @@ var EnumFields = map[string][]string{ "resources.features.*.function.function_type": {"APPROX_COUNT_DISTINCT", "APPROX_PERCENTILE", "AVG", "COUNT", "FIRST", "FUNCTION_TYPE_UNSPECIFIED", "LAST", "MAX", "MIN", "STDDEV_POP", "STDDEV_SAMP", "SUM", "VAR_POP", "VAR_SAMP"}, "resources.features.*.source.request_source.flat_schema.fields[*].data_type": {"BINARY", "BOOLEAN", "DATE", "DECIMAL", "DOUBLE", "FLOAT", "INTEGER", "LONG", "SHORT", "STRING", "TIMESTAMP"}, + "resources.features.*.source.sdp_source.pipeline_state": {"ERROR", "PENDING", "RESOLVED"}, "resources.genie_spaces.*.permissions[*].level": {"CAN_ATTACH_TO", "CAN_BIND", "CAN_CREATE", "CAN_CREATE_APP", "CAN_EDIT", "CAN_EDIT_METADATA", "CAN_MANAGE", "CAN_MANAGE_PRODUCTION_VERSIONS", "CAN_MANAGE_RUN", "CAN_MANAGE_STAGING_VERSIONS", "CAN_MONITOR", "CAN_MONITOR_ONLY", "CAN_QUERY", "CAN_READ", "CAN_RESTART", "CAN_RUN", "CAN_USE", "CAN_VIEW", "CAN_VIEW_METADATA", "IS_OWNER"}, diff --git a/bundle/schema/jsonschema.json b/bundle/schema/jsonschema.json index 90a5e8af5d4..76a608b5275 100644 --- a/bundle/schema/jsonschema.json +++ b/bundle/schema/jsonschema.json @@ -3279,6 +3279,12 @@ "description": "Settings that control the deployment lifecycle of the resource, such as preventing it from being destroyed.", "$ref": "#/$defs/github.com/databricks/cli/bundle/config/resources.LifecycleWithStarted" }, + "max_dbu": { + "description": "[Private Preview] Maximum compute capacity of a real-time SQL warehouse, in DBU per hour.\nMust be a multiple of 3 between 3 and 960. The effective maximum cannot be\nlower than the warehouse's minimum capacity.", + "$ref": "#/$defs/int", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "max_num_clusters": { "description": "Maximum number of clusters that the autoscaler will create to handle\nconcurrent queries.\n\nSupported values:\n- Must be \u003e= min_num_clusters\n- Must be \u003c= 40.\n\nDefaults to min_clusters if unset.", "$ref": "#/$defs/int", @@ -3299,6 +3305,12 @@ "$ref": "#/$defs/slice/github.com/databricks/cli/bundle/config/resources.SqlWarehousePermission", "markdownDescription": "A Sequence of permissions to apply to this resource, where each item grants a permission `level` to a single `user_name`, `group_name`, or `service_principal_name`. A principal cannot be set in both a resource's `permissions` and the top-level `permissions` mapping.\n\nSee [permissions](https://docs.databricks.com/dev-tools/bundles/settings.html#permissions) and [link](https://docs.databricks.com/dev-tools/bundles/permissions.html)." }, + "reyden_cluster_size_multiplier": { + "description": "[Private Preview] Cluster size multiplier for Reyden warehouses. Scales the effective compute\ncapacity relative to the nominal virtual cluster size. Only meaningful when\nthe warehouse is of Reyden type.\n\nAccepted range: 1.0 to the workspace-configured maximum (decimals\nallowed). The default maximum is 100.0.\n- Values below 1.0 are normalized to 1.0.\n- Values above the configured maximum are capped at that maximum.\n- When absent, the warehouse is treated as having a multiplier of 1.0.", + "$ref": "#/$defs/float64", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "spot_instance_policy": { "description": "Configurations whether the endpoint should use spot instances.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/sql.SpotInstancePolicy", @@ -5725,7 +5737,7 @@ "x-databricks-launch-stage": "GA" }, "custom": { - "description": "Custom OpenAI-compatible provider configuration with bearer-token\nauthentication.", + "description": "Custom OpenAI-compatible provider configuration.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/catalog.ModelProviderServiceConfigCustomProviderConfig", "x-databricks-launch-stage": "GA" }, @@ -6010,7 +6022,7 @@ "oneOf": [ { "type": "object", - "description": "Custom OpenAI-compatible provider configuration with bearer-token\nauthentication.", + "description": "Custom OpenAI-compatible provider configuration.", "properties": { "direct": { "description": "Endpoint and authentication configuration for the custom provider.", @@ -11685,10 +11697,9 @@ "type": "object", "properties": { "attachment": { - "description": "[Private Preview] Optional: The configuration for the files attached to the dashboard snapshot notification. It\ncontrols the underlying data of dashboard widgets that is attached as data files and which\npages are included in the attached PDF. If not specified, the notification is sent with only\nthe default snapshot.", + "description": "[Beta] Optional: The configuration for the files attached to the dashboard snapshot notification. It\ncontrols the underlying data of dashboard widgets that is attached as data files and which\npages are included in the attached PDF. If not specified, the notification is sent with only\nthe default snapshot.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.SubscriptionAttachment", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "custom_subject": { "description": "Optional: Allows users to specify a custom subject line on the email sent\nto subscribers.", @@ -11721,16 +11732,14 @@ "description": "The configuration for the files attached to the dashboard snapshot notification sent to\nsubscribers. `data_attachment` describes the underlying data of dashboard widgets attached\nas data files, and `page_attachment` describes which dashboard pages are included in the\nattached PDF.", "properties": { "data_attachment": { - "description": "[Private Preview] Optional: The configuration for the underlying data of dashboard widgets attached as tabular\ndata files. If not specified, no tabular data is attached.", + "description": "[Beta] Optional: The configuration for the underlying data of dashboard widgets attached as tabular\ndata files. If not specified, no tabular data is attached.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.SubscriptionAttachmentDataAttachment", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "page_attachment": { - "description": "[Private Preview] Optional: The selection of dashboard pages included in the attached PDF. If not specified,\nonly the first page is included.", + "description": "[Beta] Optional: The selection of dashboard pages included in the attached PDF. If not specified,\nonly the first page is included.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.SubscriptionAttachmentPageAttachment", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false @@ -11748,22 +11757,19 @@ "description": "The configuration for the tabular data files attached to the dashboard snapshot. `widgets`\nlists the widgets whose data is exported and `file_format` is the output format; each\nreferenced widget's data is exported as a separate file.", "properties": { "file_format": { - "description": "[Private Preview] The file format of the exported tabular data files.", + "description": "[Beta] The file format of the exported tabular data files.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.SubscriptionAttachmentDataAttachmentFileFormat", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "include_applied_filters": { - "description": "[Private Preview] When true, the dashboard's applied filter values are included alongside the tabular data as\nan additional attached file.", + "description": "[Beta] When true, the dashboard's applied filter values are included alongside the tabular data as\nan additional attached file.", "$ref": "#/$defs/bool", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "widgets": { - "description": "[Private Preview] The widgets whose underlying data is exported. At least one widget must be referenced.", + "description": "[Beta] The widgets whose underlying data is exported. At least one widget must be referenced.", "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/jobs.SubscriptionAttachmentDataAttachmentWidget", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false, @@ -11789,9 +11795,9 @@ "FILE_FORMAT_EXCEL" ], "enumDescriptions": [ - "[Private Preview]", - "[Private Preview]", - "[Private Preview]" + "[Beta]", + "[Beta]", + "[Beta]" ] }, { @@ -11807,16 +11813,14 @@ "description": "Identifies a dashboard widget whose data to attach. `page_id` and `widget_id` are\nthe URL identifiers from the dashboard's serialized definition returned by the Get dashboard\nAPI (`serialized_dashboard`), and together they uniquely identify the widget.", "properties": { "page_id": { - "description": "[Private Preview] The URL identifier of the page containing the widget. This is the value of the `name`\nfield of the corresponding entry under `pages` in the serialized dashboard definition.\nFormat: alphanumeric, hyphen, and underscore characters allowed, max length 63.", + "description": "[Beta] The URL identifier of the page containing the widget. This is the value of the `name`\nfield of the corresponding entry under `pages` in the serialized dashboard definition.\nFormat: alphanumeric, hyphen, and underscore characters allowed, max length 63.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "widget_id": { - "description": "[Private Preview] The URL identifier of the widget. This is the value of the `name` field of the\ncorresponding widget under that page's `layout` in the serialized dashboard definition.\nFormat: alphanumeric, hyphen, and underscore characters allowed, max length 63.", + "description": "[Beta] The URL identifier of the widget. This is the value of the `name` field of the\ncorresponding widget under that page's `layout` in the serialized dashboard definition.\nFormat: alphanumeric, hyphen, and underscore characters allowed, max length 63.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false, @@ -11838,16 +11842,14 @@ "description": "The selection of dashboard pages included in the attached PDF. `page_selection` chooses\nbetween all pages, the first page only, or an explicit subset listed in `page_ids`.", "properties": { "page_ids": { - "description": "[Private Preview] The identifiers of the pages to include in the PDF. Only specified when `page_selection` is\n`PAGE_SELECTION_SUBSET`. Each value is the identifier of a page in the dashboard's\nserialized definition returned by the Get dashboard API (`serialized_dashboard`): the value\nof the `name` field of an entry under `pages`.\nFormat: alphanumeric, hyphen, and underscore characters allowed, max length 63.", + "description": "[Beta] The identifiers of the pages to include in the PDF. Only specified when `page_selection` is\n`PAGE_SELECTION_SUBSET`. Each value is the identifier of a page in the dashboard's\nserialized definition returned by the Get dashboard API (`serialized_dashboard`): the value\nof the `name` field of an entry under `pages`.\nFormat: alphanumeric, hyphen, and underscore characters allowed, max length 63.", "$ref": "#/$defs/slice/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "page_selection": { - "description": "[Private Preview] How the attached pages are selected. When set to `PAGE_SELECTION_SUBSET`, the pages to\ninclude are listed in `page_ids`.", + "description": "[Beta] How the attached pages are selected. When set to `PAGE_SELECTION_SUBSET`, the pages to\ninclude are listed in `page_ids`.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/jobs.SubscriptionAttachmentPageAttachmentPageSelection", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" } }, "additionalProperties": false @@ -11868,8 +11870,8 @@ "PAGE_SELECTION_SUBSET" ], "enumDescriptions": [ - "[Private Preview]", - "[Private Preview]" + "[Beta]", + "[Beta]" ] }, { @@ -12824,6 +12826,12 @@ "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/ml.RequestSource", "x-databricks-launch-stage": "GA" }, + "sdp_source": { + "description": "[Private Preview] A Spark Declarative Pipeline data source.", + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/ml.SdpSource", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "stream_source": { "description": "A Stream data source.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/ml.StreamSource", @@ -13682,6 +13690,79 @@ } ] }, + "ml.SdpSource": { + "oneOf": [ + { + "type": "object", + "description": "A Spark Declarative Pipeline (SDP) data source.", + "properties": { + "dataframe_schema": { + "description": "[Private Preview] Schema of the resulting dataframe after transformations, in Spark StructType JSON format (from df.schema.json()).\nRequired if transformation_sql is specified.\nExample: {\"type\":\"struct\",\"fields\":[{\"name\":\"col_a\",\"type\":\"integer\",\"nullable\":true,\"metadata\":{}},{\"name\":\"col_c\",\"type\":\"integer\",\"nullable\":true,\"metadata\":{}}]}", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "filter_condition": { + "description": "[Private Preview] Single WHERE clause to filter the pipeline's output table before applying transformations. Will be row-wise evaluated, so should only include conditionals and projections.", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "input_tables": { + "description": "[Private Preview] The full three-part names of the tables the pipeline reads from. Required to materialize this\nfeature with a TableTrigger, which starts a run when these tables update. Each table must exist\nwhen the feature is created. After the pipeline runs, Feature Store checks that it reads from\nthese tables, and the run fails if it doesn't. At most 100 tables.", + "$ref": "#/$defs/slice/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "output_table": { + "description": "[Private Preview] The full three-part (catalog, schema, table) name of the pipeline's output table to read from.\nThe table doesn't need to exist until the pipeline first runs. Required.", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "pipeline_id": { + "description": "[Private Preview] The ID of the Spark Declarative Pipeline that Feature Store runs to produce this source, before\neach materialization or backfill. The pipeline must already exist when the feature is created,\nand you need CAN_RUN, CAN_MANAGE, or owner permission on it. It doesn't need to have run yet.\nDeleting the feature doesn't delete the pipeline. If the pipeline is deleted, this field reads\nback empty. Required.", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "transformation_sql": { + "description": "[Private Preview] A single SQL SELECT expression applied after filter_condition.\nShould contain all the columns needed (eg. \"SELECT *, col_a + col_b AS col_c FROM x.y.z WHERE col_a \u003e 0\" would have `transformation_sql` \"*, col_a + col_b AS col_c\")\nIf transformation_sql is not provided, all columns of the pipeline's output table are present in the DataSource dataframe.", + "$ref": "#/$defs/string", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + } + }, + "additionalProperties": false + }, + { + "type": "string", + "pattern": "\\$\\{(var(\\._*\\p{L}+([-_]*[\\p{L}\\p{N}]+)*(\\[[0-9]+\\])*)+)\\}" + } + ] + }, + "ml.SdpSourceState": { + "oneOf": [ + { + "type": "string", + "description": "State of the SDP source relative to pipeline execution and output table validation.", + "enum": [ + "PENDING", + "RESOLVED", + "ERROR" + ], + "enumDescriptions": [ + "[Private Preview]", + "[Private Preview]", + "[Private Preview]" + ] + }, + { + "type": "string", + "pattern": "\\$\\{(var(\\._*\\p{L}+([-_]*[\\p{L}\\p{N}]+)*(\\[[0-9]+\\])*)+)\\}" + } + ] + }, "ml.SlidingWindow": { "oneOf": [ { diff --git a/cmd/workspace/ai-gateway/ai-gateway.go b/cmd/workspace/ai-gateway/ai-gateway.go index 3fe1d3da088..8dd93402cc2 100644 --- a/cmd/workspace/ai-gateway/ai-gateway.go +++ b/cmd/workspace/ai-gateway/ai-gateway.go @@ -459,8 +459,17 @@ Create a skill. Creates a skill in a Unity Catalog schema and provisions its managed bundle storage. Specify its name in skill_id. The request contains an optional - comment but no bundle bytes. Upload bundle files through the Files API, then - call FinalizeSkill. + comment but no bundle bytes. + + To publish a skill: + + 1. Call CreateSkill to create the skill in Unity Catalog. 2. Upload every + bundle file, including SKILL.md at the bundle root, with the Files API: PUT + /api/2.0/fs/files/Skills/{catalog}/{schema}/{skill}/{file_path}. The + CreateSkill caller owns the skill and can upload. Other callers need + READ_VOLUME and WRITE_VOLUME on the skill. 3. Call FinalizeSkill to + validate SKILL.md and set the skill's bundle_name and description from + its frontmatter name and description. You must be the owner of the parent schema or have CREATE_VOLUME and USE_SCHEMA on it, plus USE_CATALOG on the parent catalog. @@ -879,7 +888,8 @@ func newFinalizeSkill() *cobra.Command { Finalize a skill. - Finalizes a skill after its bundle is uploaded. This method reads SKILL.md + Finalizes a skill after its bundle files are uploaded or changed through the + Files API. Call it again after every bundle change. This method reads SKILL.md through the Files API using the caller's authorization. Its YAML frontmatter must contain an agentskills.io-compliant name and a nonblank description within the configured UTF-8 byte limit. On success, it replaces bundle_name @@ -1938,8 +1948,15 @@ Update a skill. an etag to make the update conditional on the skill not having changed since it was read. Bundle files, grants, tags, and ownership are unchanged. - You must be the owner of the skill or have MANAGE on it, plus USE_CATALOG - on the parent catalog and USE_SCHEMA on the parent schema. + To update the bundle, add, overwrite (overwrite=true), or delete files under + /Skills/{catalog}/{schema}/{skill}/ with the Files API, then call + FinalizeSkill. Changing bundle files requires being the owner of the skill or + having READ_VOLUME and WRITE_VOLUME on it; MANAGE does not grant access + to bundle files. + + To call UpdateSkill, you must be the owner of the skill or have MANAGE on + it, plus USE_CATALOG on the parent catalog and USE_SCHEMA on the parent + schema. Arguments: NAME: Resource name of the skill. Format: skills/{catalog}.{schema}.{skill}. diff --git a/cmd/workspace/bundle-deployments/bundle-deployments.go b/cmd/workspace/bundle-deployments/bundle-deployments.go index ddf35aeaf97..47c856736ef 100644 --- a/cmd/workspace/bundle-deployments/bundle-deployments.go +++ b/cmd/workspace/bundle-deployments/bundle-deployments.go @@ -1134,8 +1134,8 @@ func newUpdateOperation() *cobra.Command { the operation has been modified since. On success the server increments sequence_id; updates to state, resource_id, and dashboard_metadata are mirrored onto the corresponding deployment-level resource. Listing state in - update_mask with no value clears it, which removes the resource, so a delete - that is retried until it succeeds must clear state. The parent version must + update_mask with no value clears it, which removes the tracked resource, so + a delete or unbind that succeeds must clear state. The parent version must be in progress, and after the update is applied a succeeded operation cannot carry an error_message. See the state and resource_id fields for the rest. diff --git a/cmd/workspace/shares/shares.go b/cmd/workspace/shares/shares.go index 40baf4d5b66..4f3869ae300 100644 --- a/cmd/workspace/shares/shares.go +++ b/cmd/workspace/shares/shares.go @@ -70,7 +70,6 @@ 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: replication_config cmd.Flags().StringVar(&createReq.StorageRoot, "storage-root", createReq.StorageRoot, `Storage root URL for the share.`) cmd.Use = "create NAME" diff --git a/cmd/workspace/warehouses/warehouses.go b/cmd/workspace/warehouses/warehouses.go index 2958b509e0c..8995fadc49b 100644 --- a/cmd/workspace/warehouses/warehouses.go +++ b/cmd/workspace/warehouses/warehouses.go @@ -94,9 +94,11 @@ func newCreate() *cobra.Command { cmd.Flags().BoolVar(&createReq.EnablePhoton, "enable-photon", createReq.EnablePhoton, `Configures whether the warehouse should use Photon optimized clusters.`) cmd.Flags().BoolVar(&createReq.EnableServerlessCompute, "enable-serverless-compute", createReq.EnableServerlessCompute, `Configures whether the warehouse should use serverless compute.`) cmd.Flags().StringVar(&createReq.InstanceProfileArn, "instance-profile-arn", createReq.InstanceProfileArn, `Deprecated.`) + cmd.Flags().IntVar(&createReq.MaxDbu, "max-dbu", createReq.MaxDbu, `Maximum compute capacity of a real-time SQL warehouse, in DBU per hour.`) cmd.Flags().IntVar(&createReq.MaxNumClusters, "max-num-clusters", createReq.MaxNumClusters, `Maximum number of clusters that the autoscaler will create to handle concurrent queries.`) cmd.Flags().IntVar(&createReq.MinNumClusters, "min-num-clusters", createReq.MinNumClusters, `Minimum number of available clusters that will be maintained for this SQL warehouse.`) cmd.Flags().StringVar(&createReq.Name, "name", createReq.Name, `Logical name for the cluster.`) + cmd.Flags().Float64Var(&createReq.ReydenClusterSizeMultiplier, "reyden-cluster-size-multiplier", createReq.ReydenClusterSizeMultiplier, `Cluster size multiplier for Reyden warehouses.`) cmd.Flags().Var(&createReq.SpotInstancePolicy, "spot-instance-policy", `Configurations whether the endpoint should use spot instances. Supported values: [COST_OPTIMIZED, POLICY_UNSPECIFIED, RELIABILITY_OPTIMIZED]`) cmd.Flags().IntVar(&createReq.StatementTimeout, "statement-timeout", createReq.StatementTimeout, `Warehouse statement timeout in seconds.`) // TODO: complex arg: tags @@ -449,9 +451,11 @@ func newEdit() *cobra.Command { cmd.Flags().BoolVar(&editReq.EnablePhoton, "enable-photon", editReq.EnablePhoton, `Configures whether the warehouse should use Photon optimized clusters.`) cmd.Flags().BoolVar(&editReq.EnableServerlessCompute, "enable-serverless-compute", editReq.EnableServerlessCompute, `Configures whether the warehouse should use serverless compute.`) cmd.Flags().StringVar(&editReq.InstanceProfileArn, "instance-profile-arn", editReq.InstanceProfileArn, `Deprecated.`) + cmd.Flags().IntVar(&editReq.MaxDbu, "max-dbu", editReq.MaxDbu, `Maximum compute capacity of a real-time SQL warehouse, in DBU per hour.`) cmd.Flags().IntVar(&editReq.MaxNumClusters, "max-num-clusters", editReq.MaxNumClusters, `Maximum number of clusters that the autoscaler will create to handle concurrent queries.`) cmd.Flags().IntVar(&editReq.MinNumClusters, "min-num-clusters", editReq.MinNumClusters, `Minimum number of available clusters that will be maintained for this SQL warehouse.`) cmd.Flags().StringVar(&editReq.Name, "name", editReq.Name, `Logical name for the cluster.`) + cmd.Flags().Float64Var(&editReq.ReydenClusterSizeMultiplier, "reyden-cluster-size-multiplier", editReq.ReydenClusterSizeMultiplier, `Cluster size multiplier for Reyden warehouses.`) cmd.Flags().Var(&editReq.SpotInstancePolicy, "spot-instance-policy", `Configurations whether the endpoint should use spot instances. Supported values: [COST_OPTIMIZED, POLICY_UNSPECIFIED, RELIABILITY_OPTIMIZED]`) cmd.Flags().IntVar(&editReq.StatementTimeout, "statement-timeout", editReq.StatementTimeout, `Warehouse statement timeout in seconds.`) // TODO: complex arg: tags diff --git a/go.mod b/go.mod index c2b8ef27741..9c4a2775369 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.8 // MIT - github.com/databricks/databricks-sdk-go v0.189.0 // Apache-2.0 + github.com/databricks/databricks-sdk-go v0.190.0 // Apache-2.0 github.com/databricks/sdk-go/auth v0.1.0 // Apache-2.0 github.com/databricks/sdk-go/core v0.1.0 // Apache-2.0 github.com/databricks/sdk-go/files v0.1.0 // Apache-2.0 diff --git a/go.sum b/go.sum index bba164c3a69..d1de9e67b81 100644 --- a/go.sum +++ b/go.sum @@ -59,8 +59,8 @@ github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= github.com/danieljoos/wincred v1.2.3 h1:v7dZC2x32Ut3nEfRH+vhoZGvN72+dQ/snVXo/vMFLdQ= github.com/danieljoos/wincred v1.2.3/go.mod h1:6qqX0WNrS4RzPZ1tnroDzq9kY3fu1KwE7MRLQK4X0bs= -github.com/databricks/databricks-sdk-go v0.189.0 h1:ayn+g67dGFl/LTxsg3bbrHZAslX9CJrdttQQjK0gDg4= -github.com/databricks/databricks-sdk-go v0.189.0/go.mod h1:udBw6nxkaqa0fgPQ7ZW1kGFkltQncYx+qFJeVFmxtz8= +github.com/databricks/databricks-sdk-go v0.190.0 h1:kU2Bq0RGZInRYk35JbdX/w5CFDAUoNyikT5Ze1YdURg= +github.com/databricks/databricks-sdk-go v0.190.0/go.mod h1:udBw6nxkaqa0fgPQ7ZW1kGFkltQncYx+qFJeVFmxtz8= github.com/databricks/sdk-go/auth v0.1.0 h1:NZyXdvKE1fX72/4EQbiX3AhfUI63wyPJhFCdZp35L2A= github.com/databricks/sdk-go/auth v0.1.0/go.mod h1:eNJdFzBAfu1y32a3wPcTnjaUkjhS9VfyCNblKFPIPEo= github.com/databricks/sdk-go/core v0.1.0 h1:ZolzW/KVIJy1xXQ0zTsu/QYsEB4vQAEApbbq4D3RGHc= diff --git a/python/databricks/bundles/features/__init__.py b/python/databricks/bundles/features/__init__.py index 24e3f143d65..ecf951b1e12 100644 --- a/python/databricks/bundles/features/__init__.py +++ b/python/databricks/bundles/features/__init__.py @@ -99,6 +99,9 @@ "SawtoothWindowParam", "ScalarDataType", "ScalarDataTypeParam", + "SdpSource", + "SdpSourceDict", + "SdpSourceParam", "SlidingWindow", "SlidingWindowDict", "SlidingWindowParam", @@ -299,6 +302,11 @@ ScalarDataType, ScalarDataTypeParam, ) +from databricks.bundles.features._models.sdp_source import ( + SdpSource, + SdpSourceDict, + SdpSourceParam, +) from databricks.bundles.features._models.sliding_window import ( SlidingWindow, SlidingWindowDict, diff --git a/python/databricks/bundles/features/_models/data_source.py b/python/databricks/bundles/features/_models/data_source.py index b4a22c0276c..26c945d6d7a 100644 --- a/python/databricks/bundles/features/_models/data_source.py +++ b/python/databricks/bundles/features/_models/data_source.py @@ -22,6 +22,7 @@ RequestSource, RequestSourceParam, ) +from databricks.bundles.features._models.sdp_source import SdpSource, SdpSourceParam from databricks.bundles.features._models.source_lateness import ( SourceLateness, SourceLatenessParam, @@ -71,6 +72,13 @@ class DataSource: A request-time data source. """ + sdp_source: VariableOrOptional[SdpSource] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] A Spark Declarative Pipeline data source. + """ + stream_source: VariableOrOptional[StreamSource] = None """ A Stream data source. @@ -117,6 +125,13 @@ class DataSourceDict(TypedDict, total=False): A request-time data source. """ + sdp_source: VariableOrOptional[SdpSourceParam] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] A Spark Declarative Pipeline data source. + """ + stream_source: VariableOrOptional[StreamSourceParam] """ A Stream data source. diff --git a/python/databricks/bundles/features/_models/sdp_source.py b/python/databricks/bundles/features/_models/sdp_source.py new file mode 100644 index 00000000000..235df7bcc55 --- /dev/null +++ b/python/databricks/bundles/features/_models/sdp_source.py @@ -0,0 +1,142 @@ +# Code generated by pydabs-codegen. DO NOT EDIT. + +from dataclasses import dataclass, field +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 + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class SdpSource: + """ + :meta private: [EXPERIMENTAL] + + A Spark Declarative Pipeline (SDP) data source. + """ + + dataframe_schema: VariableOrOptional[str] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Schema of the resulting dataframe after transformations, in Spark StructType JSON format (from df.schema.json()). + Required if transformation_sql is specified. + Example: {"type":"struct","fields":[{"name":"col_a","type":"integer","nullable":true,"metadata":{}},{"name":"col_c","type":"integer","nullable":true,"metadata":{}}]} + """ + + filter_condition: VariableOrOptional[str] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Single WHERE clause to filter the pipeline's output table before applying transformations. Will be row-wise evaluated, so should only include conditionals and projections. + """ + + input_tables: VariableOrList[str] = field(default_factory=list) + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] The full three-part names of the tables the pipeline reads from. Required to materialize this + feature with a TableTrigger, which starts a run when these tables update. Each table must exist + when the feature is created. After the pipeline runs, Feature Store checks that it reads from + these tables, and the run fails if it doesn't. At most 100 tables. + """ + + output_table: VariableOrOptional[str] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] The full three-part (catalog, schema, table) name of the pipeline's output table to read from. + The table doesn't need to exist until the pipeline first runs. Required. + """ + + pipeline_id: VariableOrOptional[str] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] The ID of the Spark Declarative Pipeline that Feature Store runs to produce this source, before + each materialization or backfill. The pipeline must already exist when the feature is created, + and you need CAN_RUN, CAN_MANAGE, or owner permission on it. It doesn't need to have run yet. + Deleting the feature doesn't delete the pipeline. If the pipeline is deleted, this field reads + back empty. Required. + """ + + transformation_sql: VariableOrOptional[str] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] A single SQL SELECT expression applied after filter_condition. + Should contain all the columns needed (eg. "SELECT *, col_a + col_b AS col_c FROM x.y.z WHERE col_a > 0" would have `transformation_sql` "*, col_a + col_b AS col_c") + If transformation_sql is not provided, all columns of the pipeline's output table are present in the DataSource dataframe. + """ + + @classmethod + def from_dict(cls, value: "SdpSourceDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "SdpSourceDict": + return _transform_to_json_value(self) # type:ignore + + +class SdpSourceDict(TypedDict, total=False): + """""" + + dataframe_schema: VariableOrOptional[str] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Schema of the resulting dataframe after transformations, in Spark StructType JSON format (from df.schema.json()). + Required if transformation_sql is specified. + Example: {"type":"struct","fields":[{"name":"col_a","type":"integer","nullable":true,"metadata":{}},{"name":"col_c","type":"integer","nullable":true,"metadata":{}}]} + """ + + filter_condition: VariableOrOptional[str] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Single WHERE clause to filter the pipeline's output table before applying transformations. Will be row-wise evaluated, so should only include conditionals and projections. + """ + + input_tables: VariableOrList[str] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] The full three-part names of the tables the pipeline reads from. Required to materialize this + feature with a TableTrigger, which starts a run when these tables update. Each table must exist + when the feature is created. After the pipeline runs, Feature Store checks that it reads from + these tables, and the run fails if it doesn't. At most 100 tables. + """ + + output_table: VariableOrOptional[str] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] The full three-part (catalog, schema, table) name of the pipeline's output table to read from. + The table doesn't need to exist until the pipeline first runs. Required. + """ + + pipeline_id: VariableOrOptional[str] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] The ID of the Spark Declarative Pipeline that Feature Store runs to produce this source, before + each materialization or backfill. The pipeline must already exist when the feature is created, + and you need CAN_RUN, CAN_MANAGE, or owner permission on it. It doesn't need to have run yet. + Deleting the feature doesn't delete the pipeline. If the pipeline is deleted, this field reads + back empty. Required. + """ + + transformation_sql: VariableOrOptional[str] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] A single SQL SELECT expression applied after filter_condition. + Should contain all the columns needed (eg. "SELECT *, col_a + col_b AS col_c FROM x.y.z WHERE col_a > 0" would have `transformation_sql` "*, col_a + col_b AS col_c") + If transformation_sql is not provided, all columns of the pipeline's output table are present in the DataSource dataframe. + """ + + +SdpSourceParam = SdpSourceDict | SdpSource diff --git a/python/databricks/bundles/jobs/_models/subscription.py b/python/databricks/bundles/jobs/_models/subscription.py index 3c8d872f2f2..55de6336d7b 100644 --- a/python/databricks/bundles/jobs/_models/subscription.py +++ b/python/databricks/bundles/jobs/_models/subscription.py @@ -27,7 +27,7 @@ class Subscription: """ :meta private: [EXPERIMENTAL] - [Private Preview] Optional: The configuration for the files attached to the dashboard snapshot notification. It + [Beta] Optional: The configuration for the files attached to the dashboard snapshot notification. It controls the underlying data of dashboard widgets that is attached as data files and which pages are included in the attached PDF. If not specified, the notification is sent with only the default snapshot. @@ -64,7 +64,7 @@ class SubscriptionDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Optional: The configuration for the files attached to the dashboard snapshot notification. It + [Beta] Optional: The configuration for the files attached to the dashboard snapshot notification. It controls the underlying data of dashboard widgets that is attached as data files and which pages are included in the attached PDF. If not specified, the notification is sent with only the default snapshot. diff --git a/python/databricks/bundles/jobs/_models/subscription_attachment.py b/python/databricks/bundles/jobs/_models/subscription_attachment.py index 4b51ea04602..0bc23c65229 100644 --- a/python/databricks/bundles/jobs/_models/subscription_attachment.py +++ b/python/databricks/bundles/jobs/_models/subscription_attachment.py @@ -22,8 +22,6 @@ @dataclass(kw_only=True) class SubscriptionAttachment: """ - :meta private: [EXPERIMENTAL] - The configuration for the files attached to the dashboard snapshot notification sent to subscribers. `data_attachment` describes the underlying data of dashboard widgets attached as data files, and `page_attachment` describes which dashboard pages are included in the @@ -34,7 +32,7 @@ class SubscriptionAttachment: """ :meta private: [EXPERIMENTAL] - [Private Preview] Optional: The configuration for the underlying data of dashboard widgets attached as tabular + [Beta] Optional: The configuration for the underlying data of dashboard widgets attached as tabular data files. If not specified, no tabular data is attached. """ @@ -42,7 +40,7 @@ class SubscriptionAttachment: """ :meta private: [EXPERIMENTAL] - [Private Preview] Optional: The selection of dashboard pages included in the attached PDF. If not specified, + [Beta] Optional: The selection of dashboard pages included in the attached PDF. If not specified, only the first page is included. """ @@ -61,7 +59,7 @@ class SubscriptionAttachmentDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Optional: The configuration for the underlying data of dashboard widgets attached as tabular + [Beta] Optional: The configuration for the underlying data of dashboard widgets attached as tabular data files. If not specified, no tabular data is attached. """ @@ -69,7 +67,7 @@ class SubscriptionAttachmentDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Optional: The selection of dashboard pages included in the attached PDF. If not specified, + [Beta] Optional: The selection of dashboard pages included in the attached PDF. If not specified, only the first page is included. """ diff --git a/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment.py b/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment.py index b1cb52362b1..d998d07d7b6 100644 --- a/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment.py +++ b/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment.py @@ -26,8 +26,6 @@ @dataclass(kw_only=True) class SubscriptionAttachmentDataAttachment: """ - :meta private: [EXPERIMENTAL] - The configuration for the tabular data files attached to the dashboard snapshot. `widgets` lists the widgets whose data is exported and `file_format` is the output format; each referenced widget's data is exported as a separate file. @@ -37,14 +35,14 @@ class SubscriptionAttachmentDataAttachment: """ :meta private: [EXPERIMENTAL] - [Private Preview] The file format of the exported tabular data files. + [Beta] The file format of the exported tabular data files. """ include_applied_filters: VariableOrOptional[bool] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, the dashboard's applied filter values are included alongside the tabular data as + [Beta] When true, the dashboard's applied filter values are included alongside the tabular data as an additional attached file. """ @@ -54,7 +52,7 @@ class SubscriptionAttachmentDataAttachment: """ :meta private: [EXPERIMENTAL] - [Private Preview] The widgets whose underlying data is exported. At least one widget must be referenced. + [Beta] The widgets whose underlying data is exported. At least one widget must be referenced. """ @classmethod @@ -72,14 +70,14 @@ class SubscriptionAttachmentDataAttachmentDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The file format of the exported tabular data files. + [Beta] The file format of the exported tabular data files. """ include_applied_filters: VariableOrOptional[bool] """ :meta private: [EXPERIMENTAL] - [Private Preview] When true, the dashboard's applied filter values are included alongside the tabular data as + [Beta] When true, the dashboard's applied filter values are included alongside the tabular data as an additional attached file. """ @@ -87,7 +85,7 @@ class SubscriptionAttachmentDataAttachmentDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The widgets whose underlying data is exported. At least one widget must be referenced. + [Beta] The widgets whose underlying data is exported. At least one widget must be referenced. """ diff --git a/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment_file_format.py b/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment_file_format.py index 659ff905aab..9c9e7a2c632 100644 --- a/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment_file_format.py +++ b/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment_file_format.py @@ -6,8 +6,6 @@ class SubscriptionAttachmentDataAttachmentFileFormat(Enum): """ - :meta private: [EXPERIMENTAL] - The output format of an exported tabular data file. Must be set to a value other than `FILE_FORMAT_UNSPECIFIED`. """ diff --git a/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment_widget.py b/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment_widget.py index eeb0c29213c..be802c0e07e 100644 --- a/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment_widget.py +++ b/python/databricks/bundles/jobs/_models/subscription_attachment_data_attachment_widget.py @@ -14,8 +14,6 @@ @dataclass(kw_only=True) class SubscriptionAttachmentDataAttachmentWidget: """ - :meta private: [EXPERIMENTAL] - Identifies a dashboard widget whose data to attach. `page_id` and `widget_id` are the URL identifiers from the dashboard's serialized definition returned by the Get dashboard API (`serialized_dashboard`), and together they uniquely identify the widget. @@ -25,7 +23,7 @@ class SubscriptionAttachmentDataAttachmentWidget: """ :meta private: [EXPERIMENTAL] - [Private Preview] The URL identifier of the page containing the widget. This is the value of the `name` + [Beta] The URL identifier of the page containing the widget. This is the value of the `name` field of the corresponding entry under `pages` in the serialized dashboard definition. Format: alphanumeric, hyphen, and underscore characters allowed, max length 63. """ @@ -34,7 +32,7 @@ class SubscriptionAttachmentDataAttachmentWidget: """ :meta private: [EXPERIMENTAL] - [Private Preview] The URL identifier of the widget. This is the value of the `name` field of the + [Beta] The URL identifier of the widget. This is the value of the `name` field of the corresponding widget under that page's `layout` in the serialized dashboard definition. Format: alphanumeric, hyphen, and underscore characters allowed, max length 63. """ @@ -56,7 +54,7 @@ class SubscriptionAttachmentDataAttachmentWidgetDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The URL identifier of the page containing the widget. This is the value of the `name` + [Beta] The URL identifier of the page containing the widget. This is the value of the `name` field of the corresponding entry under `pages` in the serialized dashboard definition. Format: alphanumeric, hyphen, and underscore characters allowed, max length 63. """ @@ -65,7 +63,7 @@ class SubscriptionAttachmentDataAttachmentWidgetDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The URL identifier of the widget. This is the value of the `name` field of the + [Beta] The URL identifier of the widget. This is the value of the `name` field of the corresponding widget under that page's `layout` in the serialized dashboard definition. Format: alphanumeric, hyphen, and underscore characters allowed, max length 63. """ diff --git a/python/databricks/bundles/jobs/_models/subscription_attachment_page_attachment.py b/python/databricks/bundles/jobs/_models/subscription_attachment_page_attachment.py index 1d80e46e067..087c872fad4 100644 --- a/python/databricks/bundles/jobs/_models/subscription_attachment_page_attachment.py +++ b/python/databricks/bundles/jobs/_models/subscription_attachment_page_attachment.py @@ -18,8 +18,6 @@ @dataclass(kw_only=True) class SubscriptionAttachmentPageAttachment: """ - :meta private: [EXPERIMENTAL] - The selection of dashboard pages included in the attached PDF. `page_selection` chooses between all pages, the first page only, or an explicit subset listed in `page_ids`. """ @@ -28,7 +26,7 @@ class SubscriptionAttachmentPageAttachment: """ :meta private: [EXPERIMENTAL] - [Private Preview] The identifiers of the pages to include in the PDF. Only specified when `page_selection` is + [Beta] The identifiers of the pages to include in the PDF. Only specified when `page_selection` is `PAGE_SELECTION_SUBSET`. Each value is the identifier of a page in the dashboard's serialized definition returned by the Get dashboard API (`serialized_dashboard`): the value of the `name` field of an entry under `pages`. @@ -41,7 +39,7 @@ class SubscriptionAttachmentPageAttachment: """ :meta private: [EXPERIMENTAL] - [Private Preview] How the attached pages are selected. When set to `PAGE_SELECTION_SUBSET`, the pages to + [Beta] How the attached pages are selected. When set to `PAGE_SELECTION_SUBSET`, the pages to include are listed in `page_ids`. """ @@ -60,7 +58,7 @@ class SubscriptionAttachmentPageAttachmentDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] The identifiers of the pages to include in the PDF. Only specified when `page_selection` is + [Beta] The identifiers of the pages to include in the PDF. Only specified when `page_selection` is `PAGE_SELECTION_SUBSET`. Each value is the identifier of a page in the dashboard's serialized definition returned by the Get dashboard API (`serialized_dashboard`): the value of the `name` field of an entry under `pages`. @@ -73,7 +71,7 @@ class SubscriptionAttachmentPageAttachmentDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] How the attached pages are selected. When set to `PAGE_SELECTION_SUBSET`, the pages to + [Beta] How the attached pages are selected. When set to `PAGE_SELECTION_SUBSET`, the pages to include are listed in `page_ids`. """ diff --git a/python/databricks/bundles/jobs/_models/subscription_attachment_page_attachment_page_selection.py b/python/databricks/bundles/jobs/_models/subscription_attachment_page_attachment_page_selection.py index 0d21a769bb4..b24c75c4695 100644 --- a/python/databricks/bundles/jobs/_models/subscription_attachment_page_attachment_page_selection.py +++ b/python/databricks/bundles/jobs/_models/subscription_attachment_page_attachment_page_selection.py @@ -6,8 +6,6 @@ class SubscriptionAttachmentPageAttachmentPageSelection(Enum): """ - :meta private: [EXPERIMENTAL] - Determines which dashboard pages are attached to the notification. """ diff --git a/python/databricks/bundles/model_provider_services/_models/model_provider_service_config.py b/python/databricks/bundles/model_provider_services/_models/model_provider_service_config.py index 57ff32a4bc9..d2be6cc6d90 100644 --- a/python/databricks/bundles/model_provider_services/_models/model_provider_service_config.py +++ b/python/databricks/bundles/model_provider_services/_models/model_provider_service_config.py @@ -107,8 +107,7 @@ class ModelProviderServiceConfig: custom: VariableOrOptional[ModelProviderServiceConfigCustomProviderConfig] = None """ - Custom OpenAI-compatible provider configuration with bearer-token - authentication. + Custom OpenAI-compatible provider configuration. """ forward_headers: VariableOrOptional[bool] = None @@ -245,8 +244,7 @@ class ModelProviderServiceConfigDict(TypedDict, total=False): custom: VariableOrOptional[ModelProviderServiceConfigCustomProviderConfigParam] """ - Custom OpenAI-compatible provider configuration with bearer-token - authentication. + Custom OpenAI-compatible provider configuration. """ forward_headers: VariableOrOptional[bool] diff --git a/python/databricks/bundles/model_provider_services/_models/model_provider_service_config_custom_provider_config.py b/python/databricks/bundles/model_provider_services/_models/model_provider_service_config_custom_provider_config.py index e10c0335481..25dcaca2838 100644 --- a/python/databricks/bundles/model_provider_services/_models/model_provider_service_config_custom_provider_config.py +++ b/python/databricks/bundles/model_provider_services/_models/model_provider_service_config_custom_provider_config.py @@ -18,8 +18,7 @@ @dataclass(kw_only=True) class ModelProviderServiceConfigCustomProviderConfig: """ - Custom OpenAI-compatible provider configuration with bearer-token - authentication. + Custom OpenAI-compatible provider configuration. """ direct: VariableOrOptional[ModelProviderServiceConfigCustomProviderDirectConfig] = ( diff --git a/python/databricks/bundles/sql_warehouses/_models/sql_warehouse.py b/python/databricks/bundles/sql_warehouses/_models/sql_warehouse.py index 3fe07aeadbe..f3033f894ab 100644 --- a/python/databricks/bundles/sql_warehouses/_models/sql_warehouse.py +++ b/python/databricks/bundles/sql_warehouses/_models/sql_warehouse.py @@ -103,6 +103,15 @@ class SqlWarehouse(Resource): Settings that control the deployment lifecycle of the resource, such as preventing it from being destroyed. """ + max_dbu: VariableOrOptional[int] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Maximum compute capacity of a real-time SQL warehouse, in DBU per hour. + Must be a multiple of 3 between 3 and 960. The effective maximum cannot be + lower than the warehouse's minimum capacity. + """ + max_num_clusters: VariableOrOptional[int] = None """ Maximum number of clusters that the autoscaler will create to handle @@ -144,6 +153,21 @@ class SqlWarehouse(Resource): The permissions to apply to this resource. """ + reyden_cluster_size_multiplier: VariableOrOptional[float] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Cluster size multiplier for Reyden warehouses. Scales the effective compute + capacity relative to the nominal virtual cluster size. Only meaningful when + the warehouse is of Reyden type. + + Accepted range: 1.0 to the workspace-configured maximum (decimals + allowed). The default maximum is 100.0. + - Values below 1.0 are normalized to 1.0. + - Values above the configured maximum are capped at that maximum. + - When absent, the warehouse is treated as having a multiplier of 1.0. + """ + spot_instance_policy: VariableOrOptional[SpotInstancePolicy] = None """ Configurations whether the endpoint should use spot instances. @@ -246,6 +270,15 @@ class SqlWarehouseDict(TypedDict, total=False): Settings that control the deployment lifecycle of the resource, such as preventing it from being destroyed. """ + max_dbu: VariableOrOptional[int] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Maximum compute capacity of a real-time SQL warehouse, in DBU per hour. + Must be a multiple of 3 between 3 and 960. The effective maximum cannot be + lower than the warehouse's minimum capacity. + """ + max_num_clusters: VariableOrOptional[int] """ Maximum number of clusters that the autoscaler will create to handle @@ -287,6 +320,21 @@ class SqlWarehouseDict(TypedDict, total=False): The permissions to apply to this resource. """ + reyden_cluster_size_multiplier: VariableOrOptional[float] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Cluster size multiplier for Reyden warehouses. Scales the effective compute + capacity relative to the nominal virtual cluster size. Only meaningful when + the warehouse is of Reyden type. + + Accepted range: 1.0 to the workspace-configured maximum (decimals + allowed). The default maximum is 100.0. + - Values below 1.0 are normalized to 1.0. + - Values above the configured maximum are capped at that maximum. + - When absent, the warehouse is treated as having a multiplier of 1.0. + """ + spot_instance_policy: VariableOrOptional[SpotInstancePolicyParam] """ Configurations whether the endpoint should use spot instances.