diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index bd00da3e923..de04f5a91fc 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -155fbabb3529267ce58c1a37573911f59d90b06c \ No newline at end of file +1b38cea490a6191085d77b20b186e8192940a1fc \ No newline at end of file diff --git a/.codegen/cli.json b/.codegen/cli.json index c3e114bb11e..7d2a9a66dff 100644 --- a/.codegen/cli.json +++ b/.codegen/cli.json @@ -315,8 +315,46 @@ } }, "agentkit.GetManagedMemoryStoreRequest": {}, + "agentkit.GetMemoryStorePermissionRequest": {}, "agentkit.GetSessionRequest": {}, + "agentkit.GetSessionStorePermissionRequest": {}, "agentkit.GetSessionStoreRequest": {}, + "agentkit.GrantMemoryStorePermissionRequest": { + "description": "Request to grant a READ or WRITE permission on a memory store to a principal.\nOnly the store owner or a workspace admin may grant permissions.", + "fields": { + "permission": { + "description": "Permission level to grant.", + "ref": "agentkit.PermissionLevel", + "launch_stage": "PRIVATE_PREVIEW" + }, + "principal": { + "description": "Principal to grant the permission to.", + "ref": "agentkit.StorePrincipal", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "agentkit.GrantMemoryStorePermissionResponse": { + "description": "Response from granting a permission on a memory store." + }, + "agentkit.GrantSessionStorePermissionRequest": { + "description": "Request to grant a READ or WRITE permission on a session store to a principal.\nOnly the store owner or a workspace admin may grant permissions.", + "fields": { + "permission": { + "description": "Permission level to grant.", + "ref": "agentkit.PermissionLevel", + "launch_stage": "PRIVATE_PREVIEW" + }, + "principal": { + "description": "Principal to grant the permission to.", + "ref": "agentkit.StorePrincipal", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "agentkit.GrantSessionStorePermissionResponse": { + "description": "Response from granting a permission on a session store." + }, "agentkit.ListManagedMemoryEntriesRequest": { "fields": { "actor_id": { @@ -417,6 +455,43 @@ } } }, + "agentkit.ListMemoryStorePermissionsRequest": { + "fields": { + "page_size": { + "description": "Maximum number of permissions to return. Defaults to 100; maximum is 1000.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "page_token": { + "description": "Continuation token from a previous response.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "agentkit.ListMemoryStorePermissionsResponse": { + "description": "A page of explicit memory store permissions.", + "fields": { + "memory_store_permissions": { + "description": "Explicit READ or WRITE grants. Implicit owner/admin access and inherited grants are excluded.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "next_page_token": { + "description": "Token for the next page, omitted when all permissions have been returned.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, "agentkit.ListSessionItemsRequest": { "fields": { "order_by": { @@ -455,6 +530,43 @@ } } }, + "agentkit.ListSessionStorePermissionsRequest": { + "fields": { + "page_size": { + "description": "Maximum number of permissions to return. Defaults to 100; maximum is 1000.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "page_token": { + "description": "Continuation token from a previous response.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "agentkit.ListSessionStorePermissionsResponse": { + "description": "A page of explicit session store permissions.", + "fields": { + "next_page_token": { + "description": "Token for the next page, omitted when all permissions have been returned.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "session_store_permissions": { + "description": "Explicit READ or WRITE grants. Implicit owner/admin access and inherited grants are excluded.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, "agentkit.ListSessionStoresRequest": { "fields": { "page_size": { @@ -563,10 +675,10 @@ ] }, "name": { - "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.", + "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.\nRequired for updates; assigned by the service on creation.", "launch_stage": "PUBLIC_BETA", "behaviors": [ - "OUTPUT_ONLY" + "OPTIONAL" ] }, "path": { @@ -716,6 +828,38 @@ } } }, + "agentkit.MemoryStorePermission": { + "description": "A principal's permission on a memory store.", + "fields": { + "permission": { + "description": "The permission level. WRITE includes READ; PERMISSION_LEVEL_UNSPECIFIED means neither is available.", + "ref": "agentkit.PermissionLevel", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "principal": { + "description": "The principal whose permission is reported.", + "ref": "agentkit.StorePrincipal", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "agentkit.PermissionLevel": { + "description": "Permission level granted on a store. WRITE is a superset of READ.", + "enum": [ + "READ", + "WRITE" + ], + "enum_launch_stages": { + "READ": "PRIVATE_PREVIEW", + "WRITE": "PRIVATE_PREVIEW" + } + }, "agentkit.PopSessionItemRequest": { "description": "Request to pop an item from a session." }, @@ -729,6 +873,43 @@ } } }, + "agentkit.PrincipalType": { + "description": "The kind of Databricks principal a store permission is granted to.", + "enum": [ + "USER", + "SERVICE_PRINCIPAL" + ], + "enum_launch_stages": { + "SERVICE_PRINCIPAL": "PRIVATE_PREVIEW", + "USER": "PRIVATE_PREVIEW" + } + }, + "agentkit.RevokeMemoryStorePermissionRequest": { + "description": "Request to revoke all explicit access to a memory store. Only the owner or a workspace admin may revoke permissions.", + "fields": { + "principal": { + "description": "Principal whose READ and WRITE grants will be removed.", + "ref": "agentkit.StorePrincipal", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "agentkit.RevokeMemoryStorePermissionResponse": { + "description": "Response from revoking a memory store permission." + }, + "agentkit.RevokeSessionStorePermissionRequest": { + "description": "Request to revoke all explicit access to a session store. Only the owner or a workspace admin may revoke permissions.", + "fields": { + "principal": { + "description": "Principal whose READ and WRITE grants will be removed.", + "ref": "agentkit.StorePrincipal", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "agentkit.RevokeSessionStorePermissionResponse": { + "description": "Response from revoking a session store permission." + }, "agentkit.SearchManagedMemoryEntriesRequest": { "description": "Request to search memory entries by text query for one actor.\nSearch returns a relevance-ranked top-N result set and does not currently paginate.", "fields": { @@ -952,6 +1133,27 @@ } } }, + "agentkit.SessionStorePermission": { + "description": "A principal's permission on a session store.", + "fields": { + "permission": { + "description": "The permission level. WRITE includes READ; PERMISSION_LEVEL_UNSPECIFIED means neither is available.", + "ref": "agentkit.PermissionLevel", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "principal": { + "description": "The principal whose permission is reported.", + "ref": "agentkit.StorePrincipal", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, "agentkit.StorageBackend": { "description": "Service-managed storage backing a memory store.", "fields": { @@ -981,6 +1183,22 @@ "STORAGE_BACKEND_TYPE_LAKEBASE": "PUBLIC_BETA" } }, + "agentkit.StorePrincipal": { + "description": "A principal a store permission is granted to. `name` is the principal's Lakebase\nidentifier: a user's email or a service principal's application (client) id.", + "fields": { + "name": { + "launch_stage": "PRIVATE_PREVIEW" + }, + "principal_type": { + "description": "The kind of principal. Required unless the deprecated type alias is supplied.", + "ref": "agentkit.PrincipalType", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, "agentkit.UpdateManagedMemoryEntryRequest": { "fields": { "managed_memory_entry": { @@ -1856,7 +2074,10 @@ "OFFLINE", "RED_STATE", "YELLOW_STATE", - "DELETED" + "DELETED", + "STOPPING", + "STOPPED", + "STARTING" ], "enum_launch_stages": { "DELETED": "PUBLIC_PREVIEW", @@ -1864,6 +2085,9 @@ "ONLINE": "PUBLIC_PREVIEW", "PROVISIONING": "PUBLIC_PREVIEW", "RED_STATE": "PUBLIC_PREVIEW", + "STARTING": "PRIVATE_PREVIEW", + "STOPPED": "PRIVATE_PREVIEW", + "STOPPING": "PRIVATE_PREVIEW", "YELLOW_STATE": "PUBLIC_PREVIEW" } }, @@ -2733,7 +2957,7 @@ }, "space": { "description": "Name of the space this app belongs to.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "telemetry_export_destinations": { "launch_stage": "GA" @@ -3783,7 +4007,7 @@ "fields": { "space": { "ref": "apps.Space", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -3829,17 +4053,17 @@ "description": "Databricks Error that is returned by all Databricks APIs.", "fields": { "details": { - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "error_code": { "ref": "apps.ErrorCode", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "message": { - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "stack_trace": { - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -3949,87 +4173,87 @@ "PROVIDER_SHARE_NOT_ACCESSIBLE" ], "enum_launch_stages": { - "ABORTED": "PRIVATE_PREVIEW", - "ALREADY_EXISTS": "PRIVATE_PREVIEW", - "BAD_REQUEST": "PRIVATE_PREVIEW", - "CANCELLED": "PRIVATE_PREVIEW", - "CATALOG_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "CATALOG_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "CATALOG_NOT_EMPTY": "PRIVATE_PREVIEW", - "COULD_NOT_ACQUIRE_LOCK": "PRIVATE_PREVIEW", - "CUSTOMER_UNAUTHORIZED": "PRIVATE_PREVIEW", - "DAC_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "DAC_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "DATA_LOSS": "PRIVATE_PREVIEW", - "DEADLINE_EXCEEDED": "PRIVATE_PREVIEW", - "DEPLOYMENT_TIMEOUT": "PRIVATE_PREVIEW", - "DIRECTORY_NOT_EMPTY": "PRIVATE_PREVIEW", - "DIRECTORY_PROTECTED": "PRIVATE_PREVIEW", - "DRY_RUN_FAILED": "PRIVATE_PREVIEW", - "ENDPOINT_NOT_FOUND": "PRIVATE_PREVIEW", - "EXTERNAL_LOCATION_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "EXTERNAL_LOCATION_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "FEATURE_DISABLED": "PRIVATE_PREVIEW", - "GIT_CONFLICT": "PRIVATE_PREVIEW", - "GIT_REMOTE_ERROR": "PRIVATE_PREVIEW", - "GIT_SENSITIVE_TOKEN_DETECTED": "PRIVATE_PREVIEW", - "GIT_UNKNOWN_REF": "PRIVATE_PREVIEW", - "GIT_URL_NOT_ON_ALLOW_LIST": "PRIVATE_PREVIEW", - "INSECURE_PARTNER_RESPONSE": "PRIVATE_PREVIEW", - "INTERNAL_ERROR": "PRIVATE_PREVIEW", - "INVALID_PARAMETER_VALUE": "PRIVATE_PREVIEW", - "INVALID_STATE": "PRIVATE_PREVIEW", - "INVALID_STATE_TRANSITION": "PRIVATE_PREVIEW", - "IO_ERROR": "PRIVATE_PREVIEW", - "IPYNB_FILE_IN_REPO": "PRIVATE_PREVIEW", - "MALFORMED_PARTNER_RESPONSE": "PRIVATE_PREVIEW", - "MALFORMED_REQUEST": "PRIVATE_PREVIEW", - "MANAGED_RESOURCE_GROUP_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "MAX_BLOCK_SIZE_EXCEEDED": "PRIVATE_PREVIEW", - "MAX_CHILD_NODE_SIZE_EXCEEDED": "PRIVATE_PREVIEW", - "MAX_LIST_SIZE_EXCEEDED": "PRIVATE_PREVIEW", - "MAX_NOTEBOOK_SIZE_EXCEEDED": "PRIVATE_PREVIEW", - "MAX_READ_SIZE_EXCEEDED": "PRIVATE_PREVIEW", - "METASTORE_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "METASTORE_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "METASTORE_NOT_EMPTY": "PRIVATE_PREVIEW", - "NOT_FOUND": "PRIVATE_PREVIEW", - "NOT_IMPLEMENTED": "PRIVATE_PREVIEW", - "PARTIAL_DELETE": "PRIVATE_PREVIEW", - "PERMISSION_DENIED": "PRIVATE_PREVIEW", - "PERMISSION_NOT_PROPAGATED": "PRIVATE_PREVIEW", - "PRINCIPAL_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "PROJECTS_OPERATION_TIMEOUT": "PRIVATE_PREVIEW", - "PROVIDER_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "PROVIDER_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "PROVIDER_SHARE_NOT_ACCESSIBLE": "PRIVATE_PREVIEW", - "QUOTA_EXCEEDED": "PRIVATE_PREVIEW", - "RECIPIENT_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "RECIPIENT_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "REQUEST_LIMIT_EXCEEDED": "PRIVATE_PREVIEW", - "RESOURCE_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "RESOURCE_CONFLICT": "PRIVATE_PREVIEW", - "RESOURCE_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "RESOURCE_EXHAUSTED": "PRIVATE_PREVIEW", - "RESOURCE_LIMIT_EXCEEDED": "PRIVATE_PREVIEW", - "SCHEMA_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "SCHEMA_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "SCHEMA_NOT_EMPTY": "PRIVATE_PREVIEW", - "SEARCH_QUERY_TOO_LONG": "PRIVATE_PREVIEW", - "SEARCH_QUERY_TOO_SHORT": "PRIVATE_PREVIEW", - "SERVICE_UNDER_MAINTENANCE": "PRIVATE_PREVIEW", - "SHARE_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "SHARE_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "STORAGE_CREDENTIAL_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "STORAGE_CREDENTIAL_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "TABLE_ALREADY_EXISTS": "PRIVATE_PREVIEW", - "TABLE_DOES_NOT_EXIST": "PRIVATE_PREVIEW", - "TEMPORARILY_UNAVAILABLE": "PRIVATE_PREVIEW", - "UNAUTHENTICATED": "PRIVATE_PREVIEW", - "UNAVAILABLE": "PRIVATE_PREVIEW", - "UNKNOWN": "PRIVATE_PREVIEW", - "UNPARSEABLE_HTTP_ERROR": "PRIVATE_PREVIEW", - "WORKSPACE_TEMPORARILY_UNAVAILABLE": "PRIVATE_PREVIEW" + "ABORTED": "PUBLIC_BETA", + "ALREADY_EXISTS": "PUBLIC_BETA", + "BAD_REQUEST": "PUBLIC_BETA", + "CANCELLED": "PUBLIC_BETA", + "CATALOG_ALREADY_EXISTS": "PUBLIC_BETA", + "CATALOG_DOES_NOT_EXIST": "PUBLIC_BETA", + "CATALOG_NOT_EMPTY": "PUBLIC_BETA", + "COULD_NOT_ACQUIRE_LOCK": "PUBLIC_BETA", + "CUSTOMER_UNAUTHORIZED": "PUBLIC_BETA", + "DAC_ALREADY_EXISTS": "PUBLIC_BETA", + "DAC_DOES_NOT_EXIST": "PUBLIC_BETA", + "DATA_LOSS": "PUBLIC_BETA", + "DEADLINE_EXCEEDED": "PUBLIC_BETA", + "DEPLOYMENT_TIMEOUT": "PUBLIC_BETA", + "DIRECTORY_NOT_EMPTY": "PUBLIC_BETA", + "DIRECTORY_PROTECTED": "PUBLIC_BETA", + "DRY_RUN_FAILED": "PUBLIC_BETA", + "ENDPOINT_NOT_FOUND": "PUBLIC_BETA", + "EXTERNAL_LOCATION_ALREADY_EXISTS": "PUBLIC_BETA", + "EXTERNAL_LOCATION_DOES_NOT_EXIST": "PUBLIC_BETA", + "FEATURE_DISABLED": "PUBLIC_BETA", + "GIT_CONFLICT": "PUBLIC_BETA", + "GIT_REMOTE_ERROR": "PUBLIC_BETA", + "GIT_SENSITIVE_TOKEN_DETECTED": "PUBLIC_BETA", + "GIT_UNKNOWN_REF": "PUBLIC_BETA", + "GIT_URL_NOT_ON_ALLOW_LIST": "PUBLIC_BETA", + "INSECURE_PARTNER_RESPONSE": "PUBLIC_BETA", + "INTERNAL_ERROR": "PUBLIC_BETA", + "INVALID_PARAMETER_VALUE": "PUBLIC_BETA", + "INVALID_STATE": "PUBLIC_BETA", + "INVALID_STATE_TRANSITION": "PUBLIC_BETA", + "IO_ERROR": "PUBLIC_BETA", + "IPYNB_FILE_IN_REPO": "PUBLIC_BETA", + "MALFORMED_PARTNER_RESPONSE": "PUBLIC_BETA", + "MALFORMED_REQUEST": "PUBLIC_BETA", + "MANAGED_RESOURCE_GROUP_DOES_NOT_EXIST": "PUBLIC_BETA", + "MAX_BLOCK_SIZE_EXCEEDED": "PUBLIC_BETA", + "MAX_CHILD_NODE_SIZE_EXCEEDED": "PUBLIC_BETA", + "MAX_LIST_SIZE_EXCEEDED": "PUBLIC_BETA", + "MAX_NOTEBOOK_SIZE_EXCEEDED": "PUBLIC_BETA", + "MAX_READ_SIZE_EXCEEDED": "PUBLIC_BETA", + "METASTORE_ALREADY_EXISTS": "PUBLIC_BETA", + "METASTORE_DOES_NOT_EXIST": "PUBLIC_BETA", + "METASTORE_NOT_EMPTY": "PUBLIC_BETA", + "NOT_FOUND": "PUBLIC_BETA", + "NOT_IMPLEMENTED": "PUBLIC_BETA", + "PARTIAL_DELETE": "PUBLIC_BETA", + "PERMISSION_DENIED": "PUBLIC_BETA", + "PERMISSION_NOT_PROPAGATED": "PUBLIC_BETA", + "PRINCIPAL_DOES_NOT_EXIST": "PUBLIC_BETA", + "PROJECTS_OPERATION_TIMEOUT": "PUBLIC_BETA", + "PROVIDER_ALREADY_EXISTS": "PUBLIC_BETA", + "PROVIDER_DOES_NOT_EXIST": "PUBLIC_BETA", + "PROVIDER_SHARE_NOT_ACCESSIBLE": "PUBLIC_BETA", + "QUOTA_EXCEEDED": "PUBLIC_BETA", + "RECIPIENT_ALREADY_EXISTS": "PUBLIC_BETA", + "RECIPIENT_DOES_NOT_EXIST": "PUBLIC_BETA", + "REQUEST_LIMIT_EXCEEDED": "PUBLIC_BETA", + "RESOURCE_ALREADY_EXISTS": "PUBLIC_BETA", + "RESOURCE_CONFLICT": "PUBLIC_BETA", + "RESOURCE_DOES_NOT_EXIST": "PUBLIC_BETA", + "RESOURCE_EXHAUSTED": "PUBLIC_BETA", + "RESOURCE_LIMIT_EXCEEDED": "PUBLIC_BETA", + "SCHEMA_ALREADY_EXISTS": "PUBLIC_BETA", + "SCHEMA_DOES_NOT_EXIST": "PUBLIC_BETA", + "SCHEMA_NOT_EMPTY": "PUBLIC_BETA", + "SEARCH_QUERY_TOO_LONG": "PUBLIC_BETA", + "SEARCH_QUERY_TOO_SHORT": "PUBLIC_BETA", + "SERVICE_UNDER_MAINTENANCE": "PUBLIC_BETA", + "SHARE_ALREADY_EXISTS": "PUBLIC_BETA", + "SHARE_DOES_NOT_EXIST": "PUBLIC_BETA", + "STORAGE_CREDENTIAL_ALREADY_EXISTS": "PUBLIC_BETA", + "STORAGE_CREDENTIAL_DOES_NOT_EXIST": "PUBLIC_BETA", + "TABLE_ALREADY_EXISTS": "PUBLIC_BETA", + "TABLE_DOES_NOT_EXIST": "PUBLIC_BETA", + "TEMPORARILY_UNAVAILABLE": "PUBLIC_BETA", + "UNAUTHENTICATED": "PUBLIC_BETA", + "UNAVAILABLE": "PUBLIC_BETA", + "UNKNOWN": "PUBLIC_BETA", + "UNPARSEABLE_HTTP_ERROR": "PUBLIC_BETA", + "WORKSPACE_TEMPORARILY_UNAVAILABLE": "PUBLIC_BETA" } }, "apps.GetAppDeploymentRequest": {}, @@ -4192,14 +4416,14 @@ "fields": { "page_size": { "description": "Upper bound for items returned.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "page_token": { "description": "Pagination token to go to the next page of app spaces. Requests first page if absent.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -4210,10 +4434,10 @@ "fields": { "next_page_token": { "description": "Pagination token to request the next page of app spaces.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "spaces": { - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -4222,24 +4446,24 @@ "fields": { "done": { "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "error": { "description": "The error result of the operation in case of failure or cancellation.", "ref": "apps.DatabricksServiceExceptionWithDetailsProto", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "metadata": { "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "name": { "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should be a resource name ending with `operations/{unique_id}`.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "response": { "description": "The normal, successful response of the operation.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -4254,74 +4478,74 @@ }, "create_time": { "description": "The creation time of the app space. Formatted timestamp in ISO 6801.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "creator": { "description": "The email of the user that created the app space.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "description": { "description": "The description of the app space.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "effective_usage_policy_id": { "description": "The effective usage policy ID used by apps in the space.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "effective_user_api_scopes": { "description": "The effective api scopes granted to the user access token.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "id": { "description": "The unique identifier of the app space.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "name": { "description": "The name of the app space. The name must contain only lowercase alphanumeric characters and hyphens.\nIt must be unique within the workspace.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "resources": { "description": "Resources for the app space. Resources configured at the space level are available to all apps in the space.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "service_principal_client_id": { "description": "The service principal client ID for the app space.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "service_principal_id": { "description": "The service principal ID for the app space.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "service_principal_name": { "description": "The service principal name for the app space.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] @@ -4329,35 +4553,35 @@ "status": { "description": "The status of the app space.", "ref": "apps.SpaceStatus", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "update_time": { "description": "The update time of the app space. Formatted timestamp in ISO 6801.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "updater": { "description": "The email of the user that last updated the app space.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "usage_policy_id": { "description": "The usage policy ID for managing cost at the space level.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] }, "user_api_scopes": { "description": "OAuth scopes for apps in the space.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -4368,7 +4592,7 @@ "fields": { "message": { "description": "Message providing context about the current state.", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] @@ -4376,7 +4600,7 @@ "state": { "description": "The state of the app space.", "ref": "apps.SpaceStatusSpaceState", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] @@ -4393,35 +4617,35 @@ "SPACE_UPDATING" ], "enum_launch_stages": { - "SPACE_ACTIVE": "PRIVATE_PREVIEW", - "SPACE_CREATING": "PRIVATE_PREVIEW", - "SPACE_DELETED": "PRIVATE_PREVIEW", - "SPACE_DELETING": "PRIVATE_PREVIEW", - "SPACE_ERROR": "PRIVATE_PREVIEW", - "SPACE_UPDATING": "PRIVATE_PREVIEW" + "SPACE_ACTIVE": "PUBLIC_BETA", + "SPACE_CREATING": "PUBLIC_BETA", + "SPACE_DELETED": "PUBLIC_BETA", + "SPACE_DELETING": "PUBLIC_BETA", + "SPACE_ERROR": "PUBLIC_BETA", + "SPACE_UPDATING": "PUBLIC_BETA" } }, "apps.SpaceUpdate": { "description": "Tracks app space update information.", "fields": { "description": { - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "resources": { - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "status": { "ref": "apps.SpaceUpdateStatus", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "usage_policy_id": { - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "user_api_scopes": { - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -4433,24 +4657,24 @@ "FAILED" ], "enum_launch_stages": { - "FAILED": "PRIVATE_PREVIEW", - "IN_PROGRESS": "PRIVATE_PREVIEW", - "NOT_UPDATED": "PRIVATE_PREVIEW", - "SUCCEEDED": "PRIVATE_PREVIEW" + "FAILED": "PUBLIC_BETA", + "IN_PROGRESS": "PUBLIC_BETA", + "NOT_UPDATED": "PUBLIC_BETA", + "SUCCEEDED": "PUBLIC_BETA" } }, "apps.SpaceUpdateStatus": { "description": "Status of an app space update operation", "fields": { "message": { - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] }, "state": { "ref": "apps.SpaceUpdateState", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OUTPUT_ONLY" ] @@ -4514,11 +4738,11 @@ "fields": { "space": { "ref": "apps.Space", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" }, "update_mask": { "description": "The field mask must be a single string, with multiple fields separated by commas (no spaces). The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields (e.g., `author.given_name`). Specification of elements in sequence or map fields is not allowed, as only the entire collection field can be specified. Field names must exactly match the resource field names.\n\nA field mask of `*` indicates full replacement. It’s recommended to always explicitly list the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if the API changes in the future.", - "launch_stage": "PRIVATE_PREVIEW" + "launch_stage": "PUBLIC_BETA" } } }, @@ -4526,16 +4750,16 @@ "fields": { "action_configuration_id": { "description": "Databricks action configuration ID.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "action_type": { "description": "The type of the action.", "ref": "billing.ActionConfigurationType", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "target": { "description": "Target for the action. For example, an email address.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -4547,18 +4771,18 @@ ], "enum_launch_stages": { "BLOCK_USAGE": "PUBLIC_BETA", - "EMAIL_NOTIFICATION": "PUBLIC_PREVIEW" + "EMAIL_NOTIFICATION": "GA" } }, "billing.AlertConfiguration": { "fields": { "action_configurations": { "description": "Configured actions for this alert. These define what happens when an alert enters a triggered state.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "alert_configuration_id": { "description": "Databricks alert configuration ID.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "principal_overrides": { "description": "Per-principal threshold overrides for this alert. Only applies to per-user alerts (`scope_type` = `ALERT_CONFIGURATION_SCOPE_TYPE_PER_USER`); ignored for shared alerts.", @@ -4566,12 +4790,12 @@ }, "quantity_threshold": { "description": "The threshold for the budget alert to determine if it is in a triggered state. The number is evaluated based on `quantity_type`.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "quantity_type": { "description": "The way to calculate cost for this budget alert. This is what `quantity_threshold` is measured in.", "ref": "billing.AlertConfigurationQuantityType", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "scope_type": { "description": "How the alert threshold is evaluated. Determines whether spend is tracked in aggregate or per individual user.", @@ -4581,12 +4805,12 @@ "time_period": { "description": "The time window of usage data for the budget.", "ref": "billing.AlertConfigurationTimePeriod", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "trigger_type": { "description": "The evaluation method to determine when this budget alert is in a triggered state.", "ref": "billing.AlertConfigurationTriggerType", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -4595,7 +4819,7 @@ "LIST_PRICE_DOLLARS_USD" ], "enum_launch_stages": { - "LIST_PRICE_DOLLARS_USD": "PUBLIC_PREVIEW" + "LIST_PRICE_DOLLARS_USD": "GA" } }, "billing.AlertConfigurationScopeType": { @@ -4614,7 +4838,7 @@ "MONTH" ], "enum_launch_stages": { - "MONTH": "PUBLIC_PREVIEW" + "MONTH": "GA" } }, "billing.AlertConfigurationTriggerType": { @@ -4622,35 +4846,66 @@ "CUMULATIVE_SPENDING_EXCEEDED" ], "enum_launch_stages": { - "CUMULATIVE_SPENDING_EXCEEDED": "PUBLIC_PREVIEW" + "CUMULATIVE_SPENDING_EXCEEDED": "GA" + } + }, + "billing.AlertSpendStatus": { + "description": "The calling user's spend against a single blocking threshold. Values may be omitted if live\nspend or threshold data is temporarily unavailable.", + "fields": { + "percent_consumed": { + "description": "Percentage of the threshold consumed, as a decimal string rounded down to one decimal place (for\nexample, \"68.4\" means 68.4%). May exceed 100 when spend is over the threshold. Returns \"0.0\" if\nthere's no spend, and is omitted if the threshold is $0. For shared thresholds, this is the\nonly value returned; the absolute `spend` and `threshold` dollar amounts are withheld.", + "launch_stage": "PUBLIC_BETA" + }, + "scope_type": { + "description": "Whether the threshold is evaluated per individual user\n(`ALERT_CONFIGURATION_SCOPE_TYPE_PER_USER`) or on the shared spend across all users\n(`ALERT_CONFIGURATION_SCOPE_TYPE_SHARED`).", + "ref": "billing.AlertConfigurationScopeType", + "launch_stage": "PUBLIC_BETA" + }, + "spend": { + "description": "The calling user's live spend against this threshold, in USD at list price. Returns \"0\" if the\ncaller has no usage. Omitted for shared thresholds, where only `percent_consumed` is returned.", + "launch_stage": "PUBLIC_BETA" + }, + "threshold": { + "description": "The calling user's effective threshold, in USD at list price. The effective threshold is the\nactual threshold amount that applies to the user, after adjusting for any user or group\noverrides. Omitted for shared thresholds, where only `percent_consumed` is returned.", + "launch_stage": "PUBLIC_BETA" + }, + "time_period": { + "description": "The time window the threshold applies to, for example `MONTH`.", + "ref": "billing.AlertConfigurationTimePeriod", + "launch_stage": "PUBLIC_BETA" + } } }, "billing.BudgetConfiguration": { "fields": { "account_id": { "description": "Databricks account ID.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "alert_configurations": { "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" + "launch_stage": "GA" }, "budget_configuration_id": { "description": "Databricks budget configuration ID.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "create_time": { "description": "Creation time of this budget configuration.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "display_name": { "description": "Human-readable name of budget configuration. Max Length: 128", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "filter": { "description": "Configured filters for this budget. These are applied to your account's usage to limit the scope of what is considered for this budget.\nLeave empty to include all usage for this account. All provided filters must be matched for usage to be included.", "ref": "billing.BudgetConfigurationFilter", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" + }, + "include_external_spend": { + "description": "Whether this budget tracks external pass-through spend (third-party costs billed through a Databricks product) in addition to internal Databricks spend.\nOnly applicable to Unity Gateway budgets, i.e. when `resource_type` is `BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY`. This field is immutable after create.", + "launch_stage": "PUBLIC_BETA" }, "resource_type": { "description": "The resource scope for this budget. Determines whether the budget tracks all resources or a specific resource.", @@ -4659,7 +4914,7 @@ }, "update_time": { "description": "Update time of this budget configuration.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -4667,12 +4922,12 @@ "fields": { "tags": { "description": "A list of tag keys and values that will limit the budget to usage that includes those specific custom tags.\nTags are case-sensitive and should be entered exactly as they appear in your usage data.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "workspace_id": { "description": "If provided, usage must match with the provided Databricks workspace IDs.", "ref": "billing.BudgetConfigurationFilterWorkspaceIdClause", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -4680,10 +4935,10 @@ "fields": { "operator": { "ref": "billing.BudgetConfigurationFilterOperator", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "values": { - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -4692,17 +4947,17 @@ "IN" ], "enum_launch_stages": { - "IN": "PUBLIC_PREVIEW" + "IN": "GA" } }, "billing.BudgetConfigurationFilterTagClause": { "fields": { "key": { - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "value": { "ref": "billing.BudgetConfigurationFilterClause", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -4710,10 +4965,10 @@ "fields": { "operator": { "ref": "billing.BudgetConfigurationFilterOperator", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "values": { - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -4761,6 +5016,19 @@ "BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY": "PUBLIC_BETA" } }, + "billing.BudgetSpendStatus": { + "description": "The calling user's live spend against the blocking thresholds of a single budget.", + "fields": { + "alert_spend_statuses": { + "description": "The calling user's spend against each blocking threshold on this budget, one entry per scope\ntype and time period. A blocking threshold is a threshold that, once reached, blocks further\nrequests through Unity Gateway.", + "launch_stage": "PUBLIC_BETA" + }, + "name": { + "description": "The resource name of this budget spend status, of the form\n`accounts/{account_id}/budget-spend-statuses/{budget_id}`.", + "launch_stage": "PUBLIC_BETA" + } + } + }, "billing.CreateBillingUsageDashboardRequest": { "fields": { "dashboard_type": { @@ -4791,20 +5059,24 @@ "fields": { "account_id": { "description": "Databricks account ID.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "alert_configurations": { "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" + "launch_stage": "GA" }, "display_name": { "description": "Human-readable name of budget configuration. Max Length: 128", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "filter": { "description": "Configured filters for this budget. These are applied to your account's usage to limit the scope of what is considered for this budget.\nLeave empty to include all usage for this account. All provided filters must be matched for usage to be included.", "ref": "billing.BudgetConfigurationFilter", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" + }, + "include_external_spend": { + "description": "Whether this budget tracks external pass-through spend (third-party costs billed through a Databricks product) in addition to internal Databricks spend.\nOnly applicable to Unity Gateway budgets, i.e. when `resource_type` is `BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY`. This field is immutable after create.", + "launch_stage": "PUBLIC_BETA" }, "resource_type": { "description": "The resource scope for this budget. Determines whether the budget tracks all resources or a specific resource.", @@ -4818,11 +5090,11 @@ "action_type": { "description": "The type of the action.", "ref": "billing.ActionConfigurationType", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "target": { "description": "Target for the action. For example, an email address.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -4830,7 +5102,7 @@ "fields": { "action_configurations": { "description": "Configured actions for this alert. These define what happens when an alert enters a triggered state.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "principal_overrides": { "description": "Per-principal threshold overrides for this alert. Only applies to per-user alerts (`scope_type` = `ALERT_CONFIGURATION_SCOPE_TYPE_PER_USER`); ignored for shared alerts.", @@ -4838,12 +5110,12 @@ }, "quantity_threshold": { "description": "The threshold for the budget alert to determine if it is in a triggered state. The number is evaluated based on `quantity_type`.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "quantity_type": { "description": "The way to calculate cost for this budget alert. This is what `quantity_threshold` is measured in.", "ref": "billing.AlertConfigurationQuantityType", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "scope_type": { "description": "How the alert threshold is evaluated. Determines whether spend is tracked in aggregate or per individual user.", @@ -4853,12 +5125,12 @@ "time_period": { "description": "The time window of usage data for the budget.", "ref": "billing.AlertConfigurationTimePeriod", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "trigger_type": { "description": "The evaluation method to determine when this budget alert is in a triggered state.", "ref": "billing.AlertConfigurationTriggerType", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -4867,7 +5139,7 @@ "budget": { "description": "Properties of the new budget configuration.", "ref": "billing.CreateBudgetConfigurationBudget", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -4876,7 +5148,7 @@ "budget": { "description": "The created budget configuration.", "ref": "billing.BudgetConfiguration", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -5045,11 +5317,12 @@ "fields": { "budget": { "ref": "billing.BudgetConfiguration", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, "billing.GetBudgetPolicyRequest": {}, + "billing.GetBudgetSpendStatusRequest": {}, "billing.GetLogDeliveryConfigurationResponse": { "fields": { "log_delivery_configuration": { @@ -5067,18 +5340,18 @@ "fields": { "page_token": { "description": "A page token received from a previous get all budget configurations call. This token can be used to retrieve the subsequent page.\nRequests first page if absent.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, "billing.ListBudgetConfigurationsResponse": { "fields": { "budgets": { - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "next_page_token": { "description": "Token which can be sent as `page_token` to retrieve the next page of results. If this field is omitted, there are no subsequent budgets.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -5132,6 +5405,38 @@ } } }, + "billing.ListBudgetSpendStatusesRequest": { + "fields": { + "filter": { + "description": "A filter expression that narrows the returned budgets by workspace. Only `workspace_id` is\nsupported, in lower case with numeric workspace IDs, for example `workspace_id = 123` or\n`workspace_id IN (123, 456)`. Matches budgets that apply to any of the listed workspaces,\nincluding budgets that apply to all workspaces. Any other expression, such as an empty `IN ()`\nlist, fails with INVALID_PARAMETER_VALUE. If empty, returns every budget in the account that has\na blocking threshold.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "page_size": { + "description": "The maximum number of spend statuses to return per page. If unspecified or 0, at most 100 are\nreturned. The maximum value is 100; values above 100 are coerced to 100. Negative values fail\nwith INVALID_PARAMETER_VALUE. The server may return fewer results than requested, including\nzero, even when more pages remain; page until `next_page_token` is absent.", + "launch_stage": "PUBLIC_BETA" + }, + "page_token": { + "description": "A page token from a previous `ListBudgetSpendStatuses` response, used to fetch the next page.\nRequests the first page if absent. All other request parameters except `page_size` must match\nthe request that returned the token; otherwise the request fails with INVALID_PARAMETER_VALUE.", + "launch_stage": "PUBLIC_BETA" + } + } + }, + "billing.ListBudgetSpendStatusesResponse": { + "description": "Response for ListBudgetSpendStatuses.", + "fields": { + "budget_spend_statuses": { + "description": "The calling user's spend status, one entry per returned budget.", + "launch_stage": "PUBLIC_BETA" + }, + "next_page_token": { + "description": "Token to pass as `page_token` to retrieve the next page. Absent when there are no more results.\nA page can contain fewer results than `page_size`, or none, while this token is still set, so\nkeep paging until it's absent.", + "launch_stage": "PUBLIC_BETA" + } + } + }, "billing.ListLogDeliveryRequest": { "fields": { "credentials_id": { @@ -5317,24 +5622,28 @@ "fields": { "account_id": { "description": "Databricks account ID.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "alert_configurations": { "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" + "launch_stage": "GA" }, "budget_configuration_id": { "description": "Databricks budget configuration ID.", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "display_name": { "description": "Human-readable name of budget configuration. Max Length: 128", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" }, "filter": { "description": "Configured filters for this budget. These are applied to your account's usage to limit the scope of what is considered for this budget.\nLeave empty to include all usage for this account. All provided filters must be matched for usage to be included.", "ref": "billing.BudgetConfigurationFilter", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" + }, + "include_external_spend": { + "description": "Whether this budget tracks external pass-through spend (third-party costs billed through a Databricks product) in addition to internal Databricks spend.\nOnly applicable to Unity Gateway budgets, i.e. when `resource_type` is `BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY`. This field is immutable after create.", + "launch_stage": "PUBLIC_BETA" }, "resource_type": { "description": "The resource scope for this budget. Determines whether the budget tracks all resources or a specific resource.", @@ -5348,7 +5657,7 @@ "budget": { "description": "The updated budget. This will overwrite the budget specified by the budget ID.", "ref": "billing.UpdateBudgetConfigurationBudget", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -5357,7 +5666,7 @@ "budget": { "description": "The updated budget.", "ref": "billing.BudgetConfiguration", - "launch_stage": "PUBLIC_PREVIEW" + "launch_stage": "GA" } } }, @@ -5979,7 +6288,8 @@ "OPERATION_ACTION_TYPE_DELETE", "OPERATION_ACTION_TYPE_BIND", "OPERATION_ACTION_TYPE_BIND_AND_UPDATE", - "OPERATION_ACTION_TYPE_INITIAL_REGISTER" + "OPERATION_ACTION_TYPE_INITIAL_REGISTER", + "OPERATION_ACTION_TYPE_UNBIND" ], "enum_launch_stages": { "OPERATION_ACTION_TYPE_BIND": "PRIVATE_PREVIEW", @@ -5989,6 +6299,7 @@ "OPERATION_ACTION_TYPE_INITIAL_REGISTER": "PRIVATE_PREVIEW", "OPERATION_ACTION_TYPE_RECREATE": "PRIVATE_PREVIEW", "OPERATION_ACTION_TYPE_RESIZE": "PRIVATE_PREVIEW", + "OPERATION_ACTION_TYPE_UNBIND": "PRIVATE_PREVIEW", "OPERATION_ACTION_TYPE_UPDATE": "PRIVATE_PREVIEW", "OPERATION_ACTION_TYPE_UPDATE_WITH_ID": "PRIVATE_PREVIEW" } @@ -19511,7 +19822,7 @@ ] }, "project_environment": { - "description": "File path of pyproject.toml file that defines the project-scoped environment.", + "description": "Path to the `pyproject.toml` file that defines the project environment.\nThis field cannot be combined with `environment_version`, `base_environment`, dependency fields,\nor any other environment-source fields. Set the environment version and dependencies in `pyproject.toml` instead.\nFor more information, see the serverless dependencies documentation.", "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" @@ -25562,6 +25873,14 @@ "behaviors": [ "OPTIONAL" ] + }, + "notification_settings": { + "description": "Who to alert when anomaly detection finds unhealthy tables in this schema. Applicable to\n`schema` monitors only. This is the same schema alert you manage from **Manage alerts** in the\nData Quality Monitoring UI, so a change made in either place shows in both.\n\nSet the recipients in `on_unhealthy_table`; `on_failure` is not supported here. Only\n`destination_ids` and `destination_user_ids` are supported.\n\nOn update, an update mask of `*`, `anomaly_detection_config`, or\n`anomaly_detection_config.notification_settings` replaces the alert's recipients with the ones\nin the request; omitting the field, or leaving both recipient lists empty, removes the alert.\nOther masks leave the alert unchanged.", + "ref": "dataquality.NotificationSettings", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, @@ -25736,6 +26055,7 @@ "description": "Whether to skip creating a default dashboard summarizing data quality metrics.", "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ + "INPUT_ONLY", "OPTIONAL" ] }, @@ -25774,6 +26094,7 @@ "description": "Optional argument to specify the warehouse for dashboard creation. If not specified, the first running\nwarehouse will be used.", "launch_stage": "PUBLIC_PREVIEW", "behaviors": [ + "INPUT_ONLY", "OPTIONAL" ] } @@ -25969,6 +26290,20 @@ "dataquality.NotificationDestination": { "description": "Destination of the data quality monitoring notification.", "fields": { + "destination_ids": { + "description": "The notification-destination IDs (Slack / Teams / webhook) to send the notification to. The\ndestinations must already exist in the workspace; a workspace admin creates them. A maximum of\n25 destination IDs is supported.\nOnly supported on schema monitors, via `anomaly_detection_config`; rejected on table monitors.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, + "destination_user_ids": { + "description": "The IDs of the workspace users to notify by email. A maximum of 25 user IDs is supported.\nOnly supported on schema monitors, via `anomaly_detection_config`; rejected on table monitors.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, "email_addresses": { "description": "The list of email addresses to send the notification to. A maximum of 5 email addresses is supported.", "launch_stage": "PUBLIC_PREVIEW", @@ -25988,6 +26323,14 @@ "behaviors": [ "OPTIONAL" ] + }, + "on_unhealthy_table": { + "description": "Recipients to notify when anomaly detection finds unhealthy tables in the schema. Each\nrecipient gets one notification per important unhealthy table. Only supported on schema\nmonitors, via `anomaly_detection_config`.", + "ref": "dataquality.NotificationDestination", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] } } }, @@ -29460,7 +29803,7 @@ "iamv2.CreateIdentityVisibilityFilterRequest": { "fields": { "identity_visibility_filter": { - "description": "Required. The filter to create. Set `principal_type` to `GROUP` and specify exactly one of\n`exact` or `prefix`. The server assigns the resource name; any supplied `name` is ignored.", + "description": "Required. The filter to create. Set `principal_type` to `GROUP` and specify exactly one of\n`exact`, `prefix`, or `regex`. The server assigns the resource name; any supplied `name` is ignored.", "ref": "iamv2.IdentityVisibilityFilter", "launch_stage": "GA" }, @@ -29938,6 +30281,14 @@ "behaviors": [ "IMMUTABLE" ] + }, + "regex": { + "description": "Full, case-sensitive RE2 match on the identity's display name.", + "ref": "iamv2.RegexMatchRule", + "launch_stage": "GA", + "behaviors": [ + "OPTIONAL" + ] } } }, @@ -30376,6 +30727,15 @@ "USER": "GA" } }, + "iamv2.RegexMatchRule": { + "description": "A rule that matches an identity whose complete display name matches an RE2 regular expression.\nMatching is case-sensitive. Use .* explicitly when substring matching is desired.", + "fields": { + "display_name_regex": { + "description": "The RE2 regular expression matched against the complete display name.", + "launch_stage": "GA" + } + } + }, "iamv2.ResolveGroupProxyRequest": { "description": "Request message for resolving a group with the given external ID from the customer's IdP into Databricks.\nWill resolve metadata such as the group's name and inherited parent groups.", "fields": { @@ -35157,6 +35517,11 @@ "ref": "jobs.SqlDashboardOutput", "launch_stage": "GA" }, + "file_output": { + "description": "The output of a SQL file task, if available.", + "ref": "jobs.SqlTaskSqlFileOutput", + "launch_stage": "GA" + }, "query_output": { "description": "The output of a SQL query task, if available.", "ref": "jobs.SqlQueryOutput", @@ -35178,7 +35543,8 @@ "launch_stage": "GA" }, "output_link": { - "description": "The link to find the output results.", + "description": "Deprecated. The link to find the output results, which are only accessible from the UI.", + "deprecated": true, "launch_stage": "GA" }, "query_text": { @@ -35203,6 +35569,46 @@ } } }, + "jobs.SqlStatementQueryResult": { + "fields": { + "columns": { + "description": "The metadata for each column in the result set.", + "launch_stage": "GA" + }, + "rows": { + "description": "The rows returned by the query.", + "launch_stage": "GA" + }, + "truncated": { + "description": "Whether the result set was truncated.", + "launch_stage": "GA" + } + } + }, + "jobs.SqlStatementQueryResultColumn": { + "fields": { + "name": { + "description": "The name of the column.", + "launch_stage": "GA" + } + } + }, + "jobs.SqlStatementQueryResultRow": { + "fields": { + "values": { + "description": "The values in the row, ordered to match the columns.", + "launch_stage": "GA" + } + } + }, + "jobs.SqlStatementQueryResultRowRowValue": { + "fields": { + "string_value": { + "description": "The value rendered as a string.", + "launch_stage": "GA" + } + } + }, "jobs.SqlTask": { "fields": { "alert": { @@ -35292,6 +35698,27 @@ } } }, + "jobs.SqlTaskSqlFileOutput": { + "fields": { + "query_result": { + "description": "The result of the executed SQL statement, if available.", + "ref": "jobs.SqlStatementQueryResult", + "launch_stage": "GA" + }, + "query_text": { + "description": "The text of the SQL query.", + "launch_stage": "GA" + }, + "sql_statements": { + "description": "Information about SQL statements executed in the run.", + "launch_stage": "GA" + }, + "warehouse_id": { + "description": "The canonical identifier of the SQL warehouse.", + "launch_stage": "GA" + } + } + }, "jobs.SqlTaskSubscription": { "fields": { "destination_id": { @@ -38968,8 +39395,15 @@ "description": "The input column from which the approximate count of distinct values is computed.", "launch_stage": "GA" }, + "relative_error": { + "description": "The error the user accepts, as a fraction of the count, between 0.02 (by default) and 0.3.\nThis is one standard error of the estimate, the same meaning as Spark's relativeSD: 0.02 means\nthe result is within ±2% of the true count about 68% of the time (one standard deviation covers\n68% of the region). Feature Store picks the sketch size that gives this relative error. If\nneither relative_error nor relative_sd is set, 0.02 is default chosen at feature creation.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "relative_sd": { - "description": "The maximum relative standard deviation allowed (default defined by Spark).", + "description": "The maximum relative standard deviation allowed (default defined by Spark).\nDeprecated: use relative_error. When relative_error is set, reads return the same value here\nfor clients that don't have relative_error, and a request may only send that value.", "launch_stage": "GA", "behaviors": [ "OPTIONAL" @@ -38981,7 +39415,7 @@ "description": "Computes the approximate percentile of values.", "fields": { "accuracy": { - "description": "The accuracy parameter (higher is more accurate but slower).", + "description": "The accuracy parameter (higher is more accurate but slower).\nDeprecated: use relative_error. When relative_error is set, reads return ceil(1 /\nrelative_error) here for clients that don't have relative_error, and a request may only send\nthat value.", "launch_stage": "GA", "behaviors": [ "OPTIONAL" @@ -38994,6 +39428,13 @@ "percentile": { "description": "The percentile value to compute (between 0 and 1).", "launch_stage": "GA" + }, + "relative_error": { + "description": "The error the user accepts, as a fraction of rank, between 0.01 (by default) and 0.3. The\nresult is within this rank error with 99% confidence: at 0.01, the value returned for p95 is\nbetween the true p94 and p96 at least 99% of the time. Feature Store picks the sketch size that\ngives this error.\nIf neither relative_error nor accuracy is set, 0.01 is default chosen at feature creation.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] } } }, @@ -39473,6 +39914,22 @@ } } }, + "ml.CreateMaterializationSetRequest": { + "fields": { + "materialization_set": { + "description": "The materialization set to create. Supply materialization_set_id to choose the identifier;\nleave it unset to have one assigned.", + "ref": "ml.MaterializationSet", + "launch_stage": "PRIVATE_PREVIEW" + }, + "request_id": { + "description": "Idempotency token for the request. A second request carrying a token that has already been\nused returns the operation the first one created, whatever state it reached, and creates no\nsecond set. The token is not checked against the rest of the request, so reusing one for a\ndifferent set returns the original operation rather than an error. Omit it and each request\ncreates its own set.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, "ml.CreateMaterializedFeatureRequest": { "fields": { "materialized_feature": { @@ -39866,6 +40323,24 @@ "ml.DeleteLoggedModelResponse": {}, "ml.DeleteLoggedModelTagRequest": {}, "ml.DeleteLoggedModelTagResponse": {}, + "ml.DeleteMaterializationSetRequest": { + "fields": { + "allow_missing": { + "description": "Return success instead of NOT_FOUND when the set does not exist, so a repeated destroy is\nidempotent.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "request_id": { + "description": "Idempotency token for the request. A second request carrying a token that has already been\nused returns the operation the first one created, whatever state it reached, and deletes\nnothing further. The token is not checked against the rest of the request. Omit it and each\nrequest deletes independently.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, "ml.DeleteMaterializedFeatureRequest": {}, "ml.DeleteModelRequest": { "fields": { @@ -40959,6 +41434,7 @@ } } }, + "ml.GetMaterializationSetRequest": {}, "ml.GetMaterializedFeatureRequest": {}, "ml.GetMetricHistoryResponse": { "fields": { @@ -42288,6 +42764,122 @@ } } }, + "ml.MaterializationSet": { + "description": "A group of materialized features created and managed as a single unit.", + "fields": { + "materialization_set_id": { + "description": "Server-assigned unique identifier for the materialization set.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "IMMUTABLE" + ] + }, + "materialized_features": { + "description": "The materialized features in this set. Order is not significant.\nUpdating the set with a materialized feature removed from this set will cause it to be deleted.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "ml.MaterializationSetDeletionProgress": { + "description": "What a partly failed DeleteMaterializationSet got through, attached to the error so a caller can\ntell which materialized feature members are gone and which ones still need attention. The set\nitself is left in place whenever any member failed, so a retry can still find the members.", + "fields": { + "deleted_materialized_feature_ids": { + "description": "Members that are no longer materialized, including any that were already gone.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "failed_materialized_features": { + "description": "Members that could not be deleted, one entry each.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "ml.MaterializationSetOperationMetadata": { + "description": "Progress of a materialization set operation. Shared by create, update and delete, because\ndatabricks.longrunning freezes a method's metadata type once it ships.", + "fields": { + "create_time": { + "description": "Time at which the operation was requested.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "deletion_progress": { + "description": "Set by a DeleteMaterializationSet operation.", + "ref": "ml.MaterializationSetDeletionProgress", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "feature_full_names": { + "description": "Full names of the features the set materializes, one entry per feature.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "materialization_set_id": { + "description": "ID of the materialization set the operation targets.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "state": { + "description": "Current state of the operation.", + "ref": "ml.MaterializationSetOperationMetadataState", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, + "update_progress": { + "description": "Set by an UpdateMaterializationSet operation.", + "ref": "ml.MaterializationSetUpdateProgress", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + } + } + }, + "ml.MaterializationSetOperationMetadataState": { + "description": "Lifecycle state of a materialization set operation.", + "enum": [ + "PENDING", + "RUNNING", + "SUCCEEDED", + "FAILED", + "CANCELLED" + ], + "enum_launch_stages": { + "CANCELLED": "PRIVATE_PREVIEW", + "FAILED": "PRIVATE_PREVIEW", + "PENDING": "PRIVATE_PREVIEW", + "RUNNING": "PRIVATE_PREVIEW", + "SUCCEEDED": "PRIVATE_PREVIEW" + } + }, + "ml.MaterializationSetUpdateProgress": { + "description": "What a partly failed UpdateMaterializationSet got through, attached to the error so a caller can\ntell which materialized feature members already changed and which ones did not and why it failed.", + "fields": { + "deleted_materialized_feature_ids": { + "description": "Materialized feature members that were deleted from the materialization set.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "failed_materialized_features": { + "description": "Materialized feature members that could not be updated, one entry each.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "updated_materialized_feature_ids": { + "description": "Materialized feature members whose mutable state was updated.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "ml.MaterializationSuccessNotification": { "description": "Recipients to notify when a materialization run succeeds.", "fields": { @@ -42364,6 +42956,13 @@ "OUTPUT_ONLY" ] }, + "materialization_set_id": { + "description": "The materialization set this materialized feature was created for, through DABs or\ndirect-engine creation. Unset for a materialized feature that was not created as part of a set.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "materialized_feature_id": { "description": "Server-assigned unique identifier for the materialized feature.", "launch_stage": "GA", @@ -42445,6 +43044,23 @@ } } }, + "ml.MaterializedFeatureChangeFailure": { + "description": "Why one materialization set member could not be changed.", + "fields": { + "error_code": { + "description": "Databricks error code name of the failure, for example \"RESOURCE_CONFLICT\".", + "launch_stage": "PRIVATE_PREVIEW" + }, + "materialized_feature_id": { + "description": "The member that could not be changed.", + "launch_stage": "PRIVATE_PREVIEW" + }, + "message": { + "description": "The failure's message.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "ml.MaterializedFeaturePipelineScheduleState": { "enum": [ "SNAPSHOT", @@ -43081,6 +43697,13 @@ "OUTPUT_ONLY" ] }, + "delete_rows": { + "description": "Whether this purge deletes matching rows instead of setting feature values to null.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OUTPUT_ONLY" + ] + }, "entities_table": { "description": "Fully qualified name of the Unity Catalog Delta table containing the entity keys to purge.", "launch_stage": "PRIVATE_PREVIEW", @@ -43146,12 +43769,19 @@ "OPTIONAL" ] }, + "delete_rows": { + "description": "If false feature values are set to null on purge but rows are not deleted. If true then the full rows containing entities are deleted. Defaults to false.\nWhen true, the request must include every feature which shares the same `table_name` property in their MaterializedFeature.\nFeatures from multiple tables may be included if all features materialized in each table are included.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, "entities_table": { "description": "Fully qualified name of the Unity Catalog Delta table containing the entity keys to purge.\nThe table may contain a subset of each feature's entity-key columns. A partial key match\ndeletes all feature rows matching the provided key values. Non-key columns are rejected;\nnull key values are allowed.", "launch_stage": "PRIVATE_PREVIEW" }, "features": { - "description": "Fully qualified names of the features to purge. At least one nonempty feature name is required.\nA request may contain at most 10000 features; submit additional features in separate requests.\nDuplicate features are rejected.", + "description": "Fully qualified names of the features to purge. At least one nonempty feature name is required.\nA request may contain at most 500 features; submit additional features in separate requests.\nDuplicate features are rejected.", "launch_stage": "PRIVATE_PREVIEW" }, "request_id": { @@ -43890,7 +44520,7 @@ ] }, "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.", + "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. Feature Store doesn't confirm that the pipeline reads from these\ntables. At most 100 tables.", "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OPTIONAL" @@ -44680,7 +45310,42 @@ } }, "ml.TableTrigger": { - "description": "A trigger that fires when the upstream source table changes." + "description": "A trigger that fires when the feature's source table changes: a DeltaTableSource's table, or an\nSdpSource's input_tables.", + "fields": { + "condition": { + "description": "Which source table updates trigger a materialization run. If not set, any source table update\ntriggers a run.", + "ref": "ml.TableTriggerTableTriggerCondition", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "min_time_between_triggers": { + "description": "The minimum time between two triggered runs, so a frequently updated source table does not\ntrigger runs too often. If not set, a feature with a sliding window uses half its\nslide_duration and a feature with a tumbling window uses half its window_duration, clamped to\nbetween 5 minutes and 1 hour. Other features have no minimum.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "wait_after_last_change": { + "description": "How long the source table must go without updates before a run starts, so a series of\nupdates settles before the run. If not set, a run starts as soon as the source table updates.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, + "ml.TableTriggerTableTriggerCondition": { + "description": "Which source table updates trigger a materialization run.", + "enum": [ + "TABLE_TRIGGER_CONDITION_ANY_UPDATED", + "TABLE_TRIGGER_CONDITION_ALL_UPDATED" + ], + "enum_launch_stages": { + "TABLE_TRIGGER_CONDITION_ALL_UPDATED": "PRIVATE_PREVIEW", + "TABLE_TRIGGER_CONDITION_ANY_UPDATED": "PRIVATE_PREVIEW" + } }, "ml.TestRegistryWebhookRequest": { "description": "Details required to test a registry webhook.", @@ -44967,6 +45632,26 @@ } } }, + "ml.UpdateMaterializationSetRequest": { + "fields": { + "materialization_set": { + "description": "The desired state of the updated materialization set. materialization_set_id selects the set.", + "ref": "ml.MaterializationSet", + "launch_stage": "PRIVATE_PREVIEW" + }, + "request_id": { + "description": "Idempotency token for the request. A second request carrying a token that has already been\nused returns the operation the first one created, whatever state it reached, and changes\nnothing further. The token is not checked against the rest of the request. Omit it and each\nrequest updates independently.", + "launch_stage": "PRIVATE_PREVIEW", + "behaviors": [ + "OPTIONAL" + ] + }, + "update_mask": { + "description": "The fields to update. Only 'materialized_features' is supported.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, "ml.UpdateMaterializedFeatureRequest": { "fields": { "materialized_feature": { @@ -46826,6 +47511,10 @@ "ref": "pipelines.MetaMarketingOptions", "launch_stage": "PUBLIC_BETA" }, + "onedrive_options": { + "ref": "pipelines.OneDriveOptions", + "launch_stage": "PRIVATE_PREVIEW" + }, "outlook_options": { "ref": "pipelines.OutlookOptions", "launch_stage": "PRIVATE_PREVIEW" @@ -47803,6 +48492,7 @@ "ZENDESK", "SMARTSHEET", "RABBITMQ", + "ONEDRIVE", "FOREIGN_CATALOG" ], "enum_launch_stages": { @@ -47817,6 +48507,7 @@ "META_MARKETING": "PUBLIC_BETA", "MYSQL": "PUBLIC_PREVIEW", "NETSUITE": "PUBLIC_PREVIEW", + "ONEDRIVE": "PRIVATE_PREVIEW", "ORACLE": "PUBLIC_PREVIEW", "POSTGRESQL": "PUBLIC_PREVIEW", "RABBITMQ": "PUBLIC_BETA", @@ -48200,6 +48891,35 @@ } } }, + "pipelines.OneDriveOptions": { + "fields": { + "entity_type": { + "description": "(Optional) The type of OneDrive entity to ingest.\nIf not specified, defaults to FILE.", + "ref": "pipelines.OneDriveOptionsOneDriveEntityType", + "launch_stage": "PRIVATE_PREVIEW" + }, + "file_ingestion_options": { + "description": "(Optional) File ingestion options for processing files.", + "ref": "pipelines.FileIngestionOptions", + "launch_stage": "PRIVATE_PREVIEW" + }, + "url": { + "description": "Required. The OneDrive URL.", + "launch_stage": "PRIVATE_PREVIEW" + } + } + }, + "pipelines.OneDriveOptionsOneDriveEntityType": { + "description": "The type of OneDrive entity to ingest.", + "enum": [ + "FILE", + "FILE_METADATA" + ], + "enum_launch_stages": { + "FILE": "PRIVATE_PREVIEW", + "FILE_METADATA": "PRIVATE_PREVIEW" + } + }, "pipelines.OperationTimeWindow": { "description": "Proto representing a window", "fields": { @@ -49351,6 +50071,10 @@ "description": "A list of tables to update with fullRefresh. If both refresh_selection and\nfull_refresh_selection are empty, this is a full graph update. Full Refresh on a table means\nthat the states of the table will be reset before the refresh.", "launch_stage": "GA" }, + "full_refresh_selection_by_path": { + "description": "A list of file paths that identify the tables to update with a full refresh.", + "launch_stage": "PRIVATE_PREVIEW" + }, "parameters": { "description": "Key/value map of parameters to pass to the pipeline execution", "launch_stage": "PUBLIC_BETA" @@ -49359,6 +50083,10 @@ "description": "A list of tables to update without fullRefresh. If both refresh_selection and\nfull_refresh_selection are empty, this is a full graph update. Full Refresh on a table means\nthat the states of the table will be reset before the refresh.", "launch_stage": "GA" }, + "refresh_selection_by_path": { + "description": "A list of file paths that identify the tables to update.", + "launch_stage": "PRIVATE_PREVIEW" + }, "replace_where_overrides": { "description": "A list of predicate overrides for replace_where flows in this update.\nOnly replace_where flows may be specified. Flows not listed use their original predicate.", "launch_stage": "PRIVATE_PREVIEW" @@ -49717,6 +50445,10 @@ "description": "A list of tables to update with fullRefresh. If both refresh_selection and\nfull_refresh_selection are empty, this is a full graph update. Full Refresh on a table means\nthat the states of the table will be reset before the refresh.", "launch_stage": "GA" }, + "full_refresh_selection_by_path": { + "description": "A list of file paths that identify the tables to update with a full refresh.", + "launch_stage": "PRIVATE_PREVIEW" + }, "mode": { "description": "Indicates whether the update is either part of a continuous job run, or running in legacy continuous pipeline mode.\nReturned only for GetUpdate; not populated in ListUpdates responses.", "ref": "pipelines.UpdateMode", @@ -49734,6 +50466,10 @@ "description": "A list of tables to update without fullRefresh. If both refresh_selection and\nfull_refresh_selection are empty, this is a full graph update. Full Refresh on a table means\nthat the states of the table will be reset before the refresh.", "launch_stage": "GA" }, + "refresh_selection_by_path": { + "description": "A list of file paths that identify the tables to update.", + "launch_stage": "PRIVATE_PREVIEW" + }, "state": { "description": "The update state.", "ref": "pipelines.UpdateInfoState", @@ -49971,7 +50707,7 @@ }, "source_snapshot": { "description": "The snapshot this branch was created from. When set, the branch's data\ncomes from the snapshot rather than a source branch, so source_branch,\nsource_branch_lsn, and source_branch_time must be empty. The snapshot must\nbe AVAILABLE and belong to this branch's project.\nFormat: projects/{project_id}/snapshots/{snapshot_id}", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OPTIONAL" @@ -50076,7 +50812,7 @@ }, "source_snapshot": { "description": "The snapshot this branch was restored from. Set only for branches created by\nrestoring a snapshot; unset for all other branches.\nFormat: projects/{project_id}/snapshots/{snapshot_id}", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] @@ -50481,11 +51217,11 @@ "snapshot": { "description": "The snapshot to create.", "ref": "postgres.Snapshot", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" }, "snapshot_id": { "description": "Client-chosen ID for the snapshot. It becomes the final segment of the\nsnapshot resource name and cannot be changed after creation.", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" } } }, @@ -50506,7 +51242,7 @@ "fields": { "hour": { "description": "The hour of the day, in UTC, at which to take the snapshot, in [0, 23].", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OPTIONAL" ] @@ -50850,13 +51586,13 @@ "SUNDAY" ], "enum_launch_stages": { - "FRIDAY": "PUBLIC_BETA", - "MONDAY": "PUBLIC_BETA", - "SATURDAY": "PUBLIC_BETA", - "SUNDAY": "PUBLIC_BETA", - "THURSDAY": "PUBLIC_BETA", - "TUESDAY": "PUBLIC_BETA", - "WEDNESDAY": "PUBLIC_BETA" + "FRIDAY": "GA", + "MONDAY": "GA", + "SATURDAY": "GA", + "SUNDAY": "GA", + "THURSDAY": "GA", + "TUESDAY": "GA", + "WEDNESDAY": "GA" } }, "postgres.DeleteBranchRequest": { @@ -51747,14 +52483,14 @@ "fields": { "page_size": { "description": "Maximum number of snapshots to return per page.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OPTIONAL" ] }, "page_token": { "description": "Page token from a previous response; omit for the first page.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OPTIONAL" ] @@ -51765,11 +52501,11 @@ "fields": { "next_page_token": { "description": "Token to retrieve the next page; empty if there are no more pages.", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" }, "snapshots": { "description": "The snapshots in the project.", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" } } }, @@ -51778,11 +52514,11 @@ "fields": { "day": { "description": "The day of the month on which to take the snapshot, in [1, 31]. In shorter\nmonths the snapshot is taken on the last day instead (day 31 runs on Feb 28\nor 29, and on Apr 30), so every month gets exactly one snapshot.", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" }, "hour": { "description": "The hour of the day, in UTC, at which to take the snapshot, in [0, 23].", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OPTIONAL" ] @@ -52445,21 +53181,21 @@ "daily_schedule": { "description": "Take a snapshot once per day.", "ref": "postgres.DailySchedule", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" }, "monthly_schedule": { "description": "Take a snapshot once per month.", "ref": "postgres.MonthlySchedule", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" }, "retention": { "description": "How long snapshots from this cadence are kept before automatic deletion.\nMust be at least 1 hour. Applied when a snapshot is taken; not retroactive,\nso changing it affects only later snapshots.", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" }, "weekly_schedule": { "description": "Take a snapshot once per week.", "ref": "postgres.WeeklySchedule", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" } } }, @@ -52468,18 +53204,18 @@ "fields": { "create_time": { "description": "When the snapshot was created.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] }, "name": { "description": "The resource name of the snapshot.\nFormat: projects/{project_id}/snapshots/{snapshot_id}", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" }, "snapshot_id": { "description": "The user-chosen ID; the final segment of `name`.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] @@ -52487,7 +53223,7 @@ "spec": { "description": "Client-provided configuration of the snapshot.", "ref": "postgres.SnapshotSpec", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OPTIONAL" ] @@ -52495,14 +53231,14 @@ "status": { "description": "Server-observed state of the snapshot.", "ref": "postgres.SnapshotStatus", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] }, "uid": { "description": "Unique system-generated ID for the snapshot.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] @@ -52517,11 +53253,11 @@ "fields": { "name": { "description": "The resource name of the branch's snapshot schedule.\nFormat: projects/{project_id}/branches/{branch_id}/snapshot-schedule", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" }, "schedule": { "description": "The cadences at which automatic snapshots are taken. Update replaces the\nwhole set; an empty set disables automatic snapshots. Order is not\nsignificant. When several cadences fire together, one snapshot is taken,\nretained for the longest of their retentions.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OPTIONAL", "UNORDERED_LIST" @@ -52537,7 +53273,7 @@ "fields": { "expire_time": { "description": "Absolute time at which the snapshot is deleted.\nMutually exclusive with `ttl` and `no_expiry`.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OPTIONAL" @@ -52545,7 +53281,7 @@ }, "no_expiry": { "description": "If true, the snapshot never expires.\nMutually exclusive with `ttl` and `expire_time`.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OPTIONAL" @@ -52553,14 +53289,14 @@ }, "source_branch": { "description": "The source branch to snapshot.\nFormat: projects/{project_id}/branches/{branch_id}", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE" ] }, "source_branch_lsn": { "description": "LSN to snapshot from, e.g. `16/B374D848`.\nMutually exclusive with `source_branch_time`.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OPTIONAL" @@ -52568,7 +53304,7 @@ }, "source_branch_time": { "description": "Timestamp to snapshot from.\nMutually exclusive with `source_branch_lsn`.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "OPTIONAL" @@ -52576,7 +53312,7 @@ }, "ttl": { "description": "Time-to-live. The snapshot expires this long after it is created.\nMutually exclusive with `expire_time` and `no_expiry`. Reads report the\nresolved absolute `expire_time` instead.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "IMMUTABLE", "INPUT_ONLY", @@ -52590,35 +53326,35 @@ "fields": { "diff_size_bytes": { "description": "Incremental storage size in bytes since the previous snapshot. Unset when\nthe snapshot is not billed on incremental usage.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] }, "expire_time": { "description": "Absolute time at which the snapshot is deleted.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] }, "full_size_bytes": { "description": "Full logical size of the snapshot, in bytes.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] }, "no_expiry": { "description": "True if the snapshot never expires.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] }, "source_branch": { "description": "The source branch the snapshot was taken from.\nFormat: projects/{project_id}/branches/{branch_id}", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OUTPUT_ONLY" ] @@ -52638,7 +53374,7 @@ "launch_stage": "GA" }, "spec": { - "description": "Configuration details of the synced table, such as the source table, scheduling policy, etc.\nThis attribute is specified at creation time and most fields are returned as is on subsequent queries.", + "description": "Configuration details of the synced table, such as the source table, scheduling policy, etc.", "ref": "postgres.SyncedTableSyncedTableSpec", "launch_stage": "GA", "behaviors": [ @@ -53105,11 +53841,11 @@ "snapshot_schedule": { "description": "The snapshot schedule to set. Its `name` identifies the branch.\nFormat: projects/{project_id}/branches/{branch_id}/snapshot-schedule", "ref": "postgres.SnapshotSchedule", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" }, "update_mask": { "description": "Fields to update. The only updatable path is `schedule`, which replaces the\nentire set of cadences.", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" } } }, @@ -53119,11 +53855,11 @@ "day_of_week": { "description": "The day of the week on which to take the snapshot.", "ref": "postgres.DayOfWeek", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "GA" }, "hour": { "description": "The hour of the day, in UTC, at which to take the snapshot, in [0, 23].", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "GA", "behaviors": [ "OPTIONAL" ] @@ -54510,8 +55246,8 @@ "sandbox.EnvironmentSpec": { "fields": { "image_uri": { - "description": "A Unity Catalog container artifact (e.g. `catalog.schema.folder.image:tag`) to run as the\nsandbox environment. When set, this image is used as the environment instead of resolving a\nmanaged image from `environment_version`.", - "launch_stage": "PRIVATE_PREVIEW", + "description": "The Unity Catalog container image to use for the sandbox environment\n(for example, `catalog.schema.folder.image:tag`). See\n[Artifact Registry](https://docs.databricks.com/en/artifact-registry/).", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -54745,6 +55481,14 @@ "OPTIONAL" ] }, + "metadata": { + "description": "Metadata associated with the sandbox.", + "ref": "sandbox.SandboxMetadata", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + }, "name": { "description": "The sandbox resource name, in the form `sandboxes/{sandbox_id}`. Derived from\n`sandbox_id`; any value supplied in a create or update request body is ignored.", "launch_stage": "PUBLIC_BETA" @@ -54826,6 +55570,18 @@ "SANDBOX_FILE_TYPE_SYMLINK": "PRIVATE_PREVIEW" } }, + "sandbox.SandboxMetadata": { + "description": "Metadata associated with a sandbox.", + "fields": { + "custom_tags": { + "description": "Key-value tags associated with the sandbox. Supports up to 54 tags. Keys must be between\n1 and 512 characters, and values must not exceed 256 characters.", + "launch_stage": "PUBLIC_BETA", + "behaviors": [ + "OPTIONAL" + ] + } + } + }, "sandbox.SandboxSpec": { "fields": { "compute": { @@ -54839,7 +55595,7 @@ "environment": { "description": "The execution environment to use for the sandbox.", "ref": "sandbox.EnvironmentSpec", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -57661,8 +58417,9 @@ "description": "The network policies applying for ingress traffic.", "fields": { "cross_workspace_access": { + "description": "The network policy restrictions for cross-workspace access: which other workspaces may\naccess this workspace.", "ref": "settings.CustomerFacingIngressNetworkPolicyCrossWorkspaceAccess", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OPTIONAL" ] @@ -57784,14 +58541,14 @@ "fields": { "allow_rules": { "description": "Allow rules are evaluated after deny rules. A request matching any allow rule is\nallowed; a request matching no rule is denied by default. Only applies when\nrestriction_mode is RESTRICTED_ACCESS.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OPTIONAL" ] }, "deny_rules": { "description": "Deny rules are evaluated first. A request matching any deny rule is denied,\nregardless of allow rules. Only applies when restriction_mode is RESTRICTED_ACCESS.", - "launch_stage": "PUBLIC_BETA", + "launch_stage": "PRIVATE_PREVIEW", "behaviors": [ "OPTIONAL" ] @@ -57799,7 +58556,7 @@ "restriction_mode": { "description": "The restriction mode for cross-workspace access.", "ref": "settings.CustomerFacingIngressNetworkPolicyCrossWorkspaceAccessRestrictionMode", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "PRIVATE_PREVIEW" } } }, @@ -57811,9 +58568,9 @@ "LEGACY_MODE" ], "enum_launch_stages": { - "FULL_ACCESS": "PUBLIC_BETA", - "LEGACY_MODE": "PUBLIC_BETA", - "RESTRICTED_ACCESS": "PUBLIC_BETA" + "FULL_ACCESS": "PRIVATE_PREVIEW", + "LEGACY_MODE": "PRIVATE_PREVIEW", + "RESTRICTED_ACCESS": "PRIVATE_PREVIEW" } }, "settings.CustomerFacingIngressNetworkPolicyCrossWorkspaceIngressRule": { @@ -57822,21 +58579,21 @@ "authentication": { "description": "The authenticated identity the request must match. When unset, the rule matches\nall users and service principals.", "ref": "settings.CustomerFacingIngressNetworkPolicyAuthentication", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "PRIVATE_PREVIEW" }, "destination": { "description": "The destination the request must match — the resource being accessed, for example\nthe workspace UI or workspace APIs. See RequestDestination.", "ref": "settings.CustomerFacingIngressNetworkPolicyRequestDestination", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "PRIVATE_PREVIEW" }, "label": { "description": "The label for this ingress rule.", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "PRIVATE_PREVIEW" }, "origin": { "description": "The origin the request must match — the source workspace the request comes from,\neither specific source workspaces or any source workspace in any account. See\nCrossWorkspaceRequestOrigin.", "ref": "settings.CustomerFacingIngressNetworkPolicyCrossWorkspaceRequestOrigin", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "PRIVATE_PREVIEW" } } }, @@ -57844,12 +58601,12 @@ "fields": { "all_source_workspaces": { "description": "Matches all source workspaces.", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "PRIVATE_PREVIEW" }, "selected_workspaces": { "description": "Specific source workspace IDs to match.", "ref": "settings.CustomerFacingIngressNetworkPolicyWorkspaceIdList", - "launch_stage": "PUBLIC_BETA" + "launch_stage": "PRIVATE_PREVIEW" } } }, @@ -58087,7 +58844,7 @@ "settings.CustomerFacingIngressNetworkPolicyWorkspaceIdList": { "fields": { "workspace_ids": { - "launch_stage": "PUBLIC_BETA" + "launch_stage": "PRIVATE_PREVIEW" } } }, @@ -62900,7 +63657,7 @@ "launch_stage": "GA" }, "string_shared_as": { - "description": "A user-provided alias name for non-table data objects within the share.\n\nUse this field for non-table objects (for example: VOLUME, MODEL, NOTEBOOK_FILE, FUNCTION).\nFor table-like objects (for example: TABLE, VIEW, MATERIALIZED_VIEW, STREAMING_TABLE, FOREIGN_TABLE), use `shared_as` instead.\n\nImportant: For table-like objects, this field must be omitted entirely.\n\nFormat:\n- For VOLUME: Must be a 2-part name `\u003cschema_name\u003e.\u003cvolume_name\u003e` (e.g., \"data_schema.ml_models\")\n- For FUNCTION: Must be a 2-part name `\u003cschema_name\u003e.\u003cfunction_name\u003e` (e.g., \"udf_schema.calculate_tax\")\n- For MODEL: Must be a 2-part name `\u003cschema_name\u003e.\u003cmodel_name\u003e` (e.g., \"models.prediction_model\")\n- For NOTEBOOK_FILE: Should be the notebook file name (e.g., \"analysis_notebook.py\")\n- All names must contain only alphanumeric characters and underscores\n- No periods, spaces, forward slashes, or control characters are allowed within each part\n\nBehavior:\n- If not provided, the service automatically generates the alias from the object's original name\n- If you don't want to specify this field, omit it entirely from the request (do not pass an empty string)\n- The `string_shared_as` name must be unique for objects of the same type within the share\n\nExamples:\n- Valid for VOLUME: \"data_schema.training_data\"\n- Valid for FUNCTION: \"analytics.calculate_revenue\"\n- Invalid: \"catalog.data_schema.training_data\" (3 parts not allowed for volumes)\n- Invalid: \"data-schema.training-data\" (hyphens not allowed)", + "description": "A user-provided alias name for non-table data objects within the share.\n\nUse this field for non-table objects (for example: VOLUME, MODEL, NOTEBOOK_FILE, FUNCTION).\n\nFor table-like objects (for example: TABLE, VIEW, MATERIALIZED_VIEW, STREAMING_TABLE, FOREIGN_TABLE), use `shared_as` instead.\n\nImportant: For table-like objects, this field must be omitted entirely.\n\nFormat:\n- For VOLUME: Must be a 2-part name `\u003cschema_name\u003e.\u003cvolume_name\u003e` (e.g., \"data_schema.ml_models\")\n- For FUNCTION: Must be a 2-part name `\u003cschema_name\u003e.\u003cfunction_name\u003e` (e.g., \"udf_schema.calculate_tax\")\n- For MODEL: Must be a 2-part name `\u003cschema_name\u003e.\u003cmodel_name\u003e` (e.g., \"models.prediction_model\")\n- For NOTEBOOK_FILE: Should be the notebook file name (e.g., \"analysis_notebook.py\")\n\n- All names must contain only alphanumeric characters and underscores\n- No periods, spaces, forward slashes, or control characters are allowed within each part\n\nBehavior:\n- If not provided, the service automatically generates the alias from the object's original name\n- If you don't want to specify this field, omit it entirely from the request (do not pass an empty string)\n- The `string_shared_as` name must be unique for objects of the same type within the share\n\nExamples:\n- Valid for VOLUME: \"data_schema.training_data\"\n- Valid for FUNCTION: \"analytics.calculate_revenue\"\n\n- Invalid: \"catalog.data_schema.training_data\" (3 parts not allowed for volumes)\n- Invalid: \"data-schema.training-data\" (hyphens not allowed)", "launch_stage": "GA" } } @@ -63533,14 +64290,14 @@ ] }, "custom_description": { - "description": "Custom description for the alert. support mustache template.", + "description": "Custom description for the alert. Interpreted according to `custom_template_format`.", "launch_stage": "GA", "behaviors": [ "OPTIONAL" ] }, "custom_summary": { - "description": "Custom summary for the alert. support mustache template.", + "description": "Custom summary for the alert. Interpreted according to `custom_template_format`.", "launch_stage": "GA", "behaviors": [ "OPTIONAL" @@ -63549,7 +64306,7 @@ "custom_template_format": { "description": "The format used to interpret the `custom_summary` and `custom_description` templates.\n\n`HTML` treats both templates as HTML with Mustache `{{VARIABLE_NAME}}` placeholders.\n`MARKDOWN` treats them as Markdown with allowlisted `@VARIABLE_NAME` placeholders and converts\nthem to the format each notification destination expects, so a single template renders\ncorrectly in email, Slack, and Microsoft Teams.\n\nWhen unset, the API applies no default. Responses omit the field unless a format is stored,\nand a template with no format is rendered as HTML.", "ref": "sql.CustomTemplateFormat", - "launch_stage": "PRIVATE_PREVIEW", + "launch_stage": "PUBLIC_BETA", "behaviors": [ "OPTIONAL" ] @@ -64374,8 +65131,8 @@ "MARKDOWN" ], "enum_launch_stages": { - "HTML": "PRIVATE_PREVIEW", - "MARKDOWN": "PRIVATE_PREVIEW" + "HTML": "PUBLIC_BETA", + "MARKDOWN": "PUBLIC_BETA" } }, "sql.Dashboard": { @@ -69131,7 +69888,10 @@ "OFFLINE", "RED_STATE", "YELLOW_STATE", - "DELETED" + "DELETED", + "STOPPING", + "STOPPED", + "STARTING" ], "enum_launch_stages": { "DELETED": "GA", @@ -69139,6 +69899,9 @@ "ONLINE": "GA", "PROVISIONING": "GA", "RED_STATE": "GA", + "STARTING": "PRIVATE_PREVIEW", + "STOPPED": "PRIVATE_PREVIEW", + "STOPPING": "PRIVATE_PREVIEW", "YELLOW_STATE": "GA" } }, @@ -69618,6 +70381,8 @@ } } }, + "vectorsearch.StartEndpointRequest": {}, + "vectorsearch.StopEndpointRequest": {}, "vectorsearch.Struct": { "fields": { "fields": { @@ -73017,8 +73782,7 @@ }, { "name": "name", - "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.", - "is_output_only": true, + "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.\nRequired for updates; assigned by the service on creation.", "is_request_body_field": true, "entity": { "is_string": true @@ -74485,6 +75249,69 @@ } ] }, + { + "name": "GetMemoryStorePermission", + "description": "Retrieves the current caller's effective memory store permission. Returns PERMISSION_LEVEL_UNSPECIFIED when the caller has no access.", + "summary": "Get memory store permission.", + "path": "/api/2.0/agents/{name=memory-stores/*}/permissions/self", + "is_crud_read": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "GetMemoryStorePermissionRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "MemoryStorePermission", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "GetSession", "description": "Gets a session by resource name.", @@ -74636,6 +75463,365 @@ } ] }, + { + "name": "GetSessionStorePermission", + "description": "Retrieves the current caller's effective session store permission. Returns PERMISSION_LEVEL_UNSPECIFIED when the caller has no access.", + "summary": "Get session store permission.", + "path": "/api/2.0/agents/{name=session-stores/*}/permissions/self", + "is_crud_read": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "GetSessionStorePermissionRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "SessionStorePermission", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "GrantMemoryStorePermission", + "description": "Grants a READ or WRITE permission on a memory store to a principal. Only the owner or a workspace admin may grant permissions.", + "summary": "Grant memory store permission.", + "path": "/api/2.0/agents/{name=memory-stores/*}/permissions:grant", + "can_use_json": true, + "must_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "GrantMemoryStorePermissionRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "principal", + "description": "Principal to grant the permission to.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + }, + { + "name": "permission", + "description": "Permission level to grant.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "PermissionLevel", + "enum": [ + { + "content": "READ" + }, + { + "content": "WRITE" + } + ] + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "principal", + "description": "Principal to grant the permission to.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + }, + { + "name": "permission", + "description": "Permission level to grant.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "PermissionLevel", + "enum": [ + { + "content": "READ" + }, + { + "content": "WRITE" + } + ] + } + } + ] + }, + "response": { + "pascal_name": "GrantMemoryStorePermissionResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "permission", + "description": "Permission level to grant.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "PermissionLevel", + "enum": [ + { + "content": "READ" + }, + { + "content": "WRITE" + } + ] + } + }, + { + "name": "principal", + "description": "Principal to grant the permission to.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "GrantSessionStorePermission", + "description": "Grants a READ or WRITE permission on a session store to a principal. Only the owner or a workspace admin may grant permissions.", + "summary": "Grant session store permission.", + "path": "/api/2.0/agents/{name=session-stores/*}/permissions:grant", + "can_use_json": true, + "must_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "GrantSessionStorePermissionRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "principal", + "description": "Principal to grant the permission to.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + }, + { + "name": "permission", + "description": "Permission level to grant.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "PermissionLevel", + "enum": [ + { + "content": "READ" + }, + { + "content": "WRITE" + } + ] + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "principal", + "description": "Principal to grant the permission to.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + }, + { + "name": "permission", + "description": "Permission level to grant.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "PermissionLevel", + "enum": [ + { + "content": "READ" + }, + { + "content": "WRITE" + } + ] + } + } + ] + }, + "response": { + "pascal_name": "GrantSessionStorePermissionResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "permission", + "description": "Permission level to grant.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "PermissionLevel", + "enum": [ + { + "content": "READ" + }, + { + "content": "WRITE" + } + ] + } + }, + { + "name": "principal", + "description": "Principal to grant the permission to.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "ListMemories", "description": "Lists memory entries for one actor. An exact `path` filters entries across sessions,\nignoring session metadata. Otherwise, `session_id` and `path_prefix` restrict the actor\npartition. `view` controls whether each returned entry includes memory content.", @@ -74795,6 +75981,96 @@ } } }, + { + "name": "ListMemoryStorePermissions", + "description": "Lists explicit memory store grants. Only the owner or a workspace admin may list permissions.", + "summary": "List memory store permissions.", + "path": "/api/2.0/agents/{parent=memory-stores/*}/permissions", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "ListMemoryStorePermissionsRequest", + "is_object": true, + "required_fields": [ + { + "name": "parent", + "description": "Resource name of the store, in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "Resource name of the store, in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "ListMemoryStorePermissionsResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "page_size", + "description": "Maximum number of permissions to return. Defaults to 100; maximum is 1000.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "Continuation token from a previous response.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "parent", + "description": "Resource name of the store, in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "parent", + "description": "Resource name of the store, in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "Continuation token from a previous response.", + "is_query": true, + "entity": { + "is_string": true + } + } + } + } + }, { "name": "ListMemoryStores", "description": "Lists memory stores in the caller's workspace.", @@ -74943,6 +76219,96 @@ } } }, + { + "name": "ListSessionStorePermissions", + "description": "Lists explicit session store grants. Only the owner or a workspace admin may list permissions.", + "summary": "List session store permissions.", + "path": "/api/2.0/agents/{parent=session-stores/*}/permissions", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "ListSessionStorePermissionsRequest", + "is_object": true, + "required_fields": [ + { + "name": "parent", + "description": "Resource name of the store, in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "Resource name of the store, in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "ListSessionStorePermissionsResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "page_size", + "description": "Maximum number of permissions to return. Defaults to 100; maximum is 1000.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "Continuation token from a previous response.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "parent", + "description": "Resource name of the store, in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "parent", + "description": "Resource name of the store, in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "pagination": { + "token": { + "poll_field": { + "name": "page_token", + "description": "Continuation token from a previous response.", + "is_query": true, + "entity": { + "is_string": true + } + } + } + } + }, { "name": "ListSessionStores", "description": "Lists session stores.", @@ -75162,6 +76528,200 @@ } ] }, + { + "name": "RevokeMemoryStorePermission", + "description": "Removes a principal's explicit READ and WRITE grants on a memory store. Only the owner or a workspace admin may revoke permissions. Ownership and inherited access are unaffected.", + "summary": "Revoke memory store permission.", + "path": "/api/2.0/agents/{name=memory-stores/*}/permissions:revoke", + "can_use_json": true, + "must_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "RevokeMemoryStorePermissionRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "principal", + "description": "Principal whose READ and WRITE grants will be removed.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "principal", + "description": "Principal whose READ and WRITE grants will be removed.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + } + ] + }, + "response": { + "pascal_name": "RevokeMemoryStorePermissionResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "principal", + "description": "Principal whose READ and WRITE grants will be removed.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Resource name in the form `memory-stores/{managed_memory_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "RevokeSessionStorePermission", + "description": "Removes a principal's explicit READ and WRITE grants on a session store. Only the owner or a workspace admin may revoke permissions. Ownership and inherited access are unaffected.", + "summary": "Revoke session store permission.", + "path": "/api/2.0/agents/{name=session-stores/*}/permissions:revoke", + "can_use_json": true, + "must_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "RevokeSessionStorePermissionRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "principal", + "description": "Principal whose READ and WRITE grants will be removed.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_request_body_fields": [ + { + "name": "principal", + "description": "Principal whose READ and WRITE grants will be removed.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + } + ] + }, + "response": { + "pascal_name": "RevokeSessionStorePermissionResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "principal", + "description": "Principal whose READ and WRITE grants will be removed.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "StorePrincipal", + "is_object": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "Resource name in the form `session-stores/{session_store_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "SearchMemories", "description": "Searches memory entries by text query for one actor. Returns matching entries and\nscores ranked by relevance; `view` controls whether each returned entry includes content.", @@ -75388,10 +76948,9 @@ "required_fields": [ { "name": "name", - "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.", + "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.\nRequired for updates; assigned by the service on creation.", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } @@ -75419,10 +76978,9 @@ "required_in_url_fields": [ { "name": "name", - "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.", + "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.\nRequired for updates; assigned by the service on creation.", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } @@ -75600,10 +77158,9 @@ }, { "name": "name", - "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.", + "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.\nRequired for updates; assigned by the service on creation.", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } @@ -75654,8 +77211,7 @@ }, { "name": "name", - "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.", - "is_output_only": true, + "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.\nRequired for updates; assigned by the service on creation.", "is_request_body_field": true, "entity": { "is_string": true @@ -75708,10 +77264,9 @@ "required_positional_arguments": [ { "name": "name", - "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.", + "description": "Resource name in the form\n`memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}`.\nRequired for updates; assigned by the service on creation.", "required": true, "is_path": true, - "is_output_only": true, "entity": { "is_string": true } @@ -78763,7 +80318,7 @@ }, { "name": "ListModelServices", - "description": "Lists the model services in a Unity Catalog schema. Provide `parent` as\n`schemas/{catalog}.{schema}`. Results are paginated; pass the returned\n`next_page_token` to fetch subsequent pages.\n\nRequires `USE_CATALOG` on the parent catalog and `USE_SCHEMA` on the\nparent schema. Only model services the caller can access (as owner or\nthrough `EXECUTE`, `READ_METADATA`, or `MANAGE`) are returned.", + "description": "Lists the model services in a Unity Catalog schema. Provide `parent` as\n`schemas/{catalog}.{schema}`. Results are paginated; pass the returned\n`next_page_token` to fetch subsequent pages.\n\nRequires `USE_CATALOG` on the parent catalog and `USE_SCHEMA` on the\nparent schema. Only model services the caller can access (as owner or\nthrough `EXECUTE`, `READ_METADATA`, or `MANAGE`) are returned by default.", "summary": "List model services.", "path": "/api/2.1/unity-catalog/model-services", "has_required_positional_arguments": true, @@ -83961,7 +85516,7 @@ }, { "name": "custom_description", - "description": "Custom description for the alert. support mustache template.", + "description": "Custom description for the alert. Interpreted according to `custom_template_format`.", "is_request_body_field": true, "entity": { "is_string": true @@ -83969,7 +85524,7 @@ }, { "name": "custom_summary", - "description": "Custom summary for the alert. support mustache template.", + "description": "Custom summary for the alert. Interpreted according to `custom_template_format`.", "is_request_body_field": true, "entity": { "is_string": true @@ -84855,7 +86410,7 @@ }, { "name": "custom_description", - "description": "Custom description for the alert. support mustache template.", + "description": "Custom description for the alert. Interpreted according to `custom_template_format`.", "is_request_body_field": true, "entity": { "is_string": true @@ -84863,7 +86418,7 @@ }, { "name": "custom_summary", - "description": "Custom summary for the alert. support mustache template.", + "description": "Custom summary for the alert. Interpreted according to `custom_template_format`.", "is_request_body_field": true, "entity": { "is_string": true @@ -85652,10 +87207,11 @@ "path": "/api/2.0/app-spaces", "can_use_json": true, "is_crud_create": true, - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { "pascal_name": "CreateSpaceRequest", "is_object": true, @@ -86225,10 +87781,11 @@ "description": "Deletes an app space.", "summary": "Delete an app space.", "path": "/api/2.0/app-spaces/{name}", - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { "pascal_name": "DeleteSpaceRequest", "is_object": true, @@ -86873,10 +88430,11 @@ "summary": "Get an app space.", "path": "/api/2.0/app-spaces/{name}", "is_crud_read": true, - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { "pascal_name": "GetSpaceRequest", "is_object": true, @@ -86959,10 +88517,11 @@ "summary": "Get the status of an app space operation.", "path": "/api/2.0/app-spaces/{name}/operation", "is_crud_read": true, - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { "pascal_name": "GetOperationRequest", "is_object": true, @@ -87227,10 +88786,11 @@ "description": "Lists all app spaces in the workspace.", "summary": "List app spaces.", "path": "/api/2.0/app-spaces", - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { "pascal_name": "ListSpacesRequest", "is_object": true @@ -88251,10 +89811,11 @@ "summary": "Update an app space.", "path": "/api/2.0/app-spaces/{name}", "can_use_json": true, - "is_hidden_cli": true, "has_required_positional_arguments": true, - "launch_stage": "PRIVATE_PREVIEW", - "cli_launch_stage_display": "Private Preview", + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", "request": { "pascal_name": "UpdateSpaceRequest", "is_object": true, @@ -90990,10 +92551,8 @@ }, "is_accounts": true, "docs_group": "billing", - "launch_stage": "PUBLIC_PREVIEW", - "cli_launch_stage_label": "*Public Preview*", - "cli_launch_stage_banner": "This command is in Public Preview and may change without notice.", - "cli_launch_stage_display": "Public Preview", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "methods": [ { "name": "Create", @@ -91002,10 +92561,8 @@ "path": "/api/2.1/accounts/{account_id}/budgets", "can_use_json": true, "must_use_json": true, - "launch_stage": "PUBLIC_PREVIEW", - "cli_launch_stage_label": "*Public Preview*", - "cli_launch_stage_banner": "This command is in Public Preview and may change without notice.", - "cli_launch_stage_display": "Public Preview", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "CreateBudgetConfigurationRequest", "is_object": true, @@ -91058,10 +92615,8 @@ "summary": "Delete budget.", "path": "/api/2.1/accounts/{account_id}/budgets/{budget_id}", "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_PREVIEW", - "cli_launch_stage_label": "*Public Preview*", - "cli_launch_stage_banner": "This command is in Public Preview and may change without notice.", - "cli_launch_stage_display": "Public Preview", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "DeleteBudgetConfigurationRequest", "is_object": true, @@ -91122,10 +92677,8 @@ "summary": "Get budget.", "path": "/api/2.1/accounts/{account_id}/budgets/{budget_id}", "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_PREVIEW", - "cli_launch_stage_label": "*Public Preview*", - "cli_launch_stage_banner": "This command is in Public Preview and may change without notice.", - "cli_launch_stage_display": "Public Preview", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "GetBudgetConfigurationRequest", "is_object": true, @@ -91179,16 +92732,77 @@ } ] }, + { + "name": "GetBudgetSpendStatus", + "description": "Get the calling user's live spend against the blocking thresholds of a single Unity Gateway\nbudget. Any account user can call this for their own spend. Spend is reported in USD at list\nprice and is near-real-time, so it may differ slightly from billing data. Returns NOT_FOUND if\nthe budget doesn't exist or has no blocking thresholds.", + "summary": "Get the calling user's spend status for a budget.", + "path": "/api/2.1/{name=accounts/*/budget-spend-statuses/*}", + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "GetBudgetSpendStatusRequest", + "is_object": true, + "required_fields": [ + { + "name": "name", + "description": "The resource name of the budget spend status to read, of the form\n`accounts/{account_id}/budget-spend-statuses/{budget_id}`. A `budget_id` that isn't a valid\nUUID fails with INVALID_PARAMETER_VALUE.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "name", + "description": "The resource name of the budget spend status to read, of the form\n`accounts/{account_id}/budget-spend-statuses/{budget_id}`. A `budget_id` that isn't a valid\nUUID fails with INVALID_PARAMETER_VALUE.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "BudgetSpendStatus", + "is_object": true + }, + "all_fields": [ + { + "name": "name", + "description": "The resource name of the budget spend status to read, of the form\n`accounts/{account_id}/budget-spend-statuses/{budget_id}`. A `budget_id` that isn't a valid\nUUID fails with INVALID_PARAMETER_VALUE.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "name", + "description": "The resource name of the budget spend status to read, of the form\n`accounts/{account_id}/budget-spend-statuses/{budget_id}`. A `budget_id` that isn't a valid\nUUID fails with INVALID_PARAMETER_VALUE.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "List", "description": "Gets all budgets associated with this account.", "summary": "Get all budgets.", "path": "/api/2.1/accounts/{account_id}/budgets", "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_PREVIEW", - "cli_launch_stage_label": "*Public Preview*", - "cli_launch_stage_banner": "This command is in Public Preview and may change without notice.", - "cli_launch_stage_display": "Public Preview", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "ListBudgetConfigurationsRequest", "is_object": true @@ -91220,6 +92834,93 @@ } } }, + { + "name": "ListBudgetSpendStatuses", + "description": "List the calling user's live spend against the blocking thresholds across the account's Unity\nGateway budgets. Any account user can call this for their own spend. Spend is reported in USD\nat list price and is near-real-time, so it may differ slightly from billing data. By default,\nreturns every budget in the account that has a blocking threshold. Use `filter` to narrow\nresults by workspace.", + "summary": "List the calling user's budget spend statuses.", + "path": "/api/2.1/{parent=accounts/*}/budget-spend-statuses", + "has_required_positional_arguments": true, + "launch_stage": "PUBLIC_BETA", + "cli_launch_stage_label": "*Beta*", + "cli_launch_stage_banner": "This command is in Beta and may change without notice.", + "cli_launch_stage_display": "Beta", + "request": { + "pascal_name": "ListBudgetSpendStatusesRequest", + "is_object": true, + "required_fields": [ + { + "name": "parent", + "description": "The parent account whose budget spend statuses to list, of the form `accounts/{account_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "parent", + "description": "The parent account whose budget spend statuses to list, of the form `accounts/{account_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "ListBudgetSpendStatusesResponse", + "is_object": true + }, + "all_fields": [ + { + "name": "filter", + "description": "A filter expression that narrows the returned budgets by workspace. Only `workspace_id` is\nsupported, in lower case with numeric workspace IDs, for example `workspace_id = 123` or\n`workspace_id IN (123, 456)`. Matches budgets that apply to any of the listed workspaces,\nincluding budgets that apply to all workspaces. Any other expression, such as an empty `IN ()`\nlist, fails with INVALID_PARAMETER_VALUE. If empty, returns every budget in the account that has\na blocking threshold.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "page_size", + "description": "The maximum number of spend statuses to return per page. If unspecified or 0, at most 100 are\nreturned. The maximum value is 100; values above 100 are coerced to 100. Negative values fail\nwith INVALID_PARAMETER_VALUE. The server may return fewer results than requested, including\nzero, even when more pages remain; page until `next_page_token` is absent.", + "is_query": true, + "entity": { + "is_int": true + } + }, + { + "name": "page_token", + "description": "A page token from a previous `ListBudgetSpendStatuses` response, used to fetch the next page.\nRequests the first page if absent. All other request parameters except `page_size` must match\nthe request that returned the token; otherwise the request fails with INVALID_PARAMETER_VALUE.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "parent", + "description": "The parent account whose budget spend statuses to list, of the form `accounts/{account_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "parent", + "description": "The parent account whose budget spend statuses to list, of the form `accounts/{account_id}`.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "Update", "description": "Updates a budget configuration for an account. Both account and budget configuration are specified by ID.", @@ -91228,10 +92929,8 @@ "can_use_json": true, "must_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_PREVIEW", - "cli_launch_stage_label": "*Public Preview*", - "cli_launch_stage_banner": "This command is in Public Preview and may change without notice.", - "cli_launch_stage_display": "Public Preview", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "UpdateBudgetConfigurationRequest", "is_object": true, @@ -93770,6 +95469,9 @@ { "content": "OPERATION_ACTION_TYPE_RESIZE" }, + { + "content": "OPERATION_ACTION_TYPE_UNBIND" + }, { "content": "OPERATION_ACTION_TYPE_UPDATE" }, @@ -110517,7 +112219,7 @@ { "id": "database.Database", "name": "Database", - "description": "Database Instances provide access to a database via REST API or direct SQL.", + "description": "Database Instances provide access to a database via REST API or direct SQL.\n\nFor new workloads, Databricks recommends the [Postgres API](https://docs.databricks.com/api/postgres/v1/postgres), which supports the latest Lakebase features.", "package": { "name": "database" }, @@ -110534,7 +112236,7 @@ "methods": [ { "name": "CreateDatabaseCatalog", - "description": "Create a Database Catalog.", + "description": "Create a Database Catalog.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Create a catalog](https://docs.databricks.com/api/postgres/v1/create-catalog).", "summary": "Create a Database Catalog.", "path": "/api/2.0/database/catalogs", "can_use_json": true, @@ -110846,7 +112548,7 @@ }, { "name": "CreateDatabaseInstance", - "description": "Create a Database Instance.", + "description": "Create a Database Instance.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Create a project](https://docs.databricks.com/api/postgres/v1/create-project).", "summary": "Create a Database Instance.", "path": "/api/2.0/database/instances", "can_use_json": true, @@ -111271,7 +112973,7 @@ }, { "name": "CreateDatabaseInstanceRole", - "description": "Create a role for a Database Instance.", + "description": "Create a role for a Database Instance.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Create a role](https://docs.databricks.com/api/postgres/v1/create-role).", "summary": "Create a role for a Database Instance.", "path": "/api/2.0/database/instances/{instance_name}/roles", "can_use_json": true, @@ -111696,7 +113398,7 @@ }, { "name": "CreateSyncedDatabaseTable", - "description": "Create a Synced Database Table.", + "description": "Create a Synced Database Table.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Create a synced table](https://docs.databricks.com/api/postgres/v1/create-synced-table).", "summary": "Create a Synced Database Table.", "path": "/api/2.0/database/synced_tables", "can_use_json": true, @@ -111932,7 +113634,7 @@ }, { "name": "DeleteDatabaseCatalog", - "description": "Delete a Database Catalog.", + "description": "Delete a Database Catalog.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Delete a catalog](https://docs.databricks.com/api/postgres/v1/delete-catalog).", "summary": "Delete a Database Catalog.", "path": "/api/2.0/database/catalogs/{name}", "has_required_positional_arguments": true, @@ -111990,7 +113692,7 @@ }, { "name": "DeleteDatabaseInstance", - "description": "Delete a Database Instance.", + "description": "Delete a Database Instance.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Delete a project](https://docs.databricks.com/api/postgres/v1/delete-project).", "summary": "Delete a Database Instance.", "path": "/api/2.0/database/instances/{name}", "has_required_positional_arguments": true, @@ -112068,7 +113770,7 @@ }, { "name": "DeleteDatabaseInstanceRole", - "description": "Deletes a role for a Database Instance.", + "description": "Deletes a role for a Database Instance.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Delete a role](https://docs.databricks.com/api/postgres/v1/delete-role).", "summary": "Delete a role for a Database Instance.", "path": "/api/2.0/database/instances/{instance_name}/roles/{name}", "is_hidden_cli": true, @@ -112230,7 +113932,7 @@ }, { "name": "DeleteSyncedDatabaseTable", - "description": "Delete a Synced Database Table.", + "description": "Delete a Synced Database Table.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Delete a synced table](https://docs.databricks.com/api/postgres/v1/delete-synced-table).", "summary": "Delete a Synced Database Table.", "path": "/api/2.0/database/synced_tables/{name}", "has_required_positional_arguments": true, @@ -112349,7 +114051,7 @@ }, { "name": "GenerateDatabaseCredential", - "description": "Generates a credential that can be used to access database instances.", + "description": "Generates a credential that can be used to access database instances.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Generate a database credential](https://docs.databricks.com/api/postgres/v1/generate-database-credential).", "summary": "Generates a credential that can be used to access database instances.", "path": "/api/2.0/database/credentials", "can_use_json": true, @@ -112402,7 +114104,7 @@ }, { "name": "GetDatabaseCatalog", - "description": "Get a Database Catalog.", + "description": "Get a Database Catalog.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Get a catalog](https://docs.databricks.com/api/postgres/v1/get-catalog).", "summary": "Get a Database Catalog.", "path": "/api/2.0/database/catalogs/{name}", "is_crud_read": true, @@ -112521,7 +114223,7 @@ }, { "name": "GetDatabaseInstance", - "description": "Get a Database Instance.", + "description": "Get a Database Instance.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Get a project](https://docs.databricks.com/api/postgres/v1/get-project).", "summary": "Get a Database Instance.", "path": "/api/2.0/database/instances/{name}", "is_crud_read": true, @@ -112608,7 +114310,7 @@ }, { "name": "GetDatabaseInstanceRole", - "description": "Gets a role for a Database Instance.", + "description": "Gets a role for a Database Instance.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Get a role](https://docs.databricks.com/api/postgres/v1/get-role).", "summary": "Get a role for a Database Instance.", "path": "/api/2.0/database/instances/{instance_name}/roles/{name}", "is_crud_read": true, @@ -112805,7 +114507,7 @@ }, { "name": "GetSyncedDatabaseTable", - "description": "Get a Synced Database Table.", + "description": "Get a Synced Database Table.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[Get a synced table](https://docs.databricks.com/api/postgres/v1/get-synced-table).", "summary": "Get a Synced Database Table.", "path": "/api/2.0/database/synced_tables/{name}", "is_crud_read": true, @@ -112978,7 +114680,7 @@ }, { "name": "ListDatabaseInstanceRoles", - "description": "START OF PG ROLE APIs Section\nThese APIs are marked a PUBLIC with stage \u003c PUBLIC_PREVIEW. With more recent Lakebase V2 plans, we don't plan to\never advance these to PUBLIC_PREVIEW. These APIs will remain effectively undocumented/UI-only and we'll aim for a\nnew public roles API as part of V2 PuPr.", + "description": "List roles for a Database Instance.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[List roles](https://docs.databricks.com/api/postgres/v1/list-roles).", "summary": "List roles for a Database Instance.", "path": "/api/2.0/database/instances/{instance_name}/roles", "is_hidden_cli": true, @@ -113064,7 +114766,7 @@ }, { "name": "ListDatabaseInstances", - "description": "List Database Instances.", + "description": "List Database Instances.\n\nFor new workloads, Databricks recommends the Postgres API equivalent:\n[List projects](https://docs.databricks.com/api/postgres/v1/list-projects).", "summary": "List Database Instances.", "path": "/api/2.0/database/instances", "has_required_positional_arguments": true, @@ -113582,7 +115284,7 @@ }, { "name": "UpdateDatabaseInstance", - "description": "Update a Database Instance.", + "description": "Update a Database Instance.\n\nFor new workloads, Databricks recommends the Postgres API equivalents:\n[Update a project](https://docs.databricks.com/api/postgres/v1/update-project) and\n[Update an endpoint](https://docs.databricks.com/api/postgres/v1/update-endpoint).", "summary": "Update a Database Instance.", "path": "/api/2.0/database/instances/{name}", "can_use_json": true, @@ -133863,6 +135565,111 @@ } ] }, + { + "name": "CreateMaterializationSet", + "description": "Create a materialization set.", + "summary": "Create a materialization set.", + "path": "/api/2.0/feature-engineering/materialization-sets", + "can_use_json": true, + "is_crud_create": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "CreateMaterializationSetRequest", + "is_object": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "materialization_set", + "description": "The materialization set to create. Supply materialization_set_id to choose the identifier;\nleave it unset to have one assigned.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "MaterializationSet", + "is_object": true + } + } + ], + "required_request_body_fields": [ + { + "name": "materialization_set", + "description": "The materialization set to create. Supply materialization_set_id to choose the identifier;\nleave it unset to have one assigned.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "MaterializationSet", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "materialization_set", + "description": "The materialization set to create. Supply materialization_set_id to choose the identifier;\nleave it unset to have one assigned.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "MaterializationSet", + "is_object": true + } + }, + "response": { + "pascal_name": "Operation", + "is_object": true + }, + "all_fields": [ + { + "name": "materialization_set", + "description": "The materialization set to create. Supply materialization_set_id to choose the identifier;\nleave it unset to have one assigned.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "MaterializationSet", + "is_object": true + } + }, + { + "name": "request_id", + "description": "Idempotency token for the request. A second request carrying a token that has already been\nused returns the operation the first one created, whatever state it reached, and creates no\nsecond set. The token is not checked against the rest of the request, so reusing one for a\ndifferent set returns the original operation rather than an error. Omit it and each request\ncreates its own set.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "materialization_set_id", + "description": "Server-assigned unique identifier for the materialization set.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "materialized_features", + "description": "The materialized features in this set. Order is not significant.\nUpdating the set with a materialized feature removed from this set will cause it to be deleted.", + "is_request_body_field": true, + "entity": { + "pascal_name": "MaterializedFeatureList", + "array_value": { + "pascal_name": "MaterializedFeature", + "is_object": true + } + } + } + ], + "long_running_operation": { + "get_operation": { + "kebab_name": "get-operation", + "pascal_name": "GetOperation", + "request": { + "pascal_name": "GetOperationRequest" + } + }, + "response_type": {} + } + }, { "name": "CreateMaterializedFeature", "description": "Create a materialized feature.", @@ -134066,6 +135873,15 @@ "is_string": true } }, + { + "name": "materialization_set_id", + "description": "The materialization set this materialized feature was created for, through DABs or\ndirect-engine creation. Unset for a materialized feature that was not created as part of a set.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "materialized_feature_id", "description": "Server-assigned unique identifier for the materialized feature.", @@ -134854,6 +136670,96 @@ } ] }, + { + "name": "DeleteMaterializationSet", + "description": "Delete a materialization set and every materialized feature in it. The set is gone afterwards,\nso a later read returns NOT_FOUND and the set id is free to use again.", + "summary": "Delete a materialization set.", + "path": "/api/2.0/feature-engineering/materialization-sets/{materialization_set_id}", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "DeleteMaterializationSetRequest", + "is_object": true, + "required_fields": [ + { + "name": "materialization_set_id", + "description": "The ID of the materialization set to delete.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "materialization_set_id", + "description": "The ID of the materialization set to delete.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "Operation", + "is_object": true + }, + "all_fields": [ + { + "name": "allow_missing", + "description": "Return success instead of NOT_FOUND when the set does not exist, so a repeated destroy is\nidempotent.", + "is_query": true, + "entity": { + "is_bool": true + } + }, + { + "name": "materialization_set_id", + "description": "The ID of the materialization set to delete.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "request_id", + "description": "Idempotency token for the request. A second request carrying a token that has already been\nused returns the operation the first one created, whatever state it reached, and deletes\nnothing further. The token is not checked against the rest of the request. Omit it and each\nrequest deletes independently.", + "is_query": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "materialization_set_id", + "description": "The ID of the materialization set to delete.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "long_running_operation": { + "get_operation": { + "kebab_name": "get-operation", + "pascal_name": "GetOperation", + "request": { + "pascal_name": "GetOperationRequest" + } + }, + "response_type": { + "is_empty_response": true + } + } + }, { "name": "DeleteMaterializedFeature", "description": "Delete a materialized feature.", @@ -135243,6 +137149,69 @@ } ] }, + { + "name": "GetMaterializationSet", + "description": "Get a materialization set and the materialized features in it. A set whose materialized\nfeature members have all been deleted is returned with an empty member list.", + "summary": "Get a materialization set.", + "path": "/api/2.0/feature-engineering/materialization-sets/{materialization_set_id}", + "is_crud_read": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "GetMaterializationSetRequest", + "is_object": true, + "required_fields": [ + { + "name": "materialization_set_id", + "description": "The ID of the materialization set.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "materialization_set_id", + "description": "The ID of the materialization set.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "MaterializationSet", + "is_object": true + }, + "all_fields": [ + { + "name": "materialization_set_id", + "description": "The ID of the materialization set.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "materialization_set_id", + "description": "The ID of the materialization set.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "GetMaterializedFeature", "description": "Get a materialized feature.", @@ -135887,7 +137856,7 @@ "required_fields": [ { "name": "features", - "description": "Fully qualified names of the features to purge. At least one nonempty feature name is required.\nA request may contain at most 10000 features; submit additional features in separate requests.\nDuplicate features are rejected.", + "description": "Fully qualified names of the features to purge. At least one nonempty feature name is required.\nA request may contain at most 500 features; submit additional features in separate requests.\nDuplicate features are rejected.", "required": true, "is_request_body_field": true, "entity": { @@ -135910,7 +137879,7 @@ "required_request_body_fields": [ { "name": "features", - "description": "Fully qualified names of the features to purge. At least one nonempty feature name is required.\nA request may contain at most 10000 features; submit additional features in separate requests.\nDuplicate features are rejected.", + "description": "Fully qualified names of the features to purge. At least one nonempty feature name is required.\nA request may contain at most 500 features; submit additional features in separate requests.\nDuplicate features are rejected.", "required": true, "is_request_body_field": true, "entity": { @@ -135944,6 +137913,14 @@ "is_string": true } }, + { + "name": "delete_rows", + "description": "If false feature values are set to null on purge but rows are not deleted. If true then the full rows containing entities are deleted. Defaults to false.\nWhen true, the request must include every feature which shares the same `table_name` property in their MaterializedFeature.\nFeatures from multiple tables may be included if all features materialized in each table are included.", + "is_request_body_field": true, + "entity": { + "is_bool": true + } + }, { "name": "entities_table", "description": "Fully qualified name of the Unity Catalog Delta table containing the entity keys to purge.\nThe table may contain a subset of each feature's entity-key columns. A partial key match\ndeletes all feature rows matching the provided key values. Non-key columns are rejected;\nnull key values are allowed.", @@ -135955,7 +137932,7 @@ }, { "name": "features", - "description": "Fully qualified names of the features to purge. At least one nonempty feature name is required.\nA request may contain at most 10000 features; submit additional features in separate requests.\nDuplicate features are rejected.", + "description": "Fully qualified names of the features to purge. At least one nonempty feature name is required.\nA request may contain at most 500 features; submit additional features in separate requests.\nDuplicate features are rejected.", "required": true, "is_request_body_field": true, "entity": { @@ -136989,6 +138966,187 @@ } ] }, + { + "name": "UpdateMaterializationSet", + "description": "Update the materialization set's state to match the supplied materialization set. Changes are\napplied member by member and are not atomic: when one member fails, the error reports which\nmembers were already changed.", + "summary": "Update a materialization set.", + "path": "/api/2.0/feature-engineering/materialization-sets/{materialization_set_id}", + "can_use_json": true, + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "UpdateMaterializationSetRequest", + "is_object": true, + "has_field_mask": true, + "has_required_request_body_fields": true, + "required_fields": [ + { + "name": "materialization_set_id", + "description": "Server-assigned unique identifier for the materialization set.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "materialization_set", + "description": "The desired state of the updated materialization set. materialization_set_id selects the set.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "MaterializationSet", + "is_object": true + } + }, + { + "name": "update_mask", + "description": "The fields to update. Only 'materialized_features' is supported.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + } + ], + "required_in_url_fields": [ + { + "name": "materialization_set_id", + "description": "Server-assigned unique identifier for the materialization set.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_mask", + "description": "The fields to update. Only 'materialized_features' is supported.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + } + ], + "required_request_body_fields": [ + { + "name": "materialization_set", + "description": "The desired state of the updated materialization set. materialization_set_id selects the set.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "MaterializationSet", + "is_object": true + } + } + ] + }, + "request_body_field": { + "name": "materialization_set", + "description": "The desired state of the updated materialization set. materialization_set_id selects the set.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "MaterializationSet", + "is_object": true + } + }, + "response": { + "pascal_name": "Operation", + "is_object": true + }, + "all_fields": [ + { + "name": "materialization_set", + "description": "The desired state of the updated materialization set. materialization_set_id selects the set.", + "required": true, + "is_request_body_field": true, + "entity": { + "pascal_name": "MaterializationSet", + "is_object": true + } + }, + { + "name": "materialization_set_id", + "description": "Server-assigned unique identifier for the materialization set.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "request_id", + "description": "Idempotency token for the request. A second request carrying a token that has already been\nused returns the operation the first one created, whatever state it reached, and changes\nnothing further. The token is not checked against the rest of the request. Omit it and each\nrequest updates independently.", + "is_query": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_mask", + "description": "The fields to update. Only 'materialized_features' is supported.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + }, + { + "name": "materialization_set_id", + "description": "Server-assigned unique identifier for the materialization set.", + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, + { + "name": "materialized_features", + "description": "The materialized features in this set. Order is not significant.\nUpdating the set with a materialized feature removed from this set will cause it to be deleted.", + "is_request_body_field": true, + "entity": { + "pascal_name": "MaterializedFeatureList", + "array_value": { + "pascal_name": "MaterializedFeature", + "is_object": true + } + } + } + ], + "required_positional_arguments": [ + { + "name": "materialization_set_id", + "description": "Server-assigned unique identifier for the materialization set.", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + }, + { + "name": "update_mask", + "description": "The fields to update. Only 'materialized_features' is supported.", + "required": true, + "is_query": true, + "entity": { + "is_field_mask": true + } + } + ], + "long_running_operation": { + "get_operation": { + "kebab_name": "get-operation", + "pascal_name": "GetOperation", + "request": { + "pascal_name": "GetOperationRequest" + } + }, + "response_type": {} + } + }, { "name": "UpdateMaterializedFeature", "description": "Update a materialized feature (pause/resume).", @@ -137247,6 +139405,15 @@ "is_string": true } }, + { + "name": "materialization_set_id", + "description": "The materialization set this materialized feature was created for, through DABs or\ndirect-engine creation. Unset for a materialized feature that was not created as part of a set.", + "is_output_only": true, + "is_request_body_field": true, + "entity": { + "is_string": true + } + }, { "name": "materialized_feature_id", "description": "Server-assigned unique identifier for the materialized feature.", @@ -148469,7 +150636,7 @@ }, { "name": "CreateIdentityVisibilityFilter", - "description": "Creates a group visibility filter in the account. Requires account admin privileges.\nSet `principal_type` to `GROUP` and specify exactly one of `exact` (external ID) or `prefix`\n(display-name starts with). The filter applies across all workspaces in the account.\nA duplicate filter ID or an existing rule with the same type and match value returns\n`ALREADY_EXISTS`. Filters are immutable; to change a rule, delete it and create a new one.", + "description": "Creates a group visibility filter in the account. Requires account admin privileges.\nSet `principal_type` to `GROUP` and specify exactly one of `exact` (external ID), `prefix`\n(display-name starts with), or `regex` (full RE2 display-name match).\nThe filter applies across all workspaces in the account.\nA duplicate filter ID or an existing rule with the same type and match value returns\n`ALREADY_EXISTS`. Filters are immutable; to change a rule, delete it and create a new one.", "summary": "Create an identity-visibility filter in the account.", "path": "/api/2.0/identity/{parent=accounts/*}/identity-visibility-filters", "can_use_json": true, @@ -148492,7 +150659,7 @@ }, { "name": "identity_visibility_filter", - "description": "Required. The filter to create. Set `principal_type` to `GROUP` and specify exactly one of\n`exact` or `prefix`. The server assigns the resource name; any supplied `name` is ignored.", + "description": "Required. The filter to create. Set `principal_type` to `GROUP` and specify exactly one of\n`exact`, `prefix`, or `regex`. The server assigns the resource name; any supplied `name` is ignored.", "required": true, "is_request_body_field": true, "entity": { @@ -148515,7 +150682,7 @@ "required_request_body_fields": [ { "name": "identity_visibility_filter", - "description": "Required. The filter to create. Set `principal_type` to `GROUP` and specify exactly one of\n`exact` or `prefix`. The server assigns the resource name; any supplied `name` is ignored.", + "description": "Required. The filter to create. Set `principal_type` to `GROUP` and specify exactly one of\n`exact`, `prefix`, or `regex`. The server assigns the resource name; any supplied `name` is ignored.", "required": true, "is_request_body_field": true, "entity": { @@ -148527,7 +150694,7 @@ }, "request_body_field": { "name": "identity_visibility_filter", - "description": "Required. The filter to create. Set `principal_type` to `GROUP` and specify exactly one of\n`exact` or `prefix`. The server assigns the resource name; any supplied `name` is ignored.", + "description": "Required. The filter to create. Set `principal_type` to `GROUP` and specify exactly one of\n`exact`, `prefix`, or `regex`. The server assigns the resource name; any supplied `name` is ignored.", "required": true, "is_request_body_field": true, "entity": { @@ -148632,7 +150799,7 @@ "all_fields": [ { "name": "identity_visibility_filter", - "description": "Required. The filter to create. Set `principal_type` to `GROUP` and specify exactly one of\n`exact` or `prefix`. The server assigns the resource name; any supplied `name` is ignored.", + "description": "Required. The filter to create. Set `principal_type` to `GROUP` and specify exactly one of\n`exact`, `prefix`, or `regex`. The server assigns the resource name; any supplied `name` is ignored.", "required": true, "is_request_body_field": true, "entity": { @@ -148750,6 +150917,16 @@ } ] } + }, + { + "name": "regex", + "description": "Full, case-sensitive RE2 match on the identity's display name.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "RegexMatchRule", + "is_object": true + } } ], "required_positional_arguments": [ @@ -152709,7 +154886,7 @@ }, { "name": "UpdateServicePrincipal", - "description": "Updates an existing service principal in the Databricks account. Only the fields named in the\nupdate mask are modified. Returns the updated ServicePrincipal resource.\n\nWhen AIM is enabled and the service principal is an external identity (its external_id is set),\nonly external_id can be updated; its other fields are sourced from your identity provider.", + "description": "Updates an existing service principal in the Databricks account. Only the fields named in the\nupdate mask are modified. Returns the updated ServicePrincipal resource.\n\nFor locally managed service principals, is_agent must be set to true or false when updated.\n\nWhen AIM is enabled and the service principal is an external identity (its external_id is set),\nonly external_id can be updated; its other fields are sourced from your identity provider.", "summary": "Update a service principal in the account.", "path": "/api/2.0/identity/accounts/{account_id}/service-principals/{service_principal_id}", "can_use_json": true, @@ -177932,6 +180109,17 @@ } } }, + { + "name": "full_refresh_selection_by_path", + "description": "A list of file paths that identify the tables to update with a full refresh.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, { "name": "parameters", "description": "Key/value map of parameters to pass to the pipeline execution", @@ -177961,6 +180149,17 @@ } } }, + { + "name": "refresh_selection_by_path", + "description": "A list of file paths that identify the tables to update.", + "is_request_body_field": true, + "entity": { + "pascal_name": "List", + "array_value": { + "is_string": true + } + } + }, { "name": "replace_where_overrides", "description": "A list of predicate overrides for replace_where flows in this update.\nOnly replace_where flows may be specified. Flows not listed use their original predicate.", @@ -184279,10 +186478,8 @@ "can_use_json": true, "is_crud_create": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "CreateSnapshotRequest", "is_object": true, @@ -184590,7 +186787,7 @@ }, { "name": "spec", - "description": "Configuration details of the synced table, such as the source table, scheduling policy, etc.\nThis attribute is specified at creation time and most fields are returned as is on subsequent queries.", + "description": "Configuration details of the synced table, such as the source table, scheduling policy, etc.", "is_request_body_field": true, "is_optional_object": true, "entity": { @@ -185275,10 +187472,8 @@ "summary": "Delete a Snapshot.", "path": "/api/2.0/postgres/{name=projects/*/snapshots/*}", "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "DeleteSnapshotRequest", "is_object": true, @@ -186202,10 +188397,8 @@ "path": "/api/2.0/postgres/{name=projects/*/snapshots/*}", "is_crud_read": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "GetSnapshotRequest", "is_object": true, @@ -186266,10 +188459,8 @@ "path": "/api/2.0/postgres/{name=projects/*/branches/*/snapshot-schedule}", "is_crud_read": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "GetSnapshotScheduleRequest", "is_object": true, @@ -186992,10 +189183,8 @@ "summary": "List Snapshots.", "path": "/api/2.0/postgres/{parent=projects/*}/snapshots", "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "ListSnapshotsRequest", "is_object": true, @@ -188657,10 +190846,8 @@ "path": "/api/2.0/postgres/{name=projects/*/branches/*/snapshot-schedule}", "can_use_json": true, "has_required_positional_arguments": true, - "launch_stage": "PUBLIC_BETA", - "cli_launch_stage_label": "*Beta*", - "cli_launch_stage_banner": "This command is in Beta and may change without notice.", - "cli_launch_stage_display": "Beta", + "launch_stage": "GA", + "cli_launch_stage_display": "GA", "request": { "pascal_name": "UpdateSnapshotScheduleRequest", "is_object": true, @@ -201846,6 +204033,16 @@ "is_string": true } }, + { + "name": "metadata", + "description": "Metadata associated with the sandbox.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "SandboxMetadata", + "is_object": true + } + }, { "name": "name", "description": "The sandbox resource name, in the form `sandboxes/{sandbox_id}`. Derived from\n`sandbox_id`; any value supplied in a create or update request body is ignored.", @@ -203000,6 +205197,16 @@ "is_string": true } }, + { + "name": "metadata", + "description": "Metadata associated with the sandbox.", + "is_request_body_field": true, + "is_optional_object": true, + "entity": { + "pascal_name": "SandboxMetadata", + "is_object": true + } + }, { "name": "name", "description": "The sandbox resource name, in the form `sandboxes/{sandbox_id}`. Derived from\n`sandbox_id`; any value supplied in a create or update request body is ignored.", @@ -222947,6 +225154,130 @@ } ] }, + { + "name": "StartEndpoint", + "description": "Start a stopped endpoint. The endpoint serves the same indexes it had when it stopped.", + "summary": "Start an endpoint.", + "path": "/api/2.0/vector-search/endpoints/{endpoint_name}/start", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "StartEndpointRequest", + "is_object": true, + "required_fields": [ + { + "name": "endpoint_name", + "description": "Name of the AI Search endpoint", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "endpoint_name", + "description": "Name of the AI Search endpoint", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "EndpointInfo", + "is_object": true + }, + "all_fields": [ + { + "name": "endpoint_name", + "description": "Name of the AI Search endpoint", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "endpoint_name", + "description": "Name of the AI Search endpoint", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + { + "name": "StopEndpoint", + "description": "Stop an endpoint. Stopping removes the endpoint's serving compute and retains its indexes.\nA stopped endpoint can't serve queries or sync indexes until it is started.", + "summary": "Stop an endpoint.", + "path": "/api/2.0/vector-search/endpoints/{endpoint_name}/stop", + "is_hidden_cli": true, + "has_required_positional_arguments": true, + "launch_stage": "PRIVATE_PREVIEW", + "cli_launch_stage_display": "Private Preview", + "request": { + "pascal_name": "StopEndpointRequest", + "is_object": true, + "required_fields": [ + { + "name": "endpoint_name", + "description": "Name of the AI Search endpoint", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_in_url_fields": [ + { + "name": "endpoint_name", + "description": "Name of the AI Search endpoint", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, + "response": { + "pascal_name": "EndpointInfo", + "is_object": true + }, + "all_fields": [ + { + "name": "endpoint_name", + "description": "Name of the AI Search endpoint", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ], + "required_positional_arguments": [ + { + "name": "endpoint_name", + "description": "Name of the AI Search endpoint", + "required": true, + "is_path": true, + "entity": { + "is_string": true + } + } + ] + }, { "name": "UpdateEndpointBudgetPolicy", "description": "Update the budget policy of an endpoint", @@ -233976,7 +236307,7 @@ }, { "name": "UpdateServicePrincipalProxy", - "description": "Updates an existing service principal in the\nDatabricks account that parents the calling workspace. Only the fields named in the update mask\nare modified. Returns the updated ServicePrincipal resource.\n\nWhen AIM is enabled and the service principal is an external identity (its external_id is set),\nonly external_id can be updated; its other fields are sourced from your identity provider.", + "description": "Updates an existing service principal in the\nDatabricks account that parents the calling workspace. Only the fields named in the update mask\nare modified. Returns the updated ServicePrincipal resource.\n\nFor locally managed service principals, is_agent must be set to true or false when updated.\n\nWhen AIM is enabled and the service principal is an external identity (its external_id is set),\nonly external_id can be updated; its other fields are sourced from your identity provider.", "summary": "Update a service principal in the account.", "path": "/api/2.0/identity/service-principals/{service_principal_id}", "can_use_json": true, diff --git a/.nextchanges/dependency-updates/go-sdk-v0.191.0.md b/.nextchanges/dependency-updates/go-sdk-v0.191.0.md new file mode 100644 index 00000000000..c81cc13b9de --- /dev/null +++ b/.nextchanges/dependency-updates/go-sdk-v0.191.0.md @@ -0,0 +1 @@ +* Update the Go SDK to [v0.191.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.191.0). ([#7211](https://github.com/databricks/cli/pull/7211)) diff --git a/acceptance/bundle/refschema/output/features.txt b/acceptance/bundle/refschema/output/features.txt index ae23fc269fe..c06246cee3d 100644 --- a/acceptance/bundle/refschema/output/features.txt +++ b/acceptance/bundle/refschema/output/features.txt @@ -11,11 +11,13 @@ resources.features.*.function ml.Function ALL resources.features.*.function.aggregation_function *ml.AggregationFunction ALL resources.features.*.function.aggregation_function.approx_count_distinct *ml.ApproxCountDistinctFunction ALL resources.features.*.function.aggregation_function.approx_count_distinct.input string ALL +resources.features.*.function.aggregation_function.approx_count_distinct.relative_error float64 ALL resources.features.*.function.aggregation_function.approx_count_distinct.relative_sd float64 ALL resources.features.*.function.aggregation_function.approx_percentile *ml.ApproxPercentileFunction ALL resources.features.*.function.aggregation_function.approx_percentile.accuracy int64 ALL resources.features.*.function.aggregation_function.approx_percentile.input string ALL resources.features.*.function.aggregation_function.approx_percentile.percentile float64 ALL +resources.features.*.function.aggregation_function.approx_percentile.relative_error float64 ALL resources.features.*.function.aggregation_function.avg *ml.AvgFunction ALL resources.features.*.function.aggregation_function.avg.input string ALL resources.features.*.function.aggregation_function.count_function *ml.CountFunction ALL diff --git a/acceptance/bundle/refschema/output/pipelines.txt b/acceptance/bundle/refschema/output/pipelines.txt index 7b207ec7a33..c8bc57f512c 100644 --- a/acceptance/bundle/refschema/output/pipelines.txt +++ b/acceptance/bundle/refschema/output/pipelines.txt @@ -328,6 +328,26 @@ resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.m resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.level string ALL resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.start_date string ALL resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.time_increment string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options *pipelines.OneDriveOptions ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.entity_type pipelines.OneDriveOptionsOneDriveEntityType ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options *pipelines.FileIngestionOptions ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.corrupt_record_column string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters []pipelines.FileFilter ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*] pipelines.FileFilter ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_after string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_before string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*].path_filter string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.format pipelines.FileIngestionOptionsFileFormat ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.format_options map[string]string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.format_options.* string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files bool ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.infer_column_types bool ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive bool ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.rescued_data_column string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.schema_evolution_mode pipelines.FileIngestionOptionsSchemaEvolutionMode ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.schema_hints string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.single_variant_column string ALL +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.url string ALL resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options *pipelines.OutlookOptions ALL resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.attachment_mode pipelines.OutlookAttachmentMode ALL resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.body_format pipelines.OutlookBodyFormat ALL @@ -611,6 +631,26 @@ resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.me resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.level string ALL resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.start_date string ALL resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.time_increment string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options *pipelines.OneDriveOptions ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.entity_type pipelines.OneDriveOptionsOneDriveEntityType ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options *pipelines.FileIngestionOptions ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.corrupt_record_column string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters []pipelines.FileFilter ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*] pipelines.FileFilter ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_after string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_before string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*].path_filter string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.format pipelines.FileIngestionOptionsFileFormat ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.format_options map[string]string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.format_options.* string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files bool ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.infer_column_types bool ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive bool ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.rescued_data_column string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.schema_evolution_mode pipelines.FileIngestionOptionsSchemaEvolutionMode ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.schema_hints string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.single_variant_column string ALL +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.url string ALL resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options *pipelines.OutlookOptions ALL resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.attachment_mode pipelines.OutlookAttachmentMode ALL resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.body_format pipelines.OutlookBodyFormat ALL diff --git a/acceptance/cmd/account/account-help/output.txt b/acceptance/cmd/account/account-help/output.txt index cc586cb1ef1..788df4f4e84 100644 --- a/acceptance/cmd/account/account-help/output.txt +++ b/acceptance/cmd/account/account-help/output.txt @@ -42,7 +42,7 @@ Provisioning Billing billable-usage This API allows you to download billable usage logs for the specified account and date range. budget-policy *Public Preview* A service serves REST API about Budget policies. - budgets *Public Preview* These APIs manage budget configurations for this account. + budgets These APIs manage budget configurations for this account. log-delivery These APIs manage log delivery configurations for this account. usage-dashboards These APIs manage usage dashboards for this account. diff --git a/bundle/internal/schema/annotations.yml b/bundle/internal/schema/annotations.yml index 61ab0b77502..d4885599805 100644 --- a/bundle/internal/schema/annotations.yml +++ b/bundle/internal/schema/annotations.yml @@ -1543,6 +1543,9 @@ resources: "protobuf_options": "description": |- PLACEHOLDER + "onedrive_options": + "description": |- + PLACEHOLDER "sharepoint_options": "description": |- PLACEHOLDER diff --git a/bundle/internal/validation/generated/enum_fields.go b/bundle/internal/validation/generated/enum_fields.go index f991d2b20ec..bffa6eb4df6 100644 --- a/bundle/internal/validation/generated/enum_fields.go +++ b/bundle/internal/validation/generated/enum_fields.go @@ -223,6 +223,9 @@ var EnumFields = map[string][]string{ "resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.entity_granularity[*]": {"CAMPAIGN", "CAMPAIGN_GROUP", "CREATIVE"}, "resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.finder": {"ANALYTICS", "ATTRIBUTED_REVENUE_METRICS", "STATISTICS"}, "resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.time_granularity": {"ALL", "DAILY", "MONTHLY", "YEARLY"}, + "resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.entity_type": {"FILE", "FILE_METADATA"}, + "resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.format": {"AVRO", "BINARYFILE", "CSV", "EXCEL", "JSON", "ORC", "PARQUET", "XML"}, + "resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.schema_evolution_mode": {"ADD_NEW_COLUMNS", "ADD_NEW_COLUMNS_WITH_TYPE_WIDENING", "FAIL_ON_NEW_COLUMNS", "NONE", "RESCUE"}, "resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.attachment_mode": {"ALL", "INLINE_ONLY", "NONE", "NON_INLINE_ONLY"}, "resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.body_format": {"TEXT_HTML", "TEXT_PLAIN"}, "resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.entity_type": {"FILE", "FILE_METADATA", "LIST", "PERMISSION"}, @@ -251,6 +254,9 @@ var EnumFields = map[string][]string{ "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.entity_granularity[*]": {"CAMPAIGN", "CAMPAIGN_GROUP", "CREATIVE"}, "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.finder": {"ANALYTICS", "ATTRIBUTED_REVENUE_METRICS", "STATISTICS"}, "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.time_granularity": {"ALL", "DAILY", "MONTHLY", "YEARLY"}, + "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.entity_type": {"FILE", "FILE_METADATA"}, + "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.format": {"AVRO", "BINARYFILE", "CSV", "EXCEL", "JSON", "ORC", "PARQUET", "XML"}, + "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.schema_evolution_mode": {"ADD_NEW_COLUMNS", "ADD_NEW_COLUMNS_WITH_TYPE_WIDENING", "FAIL_ON_NEW_COLUMNS", "NONE", "RESCUE"}, "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.attachment_mode": {"ALL", "INLINE_ONLY", "NONE", "NON_INLINE_ONLY"}, "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.body_format": {"TEXT_HTML", "TEXT_PLAIN"}, "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.entity_type": {"FILE", "FILE_METADATA", "LIST", "PERMISSION"}, @@ -261,7 +267,7 @@ var EnumFields = map[string][]string{ "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.data_level": {"AUCTION_AD", "AUCTION_ADGROUP", "AUCTION_ADVERTISER", "AUCTION_CAMPAIGN"}, "resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.report_type": {"AUDIENCE", "BASIC", "BUSINESS_CENTER", "DSA", "GMV_MAX", "PLAYABLE_AD"}, "resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.scd_type": {"APPEND_ONLY", "SCD_TYPE_1", "SCD_TYPE_2"}, - "resources.pipelines.*.ingestion_definition.source_type": {"BIGQUERY", "CONFLUENCE", "DYNAMICS365", "FOREIGN_CATALOG", "GA4_RAW_DATA", "GOOGLE_DRIVE", "JIRA", "MANAGED_POSTGRESQL", "META_MARKETING", "MYSQL", "NETSUITE", "ORACLE", "POSTGRESQL", "RABBITMQ", "SALESFORCE", "SERVICENOW", "SHAREPOINT", "SMARTSHEET", "SQLSERVER", "TERADATA", "TIKTOK_ADS", "WORKDAY_RAAS", "ZENDESK"}, + "resources.pipelines.*.ingestion_definition.source_type": {"BIGQUERY", "CONFLUENCE", "DYNAMICS365", "FOREIGN_CATALOG", "GA4_RAW_DATA", "GOOGLE_DRIVE", "JIRA", "MANAGED_POSTGRESQL", "META_MARKETING", "MYSQL", "NETSUITE", "ONEDRIVE", "ORACLE", "POSTGRESQL", "RABBITMQ", "SALESFORCE", "SERVICENOW", "SHAREPOINT", "SMARTSHEET", "SQLSERVER", "TERADATA", "TIKTOK_ADS", "WORKDAY_RAAS", "ZENDESK"}, "resources.pipelines.*.ingestion_definition.table_configuration.scd_type": {"APPEND_ONLY", "SCD_TYPE_1", "SCD_TYPE_2"}, "resources.pipelines.*.permissions[*].level": {"CAN_MANAGE", "CAN_RUN", "CAN_VIEW", "IS_OWNER"}, "resources.pipelines.*.restart_window.days_of_week[*]": {"FRIDAY", "MONDAY", "SATURDAY", "SUNDAY", "THURSDAY", "TUESDAY", "WEDNESDAY"}, diff --git a/bundle/schema/jsonschema.json b/bundle/schema/jsonschema.json index 423bbbd8b8c..959273d2586 100644 --- a/bundle/schema/jsonschema.json +++ b/bundle/schema/jsonschema.json @@ -82,20 +82,19 @@ "type": "object", "properties": { "custom_description": { - "description": "Custom description for the alert. support mustache template.", + "description": "Custom description for the alert. Interpreted according to `custom_template_format`.", "$ref": "#/$defs/string", "x-databricks-launch-stage": "GA" }, "custom_summary": { - "description": "Custom summary for the alert. support mustache template.", + "description": "Custom summary for the alert. Interpreted according to `custom_template_format`.", "$ref": "#/$defs/string", "x-databricks-launch-stage": "GA" }, "custom_template_format": { - "description": "[Private Preview] The format used to interpret the `custom_summary` and `custom_description` templates.\n\n`HTML` treats both templates as HTML with Mustache `{{VARIABLE_NAME}}` placeholders.\n`MARKDOWN` treats them as Markdown with allowlisted `@VARIABLE_NAME` placeholders and converts\nthem to the format each notification destination expects, so a single template renders\ncorrectly in email, Slack, and Microsoft Teams.\n\nWhen unset, the API applies no default. Responses omit the field unless a format is stored,\nand a template with no format is rendered as HTML.", + "description": "[Beta] The format used to interpret the `custom_summary` and `custom_description` templates.\n\n`HTML` treats both templates as HTML with Mustache `{{VARIABLE_NAME}}` placeholders.\n`MARKDOWN` treats them as Markdown with allowlisted `@VARIABLE_NAME` placeholders and converts\nthem to the format each notification destination expects, so a single template renders\ncorrectly in email, Slack, and Microsoft Teams.\n\nWhen unset, the API applies no default. Responses omit the field unless a format is stored,\nand a template with no format is rendered as HTML.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/sql.CustomTemplateFormat", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "display_name": { "description": "The display name of the alert.", @@ -243,10 +242,9 @@ "x-databricks-launch-stage": "GA" }, "space": { - "description": "[Private Preview] Name of the space this app belongs to.", + "description": "[Beta] Name of the space this app belongs to.", "$ref": "#/$defs/string", - "x-databricks-launch-stage": "PRIVATE_PREVIEW", - "doNotSuggest": true + "x-databricks-launch-stage": "PUBLIC_BETA" }, "telemetry_export_destinations": { "$ref": "#/$defs/slice/github.com/databricks/databricks-sdk-go/service/apps.TelemetryExportDestination", @@ -8054,7 +8052,7 @@ "x-databricks-launch-stage": "GA" }, "project_environment": { - "description": "[Beta] File path of pyproject.toml file that defines the project-scoped environment.", + "description": "[Beta] Path to the `pyproject.toml` file that defines the project environment.\nThis field cannot be combined with `environment_version`, `base_environment`, dependency fields,\nor any other environment-source fields. Set the environment version and dependencies in `pyproject.toml` instead.\nFor more information, see the serverless dependencies documentation.", "$ref": "#/$defs/string", "x-databricks-launch-stage": "PUBLIC_BETA" } @@ -12653,8 +12651,14 @@ "$ref": "#/$defs/string", "x-databricks-launch-stage": "GA" }, + "relative_error": { + "description": "[Private Preview] The error the user accepts, as a fraction of the count, between 0.02 (by default) and 0.3.\nThis is one standard error of the estimate, the same meaning as Spark's relativeSD: 0.02 means\nthe result is within ±2% of the true count about 68% of the time (one standard deviation covers\n68% of the region). Feature Store picks the sketch size that gives this relative error. If\nneither relative_error nor relative_sd is set, 0.02 is default chosen at feature creation.", + "$ref": "#/$defs/float64", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "relative_sd": { - "description": "The maximum relative standard deviation allowed (default defined by Spark).", + "description": "The maximum relative standard deviation allowed (default defined by Spark).\nDeprecated: use relative_error. When relative_error is set, reads return the same value here\nfor clients that don't have relative_error, and a request may only send that value.", "$ref": "#/$defs/float64", "x-databricks-launch-stage": "GA" } @@ -12677,7 +12681,7 @@ "description": "Computes the approximate percentile of values.", "properties": { "accuracy": { - "description": "The accuracy parameter (higher is more accurate but slower).", + "description": "The accuracy parameter (higher is more accurate but slower).\nDeprecated: use relative_error. When relative_error is set, reads return ceil(1 /\nrelative_error) here for clients that don't have relative_error, and a request may only send\nthat value.", "$ref": "#/$defs/int64", "x-databricks-launch-stage": "GA" }, @@ -12690,6 +12694,12 @@ "description": "The percentile value to compute (between 0 and 1).", "$ref": "#/$defs/float64", "x-databricks-launch-stage": "GA" + }, + "relative_error": { + "description": "[Private Preview] The error the user accepts, as a fraction of rank, between 0.01 (by default) and 0.3. The\nresult is within this rank error with 99% confidence: at 0.01, the value returned for p95 is\nbetween the true p94 and p96 at least 99% of the time. Feature Store picks the sketch size that\ngives this error.\nIf neither relative_error nor accuracy is set, 0.01 is default chosen at feature creation.", + "$ref": "#/$defs/float64", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true } }, "additionalProperties": false, @@ -13771,7 +13781,7 @@ "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.", + "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. Feature Store doesn't confirm that the pipeline reads from these\ntables. At most 100 tables.", "$ref": "#/$defs/slice/string", "x-databricks-launch-stage": "PRIVATE_PREVIEW", "doNotSuggest": true @@ -14399,6 +14409,12 @@ "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.MetaMarketingOptions", "x-databricks-launch-stage": "PUBLIC_BETA" }, + "onedrive_options": { + "description": "[Private Preview]", + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.OneDriveOptions", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, "outlook_options": { "description": "[Private Preview] Outlook specific options for ingestion", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.OutlookOptions", @@ -15262,6 +15278,7 @@ "ZENDESK", "SMARTSHEET", "RABBITMQ", + "ONEDRIVE", "FOREIGN_CATALOG" ], "enumDescriptions": [ @@ -15287,6 +15304,7 @@ "[Public Preview]", "[Public Preview]", "[Beta]", + "[Private Preview]", "[Private Preview]" ] }, @@ -15749,6 +15767,58 @@ } ] }, + "pipelines.OneDriveOptions": { + "oneOf": [ + { + "type": "object", + "properties": { + "entity_type": { + "description": "[Private Preview] (Optional) The type of OneDrive entity to ingest.\nIf not specified, defaults to FILE.", + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.OneDriveOptionsOneDriveEntityType", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "file_ingestion_options": { + "description": "[Private Preview] (Optional) File ingestion options for processing files.", + "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/pipelines.FileIngestionOptions", + "x-databricks-launch-stage": "PRIVATE_PREVIEW", + "doNotSuggest": true + }, + "url": { + "description": "[Private Preview] Required. The OneDrive URL.", + "$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]+\\])*)+)\\}" + } + ] + }, + "pipelines.OneDriveOptionsOneDriveEntityType": { + "oneOf": [ + { + "type": "string", + "description": "The type of OneDrive entity to ingest.", + "enum": [ + "FILE", + "FILE_METADATA" + ], + "enumDescriptions": [ + "[Private Preview]", + "[Private Preview]" + ] + }, + { + "type": "string", + "pattern": "\\$\\{(var(\\._*\\p{L}+([-_]*[\\p{L}\\p{N}]+)*(\\[[0-9]+\\])*)+)\\}" + } + ] + }, "pipelines.OperationTimeWindow": { "oneOf": [ { @@ -17160,9 +17230,9 @@ "description": "Take a snapshot once per day, at the configured hour.", "properties": { "hour": { - "description": "[Beta] The hour of the day, in UTC, at which to take the snapshot, in [0, 23].", + "description": "The hour of the day, in UTC, at which to take the snapshot, in [0, 23].", "$ref": "#/$defs/int", - "x-databricks-launch-stage": "PUBLIC_BETA" + "x-databricks-launch-stage": "GA" } }, "additionalProperties": false @@ -17186,15 +17256,6 @@ "FRIDAY", "SATURDAY", "SUNDAY" - ], - "enumDescriptions": [ - "[Beta]", - "[Beta]", - "[Beta]", - "[Beta]", - "[Beta]", - "[Beta]", - "[Beta]" ] }, { @@ -17279,14 +17340,14 @@ "description": "Take a snapshot once per month, on the configured day at the configured hour.", "properties": { "day": { - "description": "[Beta] The day of the month on which to take the snapshot, in [1, 31]. In shorter\nmonths the snapshot is taken on the last day instead (day 31 runs on Feb 28\nor 29, and on Apr 30), so every month gets exactly one snapshot.", + "description": "The day of the month on which to take the snapshot, in [1, 31]. In shorter\nmonths the snapshot is taken on the last day instead (day 31 runs on Feb 28\nor 29, and on Apr 30), so every month gets exactly one snapshot.", "$ref": "#/$defs/int", - "x-databricks-launch-stage": "PUBLIC_BETA" + "x-databricks-launch-stage": "GA" }, "hour": { - "description": "[Beta] The hour of the day, in UTC, at which to take the snapshot, in [0, 23].", + "description": "The hour of the day, in UTC, at which to take the snapshot, in [0, 23].", "$ref": "#/$defs/int", - "x-databricks-launch-stage": "PUBLIC_BETA" + "x-databricks-launch-stage": "GA" } }, "additionalProperties": false, @@ -17505,24 +17566,24 @@ "description": "One cadence at which automatic snapshots are taken.", "properties": { "daily_schedule": { - "description": "[Beta] Take a snapshot once per day.", + "description": "Take a snapshot once per day.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.DailySchedule", - "x-databricks-launch-stage": "PUBLIC_BETA" + "x-databricks-launch-stage": "GA" }, "monthly_schedule": { - "description": "[Beta] Take a snapshot once per month.", + "description": "Take a snapshot once per month.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.MonthlySchedule", - "x-databricks-launch-stage": "PUBLIC_BETA" + "x-databricks-launch-stage": "GA" }, "retention": { - "description": "[Beta] How long snapshots from this cadence are kept before automatic deletion.\nMust be at least 1 hour. Applied when a snapshot is taken; not retroactive,\nso changing it affects only later snapshots.", + "description": "How long snapshots from this cadence are kept before automatic deletion.\nMust be at least 1 hour. Applied when a snapshot is taken; not retroactive,\nso changing it affects only later snapshots.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/common/types/duration.Duration", - "x-databricks-launch-stage": "PUBLIC_BETA" + "x-databricks-launch-stage": "GA" }, "weekly_schedule": { - "description": "[Beta] Take a snapshot once per week.", + "description": "Take a snapshot once per week.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.WeeklySchedule", - "x-databricks-launch-stage": "PUBLIC_BETA" + "x-databricks-launch-stage": "GA" } }, "additionalProperties": false, @@ -17672,14 +17733,14 @@ "description": "Take a snapshot once per week, on the configured day at the configured hour.", "properties": { "day_of_week": { - "description": "[Beta] The day of the week on which to take the snapshot.", + "description": "The day of the week on which to take the snapshot.", "$ref": "#/$defs/github.com/databricks/databricks-sdk-go/service/postgres.DayOfWeek", - "x-databricks-launch-stage": "PUBLIC_BETA" + "x-databricks-launch-stage": "GA" }, "hour": { - "description": "[Beta] The hour of the day, in UTC, at which to take the snapshot, in [0, 23].", + "description": "The hour of the day, in UTC, at which to take the snapshot, in [0, 23].", "$ref": "#/$defs/int", - "x-databricks-launch-stage": "PUBLIC_BETA" + "x-databricks-launch-stage": "GA" } }, "additionalProperties": false, @@ -19539,8 +19600,8 @@ "MARKDOWN" ], "enumDescriptions": [ - "[Private Preview]", - "[Private Preview]" + "[Beta]", + "[Beta]" ] }, { diff --git a/cmd/account/budgets/budgets.go b/cmd/account/budgets/budgets.go index 723486a2e40..bd9231ad755 100644 --- a/cmd/account/budgets/budgets.go +++ b/cmd/account/budgets/budgets.go @@ -21,10 +21,8 @@ var cmdOverrides []func(*cobra.Command) func New() *cobra.Command { cmd := &cobra.Command{ Use: "budgets", - Short: `*Public Preview* These APIs manage budget configurations for this account.`, - Long: `This command is in Public Preview and may change without notice. - -These APIs manage budget configurations for this account. Budgets enable you + Short: `These APIs manage budget configurations for this account.`, + Long: `These APIs manage budget configurations for this account. Budgets enable you to monitor usage across your account. You can set up budgets to either track account-wide spending, or apply filters to track the spending of specific teams, projects, or workspaces.`, @@ -33,14 +31,16 @@ These APIs manage budget configurations for this account. Budgets enable you } cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" // Add methods cmd.AddCommand(newCreate()) cmd.AddCommand(newDelete()) cmd.AddCommand(newGet()) + cmd.AddCommand(newGetBudgetSpendStatus()) cmd.AddCommand(newList()) + cmd.AddCommand(newListBudgetSpendStatuses()) cmd.AddCommand(newUpdate()) // Apply optional overrides to this command. @@ -69,17 +69,15 @@ func newCreate() *cobra.Command { cmd.Flags().Var(&createJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Use = "create" - cmd.Short = `*Public Preview* Create new budget.` - cmd.Long = `This command is in Public Preview and may change without notice. - -Create new budget. + cmd.Short = `Create new budget.` + cmd.Long = `Create new budget. Create a new budget configuration for an account. For full details, see https://docs.databricks.com/en/admin/account-settings/budgets.html.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.PreRunE = root.MustAccountClient cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { @@ -136,10 +134,8 @@ func newDelete() *cobra.Command { var deleteReq billing.DeleteBudgetConfigurationRequest cmd.Use = "delete BUDGET_ID" - cmd.Short = `*Public Preview* Delete budget.` - cmd.Long = `This command is in Public Preview and may change without notice. - -Delete budget. + cmd.Short = `Delete budget.` + cmd.Long = `Delete budget. Deletes a budget configuration for an account. Both account and budget configuration are specified by ID. This cannot be undone. @@ -148,8 +144,8 @@ Delete budget. BUDGET_ID: The Databricks budget configuration ID.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -197,10 +193,8 @@ func newGet() *cobra.Command { var getReq billing.GetBudgetConfigurationRequest cmd.Use = "get BUDGET_ID" - cmd.Short = `*Public Preview* Get budget.` - cmd.Long = `This command is in Public Preview and may change without notice. - -Get budget. + cmd.Short = `Get budget.` + cmd.Long = `Get budget. Gets a budget configuration for an account. Both account and budget configuration are specified by ID. @@ -209,8 +203,8 @@ Get budget. BUDGET_ID: The budget configuration ID` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -244,6 +238,73 @@ Get budget. return cmd } +// start get-budget-spend-status command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getBudgetSpendStatusOverrides []func( + *cobra.Command, + *billing.GetBudgetSpendStatusRequest, +) + +func newGetBudgetSpendStatus() *cobra.Command { + cmd := &cobra.Command{} + + var getBudgetSpendStatusReq billing.GetBudgetSpendStatusRequest + + cmd.Use = "get-budget-spend-status NAME" + cmd.Short = `*Beta* Get the calling user's spend status for a budget.` + cmd.Long = `This command is in Beta and may change without notice. + +Get the calling user's spend status for a budget. + + Get the calling user's live spend against the blocking thresholds of a single + Unity Gateway budget. Any account user can call this for their own spend. + Spend is reported in USD at list price and is near-real-time, so it may differ + slightly from billing data. Returns NOT_FOUND if the budget doesn't exist or + has no blocking thresholds. + + Arguments: + NAME: The resource name of the budget spend status to read, of the form + accounts/{account_id}/budget-spend-statuses/{budget_id}. A budget_id + that isn't a valid UUID fails with INVALID_PARAMETER_VALUE.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustAccountClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + a := cmdctx.AccountClient(ctx) + + getBudgetSpendStatusReq.Name = args[0] + + response, err := a.Budgets.GetBudgetSpendStatus(ctx, getBudgetSpendStatusReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getBudgetSpendStatusOverrides { + fn(cmd, &getBudgetSpendStatusReq) + } + + return cmd +} + // start list command // Slice with functions to override default command behavior. @@ -270,16 +331,14 @@ func newList() *cobra.Command { cmd.Flags().Lookup("page-token").Hidden = true cmd.Use = "list" - cmd.Short = `*Public Preview* Get all budgets.` - cmd.Long = `This command is in Public Preview and may change without notice. - -Get all budgets. + cmd.Short = `Get all budgets.` + cmd.Long = `Get all budgets. Gets all budgets associated with this account.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(0) @@ -314,6 +373,77 @@ Get all budgets. return cmd } +// start list-budget-spend-statuses command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var listBudgetSpendStatusesOverrides []func( + *cobra.Command, + *billing.ListBudgetSpendStatusesRequest, +) + +func newListBudgetSpendStatuses() *cobra.Command { + cmd := &cobra.Command{} + + var listBudgetSpendStatusesReq billing.ListBudgetSpendStatusesRequest + + cmd.Flags().StringVar(&listBudgetSpendStatusesReq.Filter, "filter", listBudgetSpendStatusesReq.Filter, `A filter expression that narrows the returned budgets by workspace.`) + cmd.Flags().IntVar(&listBudgetSpendStatusesReq.PageSize, "page-size", listBudgetSpendStatusesReq.PageSize, `The maximum number of spend statuses to return per page.`) + cmd.Flags().StringVar(&listBudgetSpendStatusesReq.PageToken, "page-token", listBudgetSpendStatusesReq.PageToken, `A page token from a previous ListBudgetSpendStatuses response, used to fetch the next page.`) + + cmd.Use = "list-budget-spend-statuses PARENT" + cmd.Short = `*Beta* List the calling user's budget spend statuses.` + cmd.Long = `This command is in Beta and may change without notice. + +List the calling user's budget spend statuses. + + List the calling user's live spend against the blocking thresholds across the + account's Unity Gateway budgets. Any account user can call this for their own + spend. Spend is reported in USD at list price and is near-real-time, so it may + differ slightly from billing data. By default, returns every budget in the + account that has a blocking threshold. Use filter to narrow results by + workspace. + + Arguments: + PARENT: The parent account whose budget spend statuses to list, of the form + accounts/{account_id}.` + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustAccountClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + a := cmdctx.AccountClient(ctx) + + listBudgetSpendStatusesReq.Parent = args[0] + + response, err := a.Budgets.ListBudgetSpendStatuses(ctx, listBudgetSpendStatusesReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range listBudgetSpendStatusesOverrides { + fn(cmd, &listBudgetSpendStatusesReq) + } + + return cmd +} + // start update command // Slice with functions to override default command behavior. @@ -332,10 +462,8 @@ func newUpdate() *cobra.Command { cmd.Flags().Var(&updateJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Use = "update BUDGET_ID" - cmd.Short = `*Public Preview* Modify budget.` - cmd.Long = `This command is in Public Preview and may change without notice. - -Modify budget. + cmd.Short = `Modify budget.` + cmd.Long = `Modify budget. Updates a budget configuration for an account. Both account and budget configuration are specified by ID. @@ -344,8 +472,8 @@ Modify budget. BUDGET_ID: The Databricks budget configuration ID.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Public Preview" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) diff --git a/cmd/account/iam-v2/iam-v2.go b/cmd/account/iam-v2/iam-v2.go index b36643f1e3e..5e46dfcb478 100644 --- a/cmd/account/iam-v2/iam-v2.go +++ b/cmd/account/iam-v2/iam-v2.go @@ -289,6 +289,7 @@ func newCreateIdentityVisibilityFilter() *cobra.Command { cmd.Flags().StringVar(&createIdentityVisibilityFilterReq.IdentityVisibilityFilterId, "identity-visibility-filter-id", createIdentityVisibilityFilterReq.IdentityVisibilityFilterId, `Optional.`) // TODO: complex arg: exact // TODO: complex arg: prefix + // TODO: complex arg: regex cmd.Use = "create-identity-visibility-filter PARENT PRINCIPAL_TYPE" cmd.Short = `Create an identity-visibility filter in the account.` @@ -296,10 +297,11 @@ func newCreateIdentityVisibilityFilter() *cobra.Command { Creates a group visibility filter in the account. Requires account admin privileges. Set principal_type to GROUP and specify exactly one of exact - (external ID) or prefix (display-name starts with). The filter applies - across all workspaces in the account. A duplicate filter ID or an existing - rule with the same type and match value returns ALREADY_EXISTS. Filters are - immutable; to change a rule, delete it and create a new one. + (external ID), prefix (display-name starts with), or regex (full RE2 + display-name match). The filter applies across all workspaces in the account. + A duplicate filter ID or an existing rule with the same type and match value + returns ALREADY_EXISTS. Filters are immutable; to change a rule, delete it + and create a new one. Arguments: PARENT: Required. The parent account. Format: accounts/{account_id} @@ -2994,6 +2996,9 @@ Update a service principal in the account. fields named in the update mask are modified. Returns the updated ServicePrincipal resource. + For locally managed service principals, is_agent must be set to true or false + when updated. + When AIM is enabled and the service principal is an external identity (its external_id is set), only external_id can be updated; its other fields are sourced from your identity provider. diff --git a/cmd/workspace/agent-kit/agent-kit.go b/cmd/workspace/agent-kit/agent-kit.go index 00718cdbcaf..d88a06e2b38 100644 --- a/cmd/workspace/agent-kit/agent-kit.go +++ b/cmd/workspace/agent-kit/agent-kit.go @@ -51,14 +51,22 @@ APIs for managing agent memory and durable session state. This interface is cmd.AddCommand(newForkSession()) cmd.AddCommand(newGetMemory()) cmd.AddCommand(newGetMemoryStore()) + cmd.AddCommand(newGetMemoryStorePermission()) cmd.AddCommand(newGetSession()) cmd.AddCommand(newGetSessionStore()) + cmd.AddCommand(newGetSessionStorePermission()) + cmd.AddCommand(newGrantMemoryStorePermission()) + cmd.AddCommand(newGrantSessionStorePermission()) cmd.AddCommand(newListMemories()) + cmd.AddCommand(newListMemoryStorePermissions()) cmd.AddCommand(newListMemoryStores()) cmd.AddCommand(newListSessionItems()) + cmd.AddCommand(newListSessionStorePermissions()) cmd.AddCommand(newListSessionStores()) cmd.AddCommand(newListSessions()) cmd.AddCommand(newPopSessionItem()) + cmd.AddCommand(newRevokeMemoryStorePermission()) + cmd.AddCommand(newRevokeSessionStorePermission()) cmd.AddCommand(newSearchMemories()) cmd.AddCommand(newUpdateMemory()) cmd.AddCommand(newUpdateMemoryStore()) @@ -235,6 +243,7 @@ func newCreateMemory() *cobra.Command { cmd.Flags().StringVar(&createMemoryReq.ManagedMemoryEntryId, "managed-memory-entry-id", createMemoryReq.ManagedMemoryEntryId, `Optional caller-selected memory entry ID.`) cmd.Flags().StringVar(&createMemoryReq.ManagedMemoryEntry.Content, "content", createMemoryReq.ManagedMemoryEntry.Content, `Optional free-form memory content.`) cmd.Flags().StringVar(&createMemoryReq.ManagedMemoryEntry.Description, "description", createMemoryReq.ManagedMemoryEntry.Description, `Human-readable description of the memory entry.`) + cmd.Flags().StringVar(&createMemoryReq.ManagedMemoryEntry.Name, "name", createMemoryReq.ManagedMemoryEntry.Name, `Resource name in the form memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}.`) cmd.Flags().StringVar(&createMemoryReq.ManagedMemoryEntry.SessionId, "session-id", createMemoryReq.ManagedMemoryEntry.SessionId, `Optional identifier for the session associated with this memory entry.`) cmd.Flags().Var(&createMemoryReq.ManagedMemoryEntry.SourceType, "source-type", `Which writer created this entry. Supported values: [MANAGED_MEMORY_ENTRY_SOURCE_TYPE_AGENT, MANAGED_MEMORY_ENTRY_SOURCE_TYPE_DREAMER]`) @@ -1151,6 +1160,69 @@ Get a memory store by resource name. return cmd } +// start get-memory-store-permission command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getMemoryStorePermissionOverrides []func( + *cobra.Command, + *agentkit.GetMemoryStorePermissionRequest, +) + +func newGetMemoryStorePermission() *cobra.Command { + cmd := &cobra.Command{} + + var getMemoryStorePermissionReq agentkit.GetMemoryStorePermissionRequest + + cmd.Use = "get-memory-store-permission NAME" + cmd.Short = `Get memory store permission.` + cmd.Long = `Get memory store permission. + + Retrieves the current caller's effective memory store permission. Returns + PERMISSION_LEVEL_UNSPECIFIED when the caller has no access. + + Arguments: + NAME: Resource name in the form memory-stores/{managed_memory_store_id}.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getMemoryStorePermissionReq.Name = args[0] + + response, err := w.AgentKit.GetMemoryStorePermission(ctx, getMemoryStorePermissionReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getMemoryStorePermissionOverrides { + fn(cmd, &getMemoryStorePermissionReq) + } + + return cmd +} + // start get-session command // Slice with functions to override default command behavior. @@ -1274,6 +1346,229 @@ Get a session store. return cmd } +// start get-session-store-permission command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getSessionStorePermissionOverrides []func( + *cobra.Command, + *agentkit.GetSessionStorePermissionRequest, +) + +func newGetSessionStorePermission() *cobra.Command { + cmd := &cobra.Command{} + + var getSessionStorePermissionReq agentkit.GetSessionStorePermissionRequest + + cmd.Use = "get-session-store-permission NAME" + cmd.Short = `Get session store permission.` + cmd.Long = `Get session store permission. + + Retrieves the current caller's effective session store permission. Returns + PERMISSION_LEVEL_UNSPECIFIED when the caller has no access. + + Arguments: + NAME: Resource name in the form session-stores/{session_store_id}.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getSessionStorePermissionReq.Name = args[0] + + response, err := w.AgentKit.GetSessionStorePermission(ctx, getSessionStorePermissionReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getSessionStorePermissionOverrides { + fn(cmd, &getSessionStorePermissionReq) + } + + return cmd +} + +// start grant-memory-store-permission command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var grantMemoryStorePermissionOverrides []func( + *cobra.Command, + *agentkit.GrantMemoryStorePermissionRequest, +) + +func newGrantMemoryStorePermission() *cobra.Command { + cmd := &cobra.Command{} + + var grantMemoryStorePermissionReq agentkit.GrantMemoryStorePermissionRequest + var grantMemoryStorePermissionJson flags.JsonFlag + + cmd.Flags().Var(&grantMemoryStorePermissionJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Use = "grant-memory-store-permission NAME" + cmd.Short = `Grant memory store permission.` + cmd.Long = `Grant memory store permission. + + Grants a READ or WRITE permission on a memory store to a principal. Only the + owner or a workspace admin may grant permissions. + + Arguments: + NAME: Resource name in the form memory-stores/{managed_memory_store_id}.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := grantMemoryStorePermissionJson.Unmarshal(&grantMemoryStorePermissionReq) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } else { + return errors.New("please provide command input in JSON format by specifying the --json flag") + } + grantMemoryStorePermissionReq.Name = args[0] + + response, err := w.AgentKit.GrantMemoryStorePermission(ctx, grantMemoryStorePermissionReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range grantMemoryStorePermissionOverrides { + fn(cmd, &grantMemoryStorePermissionReq) + } + + return cmd +} + +// start grant-session-store-permission command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var grantSessionStorePermissionOverrides []func( + *cobra.Command, + *agentkit.GrantSessionStorePermissionRequest, +) + +func newGrantSessionStorePermission() *cobra.Command { + cmd := &cobra.Command{} + + var grantSessionStorePermissionReq agentkit.GrantSessionStorePermissionRequest + var grantSessionStorePermissionJson flags.JsonFlag + + cmd.Flags().Var(&grantSessionStorePermissionJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Use = "grant-session-store-permission NAME" + cmd.Short = `Grant session store permission.` + cmd.Long = `Grant session store permission. + + Grants a READ or WRITE permission on a session store to a principal. Only the + owner or a workspace admin may grant permissions. + + Arguments: + NAME: Resource name in the form session-stores/{session_store_id}.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := grantSessionStorePermissionJson.Unmarshal(&grantSessionStorePermissionReq) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } else { + return errors.New("please provide command input in JSON format by specifying the --json flag") + } + grantSessionStorePermissionReq.Name = args[0] + + response, err := w.AgentKit.GrantSessionStorePermission(ctx, grantSessionStorePermissionReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range grantSessionStorePermissionOverrides { + fn(cmd, &grantSessionStorePermissionReq) + } + + return cmd +} + // start list-memories command // Slice with functions to override default command behavior. @@ -1360,6 +1655,86 @@ List memory entries. return cmd } +// start list-memory-store-permissions command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var listMemoryStorePermissionsOverrides []func( + *cobra.Command, + *agentkit.ListMemoryStorePermissionsRequest, +) + +func newListMemoryStorePermissions() *cobra.Command { + cmd := &cobra.Command{} + + var listMemoryStorePermissionsReq agentkit.ListMemoryStorePermissionsRequest + // Registered for all paginated methods. Validated at call time in the + // method-call template. Paginated list methods never have Wait or LRO + // branches, so the method-call path is always reached. + var listMemoryStorePermissionsLimit int + + cmd.Flags().IntVar(&listMemoryStorePermissionsReq.PageSize, "page-size", listMemoryStorePermissionsReq.PageSize, `Maximum number of permissions to return.`) + + // Limit flag for total result capping. + cmd.Flags().IntVar(&listMemoryStorePermissionsLimit, "limit", 0, `Maximum number of results to return.`) + + // Hidden pagination flags (internal API parameters). + cmd.Flags().StringVar(&listMemoryStorePermissionsReq.PageToken, "page-token", listMemoryStorePermissionsReq.PageToken, `Pagination token.`) + cmd.Flags().Lookup("page-token").Hidden = true + + cmd.Use = "list-memory-store-permissions PARENT" + cmd.Short = `List memory store permissions.` + cmd.Long = `List memory store permissions. + + Lists explicit memory store grants. Only the owner or a workspace admin may + list permissions. + + Arguments: + PARENT: Resource name of the store, in the form + memory-stores/{managed_memory_store_id}.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + listMemoryStorePermissionsReq.Parent = args[0] + + response := w.AgentKit.ListMemoryStorePermissions(ctx, listMemoryStorePermissionsReq) + if listMemoryStorePermissionsLimit < 0 { + return fmt.Errorf("--limit must be a non-negative integer, got %d", listMemoryStorePermissionsLimit) + } + if listMemoryStorePermissionsLimit > 0 { + ctx = cmdio.WithLimit(ctx, listMemoryStorePermissionsLimit) + } + + return cmdio.RenderIterator(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range listMemoryStorePermissionsOverrides { + fn(cmd, &listMemoryStorePermissionsReq) + } + + return cmd +} + // start list-memory-stores command // Slice with functions to override default command behavior. @@ -1511,6 +1886,86 @@ List session items. return cmd } +// start list-session-store-permissions command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var listSessionStorePermissionsOverrides []func( + *cobra.Command, + *agentkit.ListSessionStorePermissionsRequest, +) + +func newListSessionStorePermissions() *cobra.Command { + cmd := &cobra.Command{} + + var listSessionStorePermissionsReq agentkit.ListSessionStorePermissionsRequest + // Registered for all paginated methods. Validated at call time in the + // method-call template. Paginated list methods never have Wait or LRO + // branches, so the method-call path is always reached. + var listSessionStorePermissionsLimit int + + cmd.Flags().IntVar(&listSessionStorePermissionsReq.PageSize, "page-size", listSessionStorePermissionsReq.PageSize, `Maximum number of permissions to return.`) + + // Limit flag for total result capping. + cmd.Flags().IntVar(&listSessionStorePermissionsLimit, "limit", 0, `Maximum number of results to return.`) + + // Hidden pagination flags (internal API parameters). + cmd.Flags().StringVar(&listSessionStorePermissionsReq.PageToken, "page-token", listSessionStorePermissionsReq.PageToken, `Pagination token.`) + cmd.Flags().Lookup("page-token").Hidden = true + + cmd.Use = "list-session-store-permissions PARENT" + cmd.Short = `List session store permissions.` + cmd.Long = `List session store permissions. + + Lists explicit session store grants. Only the owner or a workspace admin may + list permissions. + + Arguments: + PARENT: Resource name of the store, in the form + session-stores/{session_store_id}.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + listSessionStorePermissionsReq.Parent = args[0] + + response := w.AgentKit.ListSessionStorePermissions(ctx, listSessionStorePermissionsReq) + if listSessionStorePermissionsLimit < 0 { + return fmt.Errorf("--limit must be a non-negative integer, got %d", listSessionStorePermissionsLimit) + } + if listSessionStorePermissionsLimit > 0 { + ctx = cmdio.WithLimit(ctx, listSessionStorePermissionsLimit) + } + + return cmdio.RenderIterator(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range listSessionStorePermissionsOverrides { + fn(cmd, &listSessionStorePermissionsReq) + } + + return cmd +} + // start list-session-stores command // Slice with functions to override default command behavior. @@ -1725,6 +2180,168 @@ Pop an item from a session. return cmd } +// start revoke-memory-store-permission command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var revokeMemoryStorePermissionOverrides []func( + *cobra.Command, + *agentkit.RevokeMemoryStorePermissionRequest, +) + +func newRevokeMemoryStorePermission() *cobra.Command { + cmd := &cobra.Command{} + + var revokeMemoryStorePermissionReq agentkit.RevokeMemoryStorePermissionRequest + var revokeMemoryStorePermissionJson flags.JsonFlag + + cmd.Flags().Var(&revokeMemoryStorePermissionJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Use = "revoke-memory-store-permission NAME" + cmd.Short = `Revoke memory store permission.` + cmd.Long = `Revoke memory store permission. + + Removes a principal's explicit READ and WRITE grants on a memory store. Only + the owner or a workspace admin may revoke permissions. Ownership and inherited + access are unaffected. + + Arguments: + NAME: Resource name in the form memory-stores/{managed_memory_store_id}.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := revokeMemoryStorePermissionJson.Unmarshal(&revokeMemoryStorePermissionReq) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } else { + return errors.New("please provide command input in JSON format by specifying the --json flag") + } + revokeMemoryStorePermissionReq.Name = args[0] + + response, err := w.AgentKit.RevokeMemoryStorePermission(ctx, revokeMemoryStorePermissionReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range revokeMemoryStorePermissionOverrides { + fn(cmd, &revokeMemoryStorePermissionReq) + } + + return cmd +} + +// start revoke-session-store-permission command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var revokeSessionStorePermissionOverrides []func( + *cobra.Command, + *agentkit.RevokeSessionStorePermissionRequest, +) + +func newRevokeSessionStorePermission() *cobra.Command { + cmd := &cobra.Command{} + + var revokeSessionStorePermissionReq agentkit.RevokeSessionStorePermissionRequest + var revokeSessionStorePermissionJson flags.JsonFlag + + cmd.Flags().Var(&revokeSessionStorePermissionJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Use = "revoke-session-store-permission NAME" + cmd.Short = `Revoke session store permission.` + cmd.Long = `Revoke session store permission. + + Removes a principal's explicit READ and WRITE grants on a session store. Only + the owner or a workspace admin may revoke permissions. Ownership and inherited + access are unaffected. + + Arguments: + NAME: Resource name in the form session-stores/{session_store_id}.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := revokeSessionStorePermissionJson.Unmarshal(&revokeSessionStorePermissionReq) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } else { + return errors.New("please provide command input in JSON format by specifying the --json flag") + } + revokeSessionStorePermissionReq.Name = args[0] + + response, err := w.AgentKit.RevokeSessionStorePermission(ctx, revokeSessionStorePermissionReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range revokeSessionStorePermissionOverrides { + fn(cmd, &revokeSessionStorePermissionReq) + } + + return cmd +} + // start search-memories command // Slice with functions to override default command behavior. @@ -1858,6 +2475,7 @@ func newUpdateMemory() *cobra.Command { cmd.Flags().StringVar(&updateMemoryReq.ManagedMemoryEntry.Content, "content", updateMemoryReq.ManagedMemoryEntry.Content, `Optional free-form memory content.`) cmd.Flags().StringVar(&updateMemoryReq.ManagedMemoryEntry.Description, "description", updateMemoryReq.ManagedMemoryEntry.Description, `Human-readable description of the memory entry.`) + cmd.Flags().StringVar(&updateMemoryReq.ManagedMemoryEntry.Name, "name", updateMemoryReq.ManagedMemoryEntry.Name, `Resource name in the form memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}.`) cmd.Flags().StringVar(&updateMemoryReq.ManagedMemoryEntry.SessionId, "session-id", updateMemoryReq.ManagedMemoryEntry.SessionId, `Optional identifier for the session associated with this memory entry.`) cmd.Flags().Var(&updateMemoryReq.ManagedMemoryEntry.SourceType, "source-type", `Which writer created this entry. Supported values: [MANAGED_MEMORY_ENTRY_SOURCE_TYPE_AGENT, MANAGED_MEMORY_ENTRY_SOURCE_TYPE_DREAMER]`) @@ -1873,6 +2491,7 @@ Update a memory entry. Arguments: NAME: Resource name in the form memory-stores/{managed_memory_store_id}/entries/{managed_memory_entry_id}. + Required for updates; assigned by the service on creation. UPDATE_MASK: Fields to update. Only content and description may be updated. ACTOR_ID: Customer-provided identifier for the actor whose memory this entry represents. diff --git a/cmd/workspace/ai-gateway/ai-gateway.go b/cmd/workspace/ai-gateway/ai-gateway.go index 8dd93402cc2..b2860368f0c 100644 --- a/cmd/workspace/ai-gateway/ai-gateway.go +++ b/cmd/workspace/ai-gateway/ai-gateway.go @@ -1469,7 +1469,7 @@ func newListModelServices() *cobra.Command { Requires USE_CATALOG on the parent catalog and USE_SCHEMA on the parent schema. Only model services the caller can access (as owner or through - EXECUTE, READ_METADATA, or MANAGE) are returned.` + EXECUTE, READ_METADATA, or MANAGE) are returned by default.` cmd.Annotations = make(map[string]string) cmd.Annotations["launch_stage"] = "GA" diff --git a/cmd/workspace/apps/apps.go b/cmd/workspace/apps/apps.go index af088696b8b..4b756f47d23 100644 --- a/cmd/workspace/apps/apps.go +++ b/cmd/workspace/apps/apps.go @@ -235,8 +235,10 @@ func newCreateSpace() *cobra.Command { // TODO: array: user_api_scopes cmd.Use = "create-space NAME" - cmd.Short = `Create an app space.` - cmd.Long = `Create an app space. + cmd.Short = `*Beta* Create an app space.` + cmd.Long = `This command is in Beta and may change without notice. + +Create an app space. Creates a new app space. @@ -250,12 +252,9 @@ func newCreateSpace() *cobra.Command { alphanumeric characters and hyphens. It must be unique within the workspace.` - // This command is being previewed; hide from help output. - cmd.Hidden = true - cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" cmd.Args = func(cmd *cobra.Command, args []string) error { if cmd.Flags().Changed("json") { @@ -601,8 +600,10 @@ func newDeleteSpace() *cobra.Command { cmd.Flags().DurationVar(&deleteSpaceTimeout, "timeout", 0, `maximum amount of time to reach DONE state`) cmd.Use = "delete-space NAME" - cmd.Short = `Delete an app space.` - cmd.Long = `Delete an app space. + cmd.Short = `*Beta* Delete an app space.` + cmd.Long = `This command is in Beta and may change without notice. + +Delete an app space. Deletes an app space. @@ -614,12 +615,9 @@ func newDeleteSpace() *cobra.Command { Arguments: NAME: The name of the app space.` - // This command is being previewed; hide from help output. - cmd.Hidden = true - cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -1048,20 +1046,19 @@ func newGetSpace() *cobra.Command { var getSpaceReq apps.GetSpaceRequest cmd.Use = "get-space NAME" - cmd.Short = `Get an app space.` - cmd.Long = `Get an app space. + cmd.Short = `*Beta* Get an app space.` + cmd.Long = `This command is in Beta and may change without notice. + +Get an app space. Retrieves information for the app space with the supplied name. Arguments: NAME: The name of the app space.` - // This command is being previewed; hide from help output. - cmd.Hidden = true - cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -1110,20 +1107,19 @@ func newGetSpaceOperation() *cobra.Command { var getSpaceOperationReq apps.GetOperationRequest cmd.Use = "get-space-operation NAME" - cmd.Short = `Get the status of an app space operation.` - cmd.Long = `Get the status of an app space operation. + cmd.Short = `*Beta* Get the status of an app space operation.` + cmd.Long = `This command is in Beta and may change without notice. + +Get the status of an app space operation. Gets the status of an app space update operation. Arguments: NAME: The name of the operation resource.` - // This command is being previewed; hide from help output. - cmd.Hidden = true - cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -1390,17 +1386,16 @@ func newListSpaces() *cobra.Command { cmd.Flags().Lookup("page-token").Hidden = true cmd.Use = "list-spaces" - cmd.Short = `List app spaces.` - cmd.Long = `List app spaces. + cmd.Short = `*Beta* List app spaces.` + cmd.Long = `This command is in Beta and may change without notice. - Lists all app spaces in the workspace.` +List app spaces. - // This command is being previewed; hide from help output. - cmd.Hidden = true + Lists all app spaces in the workspace.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(0) @@ -1963,8 +1958,10 @@ func newUpdateSpace() *cobra.Command { // TODO: array: user_api_scopes cmd.Use = "update-space NAME UPDATE_MASK" - cmd.Short = `Update an app space.` - cmd.Long = `Update an app space. + cmd.Short = `*Beta* Update an app space.` + cmd.Long = `This command is in Beta and may change without notice. + +Update an app space. Updates an app space. The update process is asynchronous and the status of the update can be checked with the GetSpaceOperation method. @@ -1990,12 +1987,9 @@ func newUpdateSpace() *cobra.Command { wildcards, as it can lead to unintended results if the API changes in the future.` - // This command is being previewed; hide from help output. - cmd.Hidden = true - cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" - cmd.Annotations["launch_stage_display"] = "Private Preview" + cmd.Annotations["launch_stage"] = "PUBLIC_BETA" + cmd.Annotations["launch_stage_display"] = "Beta" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(2) diff --git a/cmd/workspace/database/database.go b/cmd/workspace/database/database.go index af4e28dbc03..7c9107e708c 100644 --- a/cmd/workspace/database/database.go +++ b/cmd/workspace/database/database.go @@ -25,7 +25,12 @@ func New() *cobra.Command { Short: `*Public Preview* Database Instances provide access to a database via REST API or direct SQL.`, Long: `This command is in Public Preview and may change without notice. -Database Instances provide access to a database via REST API or direct SQL.`, +Database Instances provide access to a database via REST API or direct SQL. + + For new workloads, Databricks recommends the [Postgres API], which supports + the latest Lakebase features. + + [Postgres API]: https://docs.databricks.com/api/postgres/v1/postgres`, GroupID: "database", RunE: root.ReportUnknownSubcommand, } @@ -94,6 +99,13 @@ func newCreateDatabaseCatalog() *cobra.Command { Create a Database Catalog. + Create a Database Catalog. + + For new workloads, Databricks recommends the Postgres API equivalent: [Create + a catalog]. + + [Create a catalog]: https://docs.databricks.com/api/postgres/v1/create-catalog + Arguments: NAME: The name of the catalog in UC. DATABASE_INSTANCE_NAME: The name of the DatabaseInstance housing the database. @@ -204,6 +216,13 @@ func newCreateDatabaseInstance() *cobra.Command { Create a Database Instance. + Create a Database Instance. + + For new workloads, Databricks recommends the Postgres API equivalent: [Create + a project]. + + [Create a project]: https://docs.databricks.com/api/postgres/v1/create-project + Arguments: NAME: The name of the instance. This is the unique identifier for the instance.` @@ -305,6 +324,13 @@ func newCreateDatabaseInstanceRole() *cobra.Command { cmd.Short = `Create a role for a Database Instance.` cmd.Long = `Create a role for a Database Instance. + Create a role for a Database Instance. + + For new workloads, Databricks recommends the Postgres API equivalent: [Create + a role]. + + [Create a role]: https://docs.databricks.com/api/postgres/v1/create-role + Arguments: INSTANCE_NAME: NAME: The name of the role. This is the unique identifier for the role in an @@ -491,6 +517,13 @@ func newCreateSyncedDatabaseTable() *cobra.Command { Create a Synced Database Table. + Create a Synced Database Table. + + For new workloads, Databricks recommends the Postgres API equivalent: [Create + a synced table]. + + [Create a synced table]: https://docs.databricks.com/api/postgres/v1/create-synced-table + Arguments: NAME: Full three-part (catalog, schema, table) name of the table.` @@ -569,7 +602,14 @@ func newDeleteDatabaseCatalog() *cobra.Command { cmd.Short = `*Public Preview* Delete a Database Catalog.` cmd.Long = `This command is in Public Preview and may change without notice. -Delete a Database Catalog.` +Delete a Database Catalog. + + Delete a Database Catalog. + + For new workloads, Databricks recommends the Postgres API equivalent: [Delete + a catalog]. + + [Delete a catalog]: https://docs.databricks.com/api/postgres/v1/delete-catalog` cmd.Annotations = make(map[string]string) cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" @@ -629,6 +669,13 @@ func newDeleteDatabaseInstance() *cobra.Command { Delete a Database Instance. + Delete a Database Instance. + + For new workloads, Databricks recommends the Postgres API equivalent: [Delete + a project]. + + [Delete a project]: https://docs.databricks.com/api/postgres/v1/delete-project + Arguments: NAME: Name of the instance to delete.` @@ -688,7 +735,12 @@ func newDeleteDatabaseInstanceRole() *cobra.Command { cmd.Short = `Delete a role for a Database Instance.` cmd.Long = `Delete a role for a Database Instance. - Deletes a role for a Database Instance.` + Deletes a role for a Database Instance. + + For new workloads, Databricks recommends the Postgres API equivalent: [Delete + a role]. + + [Delete a role]: https://docs.databricks.com/api/postgres/v1/delete-role` // This command is being previewed; hide from help output. cmd.Hidden = true @@ -804,7 +856,14 @@ func newDeleteSyncedDatabaseTable() *cobra.Command { cmd.Short = `*Public Preview* Delete a Synced Database Table.` cmd.Long = `This command is in Public Preview and may change without notice. -Delete a Synced Database Table.` +Delete a Synced Database Table. + + Delete a Synced Database Table. + + For new workloads, Databricks recommends the Postgres API equivalent: [Delete + a synced table]. + + [Delete a synced table]: https://docs.databricks.com/api/postgres/v1/delete-synced-table` cmd.Annotations = make(map[string]string) cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" @@ -922,7 +981,14 @@ func newGenerateDatabaseCredential() *cobra.Command { cmd.Short = `*Public Preview* Generates a credential that can be used to access database instances.` cmd.Long = `This command is in Public Preview and may change without notice. -Generates a credential that can be used to access database instances.` +Generates a credential that can be used to access database instances. + + Generates a credential that can be used to access database instances. + + For new workloads, Databricks recommends the Postgres API equivalent: + [Generate a database credential]. + + [Generate a database credential]: https://docs.databricks.com/api/postgres/v1/generate-database-credential` cmd.Annotations = make(map[string]string) cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" @@ -989,7 +1055,14 @@ func newGetDatabaseCatalog() *cobra.Command { cmd.Short = `*Public Preview* Get a Database Catalog.` cmd.Long = `This command is in Public Preview and may change without notice. -Get a Database Catalog.` +Get a Database Catalog. + + Get a Database Catalog. + + For new workloads, Databricks recommends the Postgres API equivalent: [Get a + catalog]. + + [Get a catalog]: https://docs.databricks.com/api/postgres/v1/get-catalog` cmd.Annotations = make(map[string]string) cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" @@ -1047,6 +1120,13 @@ func newGetDatabaseInstance() *cobra.Command { Get a Database Instance. + Get a Database Instance. + + For new workloads, Databricks recommends the Postgres API equivalent: [Get a + project]. + + [Get a project]: https://docs.databricks.com/api/postgres/v1/get-project + Arguments: NAME: Name of the cluster to get.` @@ -1104,7 +1184,12 @@ func newGetDatabaseInstanceRole() *cobra.Command { cmd.Short = `Get a role for a Database Instance.` cmd.Long = `Get a role for a Database Instance. - Gets a role for a Database Instance.` + Gets a role for a Database Instance. + + For new workloads, Databricks recommends the Postgres API equivalent: [Get a + role]. + + [Get a role]: https://docs.databricks.com/api/postgres/v1/get-role` // This command is being previewed; hide from help output. cmd.Hidden = true @@ -1220,7 +1305,14 @@ func newGetSyncedDatabaseTable() *cobra.Command { cmd.Short = `*Public Preview* Get a Synced Database Table.` cmd.Long = `This command is in Public Preview and may change without notice. -Get a Synced Database Table.` +Get a Synced Database Table. + + Get a Synced Database Table. + + For new workloads, Databricks recommends the Postgres API equivalent: [Get a + synced table]. + + [Get a synced table]: https://docs.databricks.com/api/postgres/v1/get-synced-table` cmd.Annotations = make(map[string]string) cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" @@ -1367,11 +1459,12 @@ func newListDatabaseInstanceRoles() *cobra.Command { cmd.Short = `List roles for a Database Instance.` cmd.Long = `List roles for a Database Instance. - START OF PG ROLE APIs Section These APIs are marked a PUBLIC with stage < - PUBLIC_PREVIEW. With more recent Lakebase V2 plans, we don't plan to ever - advance these to PUBLIC_PREVIEW. These APIs will remain effectively - undocumented/UI-only and we'll aim for a new public roles API as part of V2 - PuPr.` + List roles for a Database Instance. + + For new workloads, Databricks recommends the Postgres API equivalent: [List + roles]. + + [List roles]: https://docs.databricks.com/api/postgres/v1/list-roles` // This command is being previewed; hide from help output. cmd.Hidden = true @@ -1446,7 +1539,14 @@ func newListDatabaseInstances() *cobra.Command { cmd.Short = `*Public Preview* List Database Instances.` cmd.Long = `This command is in Public Preview and may change without notice. -List Database Instances.` +List Database Instances. + + List Database Instances. + + For new workloads, Databricks recommends the Postgres API equivalent: [List + projects]. + + [List projects]: https://docs.databricks.com/api/postgres/v1/list-projects` cmd.Annotations = make(map[string]string) cmd.Annotations["launch_stage"] = "PUBLIC_PREVIEW" @@ -1696,6 +1796,14 @@ func newUpdateDatabaseInstance() *cobra.Command { Update a Database Instance. + Update a Database Instance. + + For new workloads, Databricks recommends the Postgres API equivalents: [Update + a project] and [Update an endpoint]. + + [Update a project]: https://docs.databricks.com/api/postgres/v1/update-project + [Update an endpoint]: https://docs.databricks.com/api/postgres/v1/update-endpoint + Arguments: NAME: The name of the instance. This is the unique identifier for the instance. UPDATE_MASK: The list of fields to update. If unspecified, all fields will be updated diff --git a/cmd/workspace/feature-engineering/feature-engineering.go b/cmd/workspace/feature-engineering/feature-engineering.go index 5b2dcc7c833..d0a534b232d 100644 --- a/cmd/workspace/feature-engineering/feature-engineering.go +++ b/cmd/workspace/feature-engineering/feature-engineering.go @@ -41,14 +41,17 @@ func New() *cobra.Command { cmd.AddCommand(newCancelOperation()) cmd.AddCommand(newCreateFeature()) cmd.AddCommand(newCreateKafkaConfig()) + cmd.AddCommand(newCreateMaterializationSet()) cmd.AddCommand(newCreateMaterializedFeature()) cmd.AddCommand(newCreateStream()) cmd.AddCommand(newDeleteFeature()) cmd.AddCommand(newDeleteKafkaConfig()) + cmd.AddCommand(newDeleteMaterializationSet()) cmd.AddCommand(newDeleteMaterializedFeature()) cmd.AddCommand(newDeleteStream()) cmd.AddCommand(newGetFeature()) cmd.AddCommand(newGetKafkaConfig()) + cmd.AddCommand(newGetMaterializationSet()) cmd.AddCommand(newGetMaterializedFeature()) cmd.AddCommand(newGetOperation()) cmd.AddCommand(newGetStream()) @@ -59,6 +62,7 @@ func New() *cobra.Command { cmd.AddCommand(newPurgeFeatureEntities()) cmd.AddCommand(newUpdateFeature()) cmd.AddCommand(newUpdateKafkaConfig()) + cmd.AddCommand(newUpdateMaterializationSet()) cmd.AddCommand(newUpdateMaterializedFeature()) cmd.AddCommand(newUpdateStream()) @@ -467,6 +471,123 @@ func newCreateKafkaConfig() *cobra.Command { return cmd } +// start create-materialization-set command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var createMaterializationSetOverrides []func( + *cobra.Command, + *ml.CreateMaterializationSetRequest, +) + +func newCreateMaterializationSet() *cobra.Command { + cmd := &cobra.Command{} + + var createMaterializationSetReq ml.CreateMaterializationSetRequest + createMaterializationSetReq.MaterializationSet = ml.MaterializationSet{} + var createMaterializationSetJson flags.JsonFlag + + var createMaterializationSetSkipWait bool + var createMaterializationSetTimeout time.Duration + + cmd.Flags().BoolVar(&createMaterializationSetSkipWait, "no-wait", createMaterializationSetSkipWait, `do not wait to reach DONE state`) + cmd.Flags().DurationVar(&createMaterializationSetTimeout, "timeout", 0, `maximum amount of time to reach DONE state`) + + cmd.Flags().Var(&createMaterializationSetJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&createMaterializationSetReq.RequestId, "request-id", createMaterializationSetReq.RequestId, `Idempotency token for the request.`) + cmd.Flags().StringVar(&createMaterializationSetReq.MaterializationSet.MaterializationSetId, "materialization-set-id", createMaterializationSetReq.MaterializationSet.MaterializationSetId, `Server-assigned unique identifier for the materialization set.`) + // TODO: array: materialized_features + + cmd.Use = "create-materialization-set" + cmd.Short = `Create a materialization set.` + cmd.Long = `Create a materialization set. + + This is a long-running operation. By default, the command waits for the + operation to complete. Use --no-wait to return immediately with the raw + operation details. The operation's 'name' field can then be used to poll for + completion using the get-operation command.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(0) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := createMaterializationSetJson.Unmarshal(&createMaterializationSetReq.MaterializationSet) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + + // Determine which mode to execute based on flags. + switch { + case createMaterializationSetSkipWait: + wait, err := w.FeatureEngineering.CreateMaterializationSet(ctx, createMaterializationSetReq) + if err != nil { + return err + } + + // Return operation immediately without waiting. + operation, err := w.FeatureEngineering.GetOperation(ctx, ml.GetOperationRequest{ + Name: wait.Name(), + }) + if err != nil { + return err + } + return cmdio.Render(ctx, operation) + + default: + wait, err := w.FeatureEngineering.CreateMaterializationSet(ctx, createMaterializationSetReq) + if err != nil { + return err + } + + // Show spinner while waiting for completion. + sp := cmdio.NewSpinner(ctx) + sp.Update("Waiting for create-materialization-set to complete...") + + // Wait for completion. + opts := api.WithTimeout(createMaterializationSetTimeout) + response, err := wait.Wait(ctx, opts) + if err != nil { + return err + } + sp.Close() + return cmdio.Render(ctx, response) + } + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range createMaterializationSetOverrides { + fn(cmd, &createMaterializationSetReq) + } + + return cmd +} + // start create-materialized-feature command // Slice with functions to override default command behavior. @@ -805,6 +926,115 @@ func newDeleteKafkaConfig() *cobra.Command { return cmd } +// start delete-materialization-set command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var deleteMaterializationSetOverrides []func( + *cobra.Command, + *ml.DeleteMaterializationSetRequest, +) + +func newDeleteMaterializationSet() *cobra.Command { + cmd := &cobra.Command{} + + var deleteMaterializationSetReq ml.DeleteMaterializationSetRequest + + var deleteMaterializationSetSkipWait bool + var deleteMaterializationSetTimeout time.Duration + + cmd.Flags().BoolVar(&deleteMaterializationSetSkipWait, "no-wait", deleteMaterializationSetSkipWait, `do not wait to reach DONE state`) + cmd.Flags().DurationVar(&deleteMaterializationSetTimeout, "timeout", 0, `maximum amount of time to reach DONE state`) + + cmd.Flags().BoolVar(&deleteMaterializationSetReq.AllowMissing, "allow-missing", deleteMaterializationSetReq.AllowMissing, `Return success instead of NOT_FOUND when the set does not exist, so a repeated destroy is idempotent.`) + cmd.Flags().StringVar(&deleteMaterializationSetReq.RequestId, "request-id", deleteMaterializationSetReq.RequestId, `Idempotency token for the request.`) + + cmd.Use = "delete-materialization-set MATERIALIZATION_SET_ID" + cmd.Short = `Delete a materialization set.` + cmd.Long = `Delete a materialization set. + + Delete a materialization set and every materialized feature in it. The set is + gone afterwards, so a later read returns NOT_FOUND and the set id is free to + use again. + + This is a long-running operation. By default, the command waits for the + operation to complete. Use --no-wait to return immediately with the raw + operation details. The operation's 'name' field can then be used to poll for + completion using the get-operation command. + + Arguments: + MATERIALIZATION_SET_ID: The ID of the materialization set to delete.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + deleteMaterializationSetReq.MaterializationSetId = args[0] + + // Determine which mode to execute based on flags. + switch { + case deleteMaterializationSetSkipWait: + wait, err := w.FeatureEngineering.DeleteMaterializationSet(ctx, deleteMaterializationSetReq) + if err != nil { + return err + } + + // Return operation immediately without waiting. + operation, err := w.FeatureEngineering.GetOperation(ctx, ml.GetOperationRequest{ + Name: wait.Name(), + }) + if err != nil { + return err + } + return cmdio.Render(ctx, operation) + + default: + wait, err := w.FeatureEngineering.DeleteMaterializationSet(ctx, deleteMaterializationSetReq) + if err != nil { + return err + } + + // Show spinner while waiting for completion. + sp := cmdio.NewSpinner(ctx) + sp.Update("Waiting for delete-materialization-set to complete...") + + // Wait for completion. + opts := api.WithTimeout(deleteMaterializationSetTimeout) + + err = wait.Wait(ctx, opts) + if err != nil { + return err + } + sp.Close() + return nil + } + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range deleteMaterializationSetOverrides { + fn(cmd, &deleteMaterializationSetReq) + } + + return cmd +} + // start delete-materialized-feature command // Slice with functions to override default command behavior. @@ -1042,6 +1272,70 @@ func newGetKafkaConfig() *cobra.Command { return cmd } +// start get-materialization-set command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var getMaterializationSetOverrides []func( + *cobra.Command, + *ml.GetMaterializationSetRequest, +) + +func newGetMaterializationSet() *cobra.Command { + cmd := &cobra.Command{} + + var getMaterializationSetReq ml.GetMaterializationSetRequest + + cmd.Use = "get-materialization-set MATERIALIZATION_SET_ID" + cmd.Short = `Get a materialization set.` + cmd.Long = `Get a materialization set. + + Get a materialization set and the materialized features in it. A set whose + materialized feature members have all been deleted is returned with an empty + member list. + + Arguments: + MATERIALIZATION_SET_ID: The ID of the materialization set.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + getMaterializationSetReq.MaterializationSetId = args[0] + + response, err := w.FeatureEngineering.GetMaterializationSet(ctx, getMaterializationSetReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range getMaterializationSetOverrides { + fn(cmd, &getMaterializationSetReq) + } + + return cmd +} + // start get-materialized-feature command // Slice with functions to override default command behavior. @@ -1534,6 +1828,7 @@ func newPurgeFeatureEntities() *cobra.Command { cmd.Flags().Var(&purgeFeatureEntitiesJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Flags().StringVar(&purgeFeatureEntitiesReq.BudgetPolicyId, "budget-policy-id", purgeFeatureEntitiesReq.BudgetPolicyId, `The budget policy ID, in UUID format, used to attribute the serverless compute cost of this purge.`) + cmd.Flags().BoolVar(&purgeFeatureEntitiesReq.DeleteRows, "delete-rows", purgeFeatureEntitiesReq.DeleteRows, `If false feature values are set to null on purge but rows are not deleted.`) cmd.Flags().StringVar(&purgeFeatureEntitiesReq.RequestId, "request-id", purgeFeatureEntitiesReq.RequestId, `Optional UUID4 idempotency token for the request.`) // TODO: map via StringToStringVar: tags @@ -1853,6 +2148,136 @@ func newUpdateKafkaConfig() *cobra.Command { return cmd } +// start update-materialization-set command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var updateMaterializationSetOverrides []func( + *cobra.Command, + *ml.UpdateMaterializationSetRequest, +) + +func newUpdateMaterializationSet() *cobra.Command { + cmd := &cobra.Command{} + + var updateMaterializationSetReq ml.UpdateMaterializationSetRequest + updateMaterializationSetReq.MaterializationSet = ml.MaterializationSet{} + var updateMaterializationSetJson flags.JsonFlag + + var updateMaterializationSetSkipWait bool + var updateMaterializationSetTimeout time.Duration + + cmd.Flags().BoolVar(&updateMaterializationSetSkipWait, "no-wait", updateMaterializationSetSkipWait, `do not wait to reach DONE state`) + cmd.Flags().DurationVar(&updateMaterializationSetTimeout, "timeout", 0, `maximum amount of time to reach DONE state`) + + cmd.Flags().Var(&updateMaterializationSetJson, "json", `either inline JSON string or @path/to/file.json with request body`) + + cmd.Flags().StringVar(&updateMaterializationSetReq.RequestId, "request-id", updateMaterializationSetReq.RequestId, `Idempotency token for the request.`) + cmd.Flags().StringVar(&updateMaterializationSetReq.MaterializationSet.MaterializationSetId, "materialization-set-id", updateMaterializationSetReq.MaterializationSet.MaterializationSetId, `Server-assigned unique identifier for the materialization set.`) + // TODO: array: materialized_features + + cmd.Use = "update-materialization-set MATERIALIZATION_SET_ID UPDATE_MASK" + cmd.Short = `Update a materialization set.` + cmd.Long = `Update a materialization set. + + Update the materialization set's state to match the supplied materialization + set. Changes are applied member by member and are not atomic: when one member + fails, the error reports which members were already changed. + + This is a long-running operation. By default, the command waits for the + operation to complete. Use --no-wait to return immediately with the raw + operation details. The operation's 'name' field can then be used to poll for + completion using the get-operation command. + + Arguments: + MATERIALIZATION_SET_ID: Server-assigned unique identifier for the materialization set. + UPDATE_MASK: The fields to update. Only 'materialized_features' is supported.` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(2) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + if cmd.Flags().Changed("json") { + diags := updateMaterializationSetJson.Unmarshal(&updateMaterializationSetReq.MaterializationSet) + if diags.HasError() { + return diags.Error() + } + if len(diags) > 0 { + err := cmdio.RenderDiagnostics(ctx, diags) + if err != nil { + return err + } + } + } + updateMaterializationSetReq.MaterializationSetId = args[0] + if args[1] != "" { + updateMaskArray := strings.Split(args[1], ",") + updateMaterializationSetReq.UpdateMask = *fieldmask.New(updateMaskArray) + } + + // Determine which mode to execute based on flags. + switch { + case updateMaterializationSetSkipWait: + wait, err := w.FeatureEngineering.UpdateMaterializationSet(ctx, updateMaterializationSetReq) + if err != nil { + return err + } + + // Return operation immediately without waiting. + operation, err := w.FeatureEngineering.GetOperation(ctx, ml.GetOperationRequest{ + Name: wait.Name(), + }) + if err != nil { + return err + } + return cmdio.Render(ctx, operation) + + default: + wait, err := w.FeatureEngineering.UpdateMaterializationSet(ctx, updateMaterializationSetReq) + if err != nil { + return err + } + + // Show spinner while waiting for completion. + sp := cmdio.NewSpinner(ctx) + sp.Update("Waiting for update-materialization-set to complete...") + + // Wait for completion. + opts := api.WithTimeout(updateMaterializationSetTimeout) + response, err := wait.Wait(ctx, opts) + if err != nil { + return err + } + sp.Close() + return cmdio.Render(ctx, response) + } + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range updateMaterializationSetOverrides { + fn(cmd, &updateMaterializationSetReq) + } + + return cmd +} + // start update-materialized-feature command // Slice with functions to override default command behavior. diff --git a/cmd/workspace/pipelines/pipelines.go b/cmd/workspace/pipelines/pipelines.go index fdbe1756026..6806a5f7b70 100644 --- a/cmd/workspace/pipelines/pipelines.go +++ b/cmd/workspace/pipelines/pipelines.go @@ -986,8 +986,10 @@ func newStartUpdate() *cobra.Command { cmd.Flags().BoolVar(&startUpdateReq.Development, "development", startUpdateReq.Development, `Whether the update is started in the development mode.`) cmd.Flags().BoolVar(&startUpdateReq.FullRefresh, "full-refresh", startUpdateReq.FullRefresh, `If true, this update will reset all tables before running.`) // TODO: array: full_refresh_selection + // TODO: array: full_refresh_selection_by_path // TODO: map via StringToStringVar: parameters // TODO: array: refresh_selection + // TODO: array: refresh_selection_by_path // TODO: array: replace_where_overrides // TODO: array: reset_checkpoint_selection // TODO: complex arg: rewind_spec diff --git a/cmd/workspace/postgres/postgres.go b/cmd/workspace/postgres/postgres.go index d8e4689445f..8d17ca5e04f 100644 --- a/cmd/workspace/postgres/postgres.go +++ b/cmd/workspace/postgres/postgres.go @@ -1161,10 +1161,8 @@ func newCreateSnapshot() *cobra.Command { // TODO: complex arg: status cmd.Use = "create-snapshot PARENT SNAPSHOT_ID" - cmd.Short = `*Beta* Create a Snapshot.` - cmd.Long = `This command is in Beta and may change without notice. - -Create a Snapshot. + cmd.Short = `Create a Snapshot.` + cmd.Long = `Create a Snapshot. Creates a snapshot, an immutable point-in-time copy of a branch's data, within the project. @@ -1180,8 +1178,8 @@ Create a Snapshot. snapshot resource name and cannot be changed after creation.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_BETA" - cmd.Annotations["launch_stage_display"] = "Beta" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(2) @@ -2236,10 +2234,8 @@ func newDeleteSnapshot() *cobra.Command { cmd.Flags().DurationVar(&deleteSnapshotTimeout, "timeout", 0, `maximum amount of time to reach DONE state`) cmd.Use = "delete-snapshot NAME" - cmd.Short = `*Beta* Delete a Snapshot.` - cmd.Long = `This command is in Beta and may change without notice. - -Delete a Snapshot. + cmd.Short = `Delete a Snapshot.` + cmd.Long = `Delete a Snapshot. Deletes the specified snapshot. @@ -2253,8 +2249,8 @@ Delete a Snapshot. projects/{project_id}/snapshots/{snapshot_id}` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_BETA" - cmd.Annotations["launch_stage_display"] = "Beta" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -3152,10 +3148,8 @@ func newGetSnapshot() *cobra.Command { var getSnapshotReq postgres.GetSnapshotRequest cmd.Use = "get-snapshot NAME" - cmd.Short = `*Beta* Get a Snapshot.` - cmd.Long = `This command is in Beta and may change without notice. - -Get a Snapshot. + cmd.Short = `Get a Snapshot.` + cmd.Long = `Get a Snapshot. Retrieves information about the specified snapshot. @@ -3164,8 +3158,8 @@ Get a Snapshot. projects/{project_id}/snapshots/{snapshot_id}` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_BETA" - cmd.Annotations["launch_stage_display"] = "Beta" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -3214,10 +3208,8 @@ func newGetSnapshotSchedule() *cobra.Command { var getSnapshotScheduleReq postgres.GetSnapshotScheduleRequest cmd.Use = "get-snapshot-schedule NAME" - cmd.Short = `*Beta* Get a Snapshot Schedule.` - cmd.Long = `This command is in Beta and may change without notice. - -Get a Snapshot Schedule. + cmd.Short = `Get a Snapshot Schedule.` + cmd.Long = `Get a Snapshot Schedule. Retrieves the snapshot schedule for a branch. A branch with no configured schedule returns an empty schedule (not NOT_FOUND). @@ -3227,8 +3219,8 @@ Get a Snapshot Schedule. projects/{project_id}/branches/{branch_id}/snapshot-schedule` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_BETA" - cmd.Annotations["launch_stage_display"] = "Beta" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -3888,10 +3880,8 @@ func newListSnapshots() *cobra.Command { cmd.Flags().Lookup("page-token").Hidden = true cmd.Use = "list-snapshots PARENT" - cmd.Short = `*Beta* List Snapshots.` - cmd.Long = `This command is in Beta and may change without notice. - -List Snapshots. + cmd.Short = `List Snapshots.` + cmd.Long = `List Snapshots. Returns a paginated list of snapshots in the project. @@ -3899,8 +3889,8 @@ List Snapshots. PARENT: The project that owns the snapshots. Format: projects/{project_id}` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_BETA" - cmd.Annotations["launch_stage_display"] = "Beta" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(1) @@ -4998,10 +4988,8 @@ func newUpdateSnapshotSchedule() *cobra.Command { // TODO: array: schedule cmd.Use = "update-snapshot-schedule NAME UPDATE_MASK" - cmd.Short = `*Beta* Update a Snapshot Schedule.` - cmd.Long = `This command is in Beta and may change without notice. - -Update a Snapshot Schedule. + cmd.Short = `Update a Snapshot Schedule.` + cmd.Long = `Update a Snapshot Schedule. Sets the snapshot schedule for a branch. The schedule field is replaced wholesale; an empty schedule disables automatic snapshots. @@ -5018,8 +5006,8 @@ Update a Snapshot Schedule. the entire set of cadences.` cmd.Annotations = make(map[string]string) - cmd.Annotations["launch_stage"] = "PUBLIC_BETA" - cmd.Annotations["launch_stage_display"] = "Beta" + cmd.Annotations["launch_stage"] = "GA" + cmd.Annotations["launch_stage_display"] = "GA" cmd.Args = func(cmd *cobra.Command, args []string) error { check := root.ExactArgs(2) diff --git a/cmd/workspace/sandbox/sandbox.go b/cmd/workspace/sandbox/sandbox.go index c5d7d99af41..1bff2224138 100644 --- a/cmd/workspace/sandbox/sandbox.go +++ b/cmd/workspace/sandbox/sandbox.go @@ -171,6 +171,7 @@ func newCreateSandbox() *cobra.Command { cmd.Flags().Var(&createSandboxJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Flags().StringVar(&createSandboxReq.Sandbox.DisplayName, "display-name", createSandboxReq.Sandbox.DisplayName, `Human-readable display label for the sandbox.`) + // TODO: complex arg: metadata cmd.Flags().StringVar(&createSandboxReq.Sandbox.Name, "name", createSandboxReq.Sandbox.Name, `The sandbox resource name, in the form sandboxes/{sandbox_id}.`) // TODO: complex arg: spec // TODO: complex arg: status @@ -1064,6 +1065,7 @@ func newUpdateSandbox() *cobra.Command { cmd.Flags().Var(&updateSandboxJson, "json", `either inline JSON string or @path/to/file.json with request body`) cmd.Flags().StringVar(&updateSandboxReq.Sandbox.DisplayName, "display-name", updateSandboxReq.Sandbox.DisplayName, `Human-readable display label for the sandbox.`) + // TODO: complex arg: metadata cmd.Flags().StringVar(&updateSandboxReq.Sandbox.Name, "name", updateSandboxReq.Sandbox.Name, `The sandbox resource name, in the form sandboxes/{sandbox_id}.`) // TODO: complex arg: spec // TODO: complex arg: status diff --git a/cmd/workspace/vector-search-endpoints/vector-search-endpoints.go b/cmd/workspace/vector-search-endpoints/vector-search-endpoints.go index bc4e7d83428..41a834fa8c2 100644 --- a/cmd/workspace/vector-search-endpoints/vector-search-endpoints.go +++ b/cmd/workspace/vector-search-endpoints/vector-search-endpoints.go @@ -42,6 +42,8 @@ func New() *cobra.Command { cmd.AddCommand(newPatchEndpoint()) cmd.AddCommand(newRetrieveUserVisibleMetrics()) cmd.AddCommand(newSetPermissions()) + cmd.AddCommand(newStartEndpoint()) + cmd.AddCommand(newStopEndpoint()) cmd.AddCommand(newUpdateEndpointBudgetPolicy()) cmd.AddCommand(newUpdateEndpointCustomTags()) cmd.AddCommand(newUpdatePermissions()) @@ -714,6 +716,133 @@ func newSetPermissions() *cobra.Command { return cmd } +// start start-endpoint command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var startEndpointOverrides []func( + *cobra.Command, + *vectorsearch.StartEndpointRequest, +) + +func newStartEndpoint() *cobra.Command { + cmd := &cobra.Command{} + + var startEndpointReq vectorsearch.StartEndpointRequest + + cmd.Use = "start-endpoint ENDPOINT_NAME" + cmd.Short = `Start an endpoint.` + cmd.Long = `Start an endpoint. + + Start a stopped endpoint. The endpoint serves the same indexes it had when it + stopped. + + Arguments: + ENDPOINT_NAME: Name of the AI Search endpoint` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + startEndpointReq.EndpointName = args[0] + + response, err := w.VectorSearchEndpoints.StartEndpoint(ctx, startEndpointReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range startEndpointOverrides { + fn(cmd, &startEndpointReq) + } + + return cmd +} + +// start stop-endpoint command + +// Slice with functions to override default command behavior. +// Functions can be added from the `init()` function in manually curated files in this directory. +var stopEndpointOverrides []func( + *cobra.Command, + *vectorsearch.StopEndpointRequest, +) + +func newStopEndpoint() *cobra.Command { + cmd := &cobra.Command{} + + var stopEndpointReq vectorsearch.StopEndpointRequest + + cmd.Use = "stop-endpoint ENDPOINT_NAME" + cmd.Short = `Stop an endpoint.` + cmd.Long = `Stop an endpoint. + + Stop an endpoint. Stopping removes the endpoint's serving compute and retains + its indexes. A stopped endpoint can't serve queries or sync indexes until it + is started. + + Arguments: + ENDPOINT_NAME: Name of the AI Search endpoint` + + // This command is being previewed; hide from help output. + cmd.Hidden = true + + cmd.Annotations = make(map[string]string) + cmd.Annotations["launch_stage"] = "PRIVATE_PREVIEW" + cmd.Annotations["launch_stage_display"] = "Private Preview" + + cmd.Args = func(cmd *cobra.Command, args []string) error { + check := root.ExactArgs(1) + return check(cmd, args) + } + + cmd.PreRunE = root.MustWorkspaceClient + cmd.RunE = func(cmd *cobra.Command, args []string) (err error) { + ctx := cmd.Context() + w := cmdctx.WorkspaceClient(ctx) + + stopEndpointReq.EndpointName = args[0] + + response, err := w.VectorSearchEndpoints.StopEndpoint(ctx, stopEndpointReq) + if err != nil { + return err + } + + return cmdio.Render(ctx, response) + } + + // Disable completions since they are not applicable. + // Can be overridden by manual implementation in `override.go`. + cmd.ValidArgsFunction = cobra.NoFileCompletions + + // Apply optional overrides to this command. + for _, fn := range stopEndpointOverrides { + fn(cmd, &stopEndpointReq) + } + + return cmd +} + // start update-endpoint-budget-policy command // Slice with functions to override default command behavior. diff --git a/cmd/workspace/workspace-iam-v2/workspace-iam-v2.go b/cmd/workspace/workspace-iam-v2/workspace-iam-v2.go index a08739cb176..949b96550d3 100644 --- a/cmd/workspace/workspace-iam-v2/workspace-iam-v2.go +++ b/cmd/workspace/workspace-iam-v2/workspace-iam-v2.go @@ -2688,6 +2688,9 @@ Update a service principal in the account. the calling workspace. Only the fields named in the update mask are modified. Returns the updated ServicePrincipal resource. + For locally managed service principals, is_agent must be set to true or false + when updated. + When AIM is enabled and the service principal is an external identity (its external_id is set), only external_id can be updated; its other fields are sourced from your identity provider. diff --git a/go.mod b/go.mod index 6a9cc4e00d8..c68143d6d90 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/charmbracelet/huh v1.0.0 // MIT github.com/charmbracelet/lipgloss v1.1.0 // MIT github.com/charmbracelet/x/ansi v0.11.9 // MIT - github.com/databricks/databricks-sdk-go v0.190.0 // Apache-2.0 + github.com/databricks/databricks-sdk-go v0.191.0 // Apache-2.0 github.com/databricks/sdk-go/auth v0.2.0 // Apache-2.0 github.com/databricks/sdk-go/core v0.1.0 // Apache-2.0 github.com/databricks/sdk-go/files v0.2.0 // Apache-2.0 diff --git a/go.sum b/go.sum index 8df9f7473c1..3e1e3b05daf 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.190.0 h1:kU2Bq0RGZInRYk35JbdX/w5CFDAUoNyikT5Ze1YdURg= -github.com/databricks/databricks-sdk-go v0.190.0/go.mod h1:udBw6nxkaqa0fgPQ7ZW1kGFkltQncYx+qFJeVFmxtz8= +github.com/databricks/databricks-sdk-go v0.191.0 h1:2tbH/H+2Zb1IH6ELWU8zOJ+PiloN90+2OWVQ2pNvd9A= +github.com/databricks/databricks-sdk-go v0.191.0/go.mod h1:udBw6nxkaqa0fgPQ7ZW1kGFkltQncYx+qFJeVFmxtz8= github.com/databricks/sdk-go/auth v0.2.0 h1:543fVMvJ6pVxBymfjGGkkmfiHDbUqX7y9lZseEcE4tQ= github.com/databricks/sdk-go/auth v0.2.0/go.mod h1:eNJdFzBAfu1y32a3wPcTnjaUkjhS9VfyCNblKFPIPEo= github.com/databricks/sdk-go/core v0.1.0 h1:ZolzW/KVIJy1xXQ0zTsu/QYsEB4vQAEApbbq4D3RGHc= diff --git a/internal/genkit/tagging.py.lock b/internal/genkit/tagging.py.lock index b1530109674..6ef01b8e8a0 100644 --- a/internal/genkit/tagging.py.lock +++ b/internal/genkit/tagging.py.lock @@ -11,11 +11,11 @@ requirements = [ [[package]] name = "certifi" -version = "2026.2.25" +version = "2026.10.19" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/bd/1436c50cc46699de0230fbaacc1d1de7bfec413176099949e9d5112e88f2/certifi-2026.10.19.tar.gz", hash = "sha256:035c1e85572b141bf1c3a3eff0e33a8eb74917522f2559075ff8d2fea780a1ae", size = 137598, upload-time = "2026-10-20T02:24:16.604Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, + { url = "https://files.pythonhosted.org/packages/c4/51/29046e48f693c54e5b7412216d447a1d8362c9653148d98c02cdf65fa733/certifi-2026.10.19-py3-none-any.whl", hash = "sha256:42d35340cc5b9ba78e818ddbff0c5b1c2b779de448a340fd1b989f5fa8670e1b", size = 136464, upload-time = "2026-10-20T02:24:15.072Z" }, ] [[package]] diff --git a/python/databricks/bundles/alerts/_models/alert.py b/python/databricks/bundles/alerts/_models/alert.py index 326ddfec556..7ae71fa8db0 100644 --- a/python/databricks/bundles/alerts/_models/alert.py +++ b/python/databricks/bundles/alerts/_models/alert.py @@ -66,19 +66,19 @@ class Alert(Resource): custom_description: VariableOrOptional[str] = None """ - Custom description for the alert. support mustache template. + Custom description for the alert. Interpreted according to `custom_template_format`. """ custom_summary: VariableOrOptional[str] = None """ - Custom summary for the alert. support mustache template. + Custom summary for the alert. Interpreted according to `custom_template_format`. """ custom_template_format: VariableOrOptional[CustomTemplateFormat] = None """ :meta private: [EXPERIMENTAL] - [Private Preview] The format used to interpret the `custom_summary` and `custom_description` templates. + [Beta] The format used to interpret the `custom_summary` and `custom_description` templates. `HTML` treats both templates as HTML with Mustache `{{VARIABLE_NAME}}` placeholders. `MARKDOWN` treats them as Markdown with allowlisted `@VARIABLE_NAME` placeholders and converts @@ -171,19 +171,19 @@ class AlertDict(TypedDict, total=False): custom_description: VariableOrOptional[str] """ - Custom description for the alert. support mustache template. + Custom description for the alert. Interpreted according to `custom_template_format`. """ custom_summary: VariableOrOptional[str] """ - Custom summary for the alert. support mustache template. + Custom summary for the alert. Interpreted according to `custom_template_format`. """ custom_template_format: VariableOrOptional[CustomTemplateFormatParam] """ :meta private: [EXPERIMENTAL] - [Private Preview] The format used to interpret the `custom_summary` and `custom_description` templates. + [Beta] The format used to interpret the `custom_summary` and `custom_description` templates. `HTML` treats both templates as HTML with Mustache `{{VARIABLE_NAME}}` placeholders. `MARKDOWN` treats them as Markdown with allowlisted `@VARIABLE_NAME` placeholders and converts diff --git a/python/databricks/bundles/alerts/_models/custom_template_format.py b/python/databricks/bundles/alerts/_models/custom_template_format.py index fbddaecfc0e..45ba450b546 100644 --- a/python/databricks/bundles/alerts/_models/custom_template_format.py +++ b/python/databricks/bundles/alerts/_models/custom_template_format.py @@ -6,8 +6,6 @@ class CustomTemplateFormat(Enum): """ - :meta private: [EXPERIMENTAL] - Rendering format for the `custom_summary` and `custom_description` templates. """ diff --git a/python/databricks/bundles/apps/_models/app.py b/python/databricks/bundles/apps/_models/app.py index 533172ae6b2..442c8d3ce6f 100644 --- a/python/databricks/bundles/apps/_models/app.py +++ b/python/databricks/bundles/apps/_models/app.py @@ -114,7 +114,7 @@ class App(Resource): """ :meta private: [EXPERIMENTAL] - [Private Preview] Name of the space this app belongs to. + [Beta] Name of the space this app belongs to. """ telemetry_export_destinations: VariableOrList[TelemetryExportDestination] = field( @@ -213,7 +213,7 @@ class AppDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Private Preview] Name of the space this app belongs to. + [Beta] Name of the space this app belongs to. """ telemetry_export_destinations: VariableOrList[TelemetryExportDestinationParam] diff --git a/python/databricks/bundles/features/_models/approx_count_distinct_function.py b/python/databricks/bundles/features/_models/approx_count_distinct_function.py index 6244d5a431c..3fd984da8f1 100644 --- a/python/databricks/bundles/features/_models/approx_count_distinct_function.py +++ b/python/databricks/bundles/features/_models/approx_count_distinct_function.py @@ -22,9 +22,22 @@ class ApproxCountDistinctFunction: The input column from which the approximate count of distinct values is computed. """ + relative_error: VariableOrOptional[float] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] The error the user accepts, as a fraction of the count, between 0.02 (by default) and 0.3. + This is one standard error of the estimate, the same meaning as Spark's relativeSD: 0.02 means + the result is within ±2% of the true count about 68% of the time (one standard deviation covers + 68% of the region). Feature Store picks the sketch size that gives this relative error. If + neither relative_error nor relative_sd is set, 0.02 is default chosen at feature creation. + """ + relative_sd: VariableOrOptional[float] = None """ The maximum relative standard deviation allowed (default defined by Spark). + Deprecated: use relative_error. When relative_error is set, reads return the same value here + for clients that don't have relative_error, and a request may only send that value. """ @classmethod @@ -43,9 +56,22 @@ class ApproxCountDistinctFunctionDict(TypedDict, total=False): The input column from which the approximate count of distinct values is computed. """ + relative_error: VariableOrOptional[float] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] The error the user accepts, as a fraction of the count, between 0.02 (by default) and 0.3. + This is one standard error of the estimate, the same meaning as Spark's relativeSD: 0.02 means + the result is within ±2% of the true count about 68% of the time (one standard deviation covers + 68% of the region). Feature Store picks the sketch size that gives this relative error. If + neither relative_error nor relative_sd is set, 0.02 is default chosen at feature creation. + """ + relative_sd: VariableOrOptional[float] """ The maximum relative standard deviation allowed (default defined by Spark). + Deprecated: use relative_error. When relative_error is set, reads return the same value here + for clients that don't have relative_error, and a request may only send that value. """ diff --git a/python/databricks/bundles/features/_models/approx_percentile_function.py b/python/databricks/bundles/features/_models/approx_percentile_function.py index b4648e41209..fbd6d3730aa 100644 --- a/python/databricks/bundles/features/_models/approx_percentile_function.py +++ b/python/databricks/bundles/features/_models/approx_percentile_function.py @@ -30,6 +30,20 @@ class ApproxPercentileFunction: accuracy: VariableOrOptional[int] = None """ The accuracy parameter (higher is more accurate but slower). + Deprecated: use relative_error. When relative_error is set, reads return ceil(1 / + relative_error) here for clients that don't have relative_error, and a request may only send + that value. + """ + + relative_error: VariableOrOptional[float] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] The error the user accepts, as a fraction of rank, between 0.01 (by default) and 0.3. The + result is within this rank error with 99% confidence: at 0.01, the value returned for p95 is + between the true p94 and p96 at least 99% of the time. Feature Store picks the sketch size that + gives this error. + If neither relative_error nor accuracy is set, 0.01 is default chosen at feature creation. """ @classmethod @@ -56,6 +70,20 @@ class ApproxPercentileFunctionDict(TypedDict, total=False): accuracy: VariableOrOptional[int] """ The accuracy parameter (higher is more accurate but slower). + Deprecated: use relative_error. When relative_error is set, reads return ceil(1 / + relative_error) here for clients that don't have relative_error, and a request may only send + that value. + """ + + relative_error: VariableOrOptional[float] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] The error the user accepts, as a fraction of rank, between 0.01 (by default) and 0.3. The + result is within this rank error with 99% confidence: at 0.01, the value returned for p95 is + between the true p94 and p96 at least 99% of the time. Feature Store picks the sketch size that + gives this error. + If neither relative_error nor accuracy is set, 0.01 is default chosen at feature creation. """ diff --git a/python/databricks/bundles/features/_models/sdp_source.py b/python/databricks/bundles/features/_models/sdp_source.py index 235df7bcc55..3d41a87d5bc 100644 --- a/python/databricks/bundles/features/_models/sdp_source.py +++ b/python/databricks/bundles/features/_models/sdp_source.py @@ -41,8 +41,8 @@ class SdpSource: [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. + when the feature is created. Feature Store doesn't confirm that the pipeline reads from these + tables. At most 100 tables. """ output_table: VariableOrOptional[str] = None @@ -106,8 +106,8 @@ class SdpSourceDict(TypedDict, total=False): [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. + when the feature is created. Feature Store doesn't confirm that the pipeline reads from these + tables. At most 100 tables. """ output_table: VariableOrOptional[str] diff --git a/python/databricks/bundles/jobs/_models/environment.py b/python/databricks/bundles/jobs/_models/environment.py index 850a1cf3098..19b177bd5bb 100644 --- a/python/databricks/bundles/jobs/_models/environment.py +++ b/python/databricks/bundles/jobs/_models/environment.py @@ -57,7 +57,10 @@ class Environment: """ :meta private: [EXPERIMENTAL] - [Beta] File path of pyproject.toml file that defines the project-scoped environment. + [Beta] Path to the `pyproject.toml` file that defines the project environment. + This field cannot be combined with `environment_version`, `base_environment`, dependency fields, + or any other environment-source fields. Set the environment version and dependencies in `pyproject.toml` instead. + For more information, see the serverless dependencies documentation. """ @classmethod @@ -110,7 +113,10 @@ class EnvironmentDict(TypedDict, total=False): """ :meta private: [EXPERIMENTAL] - [Beta] File path of pyproject.toml file that defines the project-scoped environment. + [Beta] Path to the `pyproject.toml` file that defines the project environment. + This field cannot be combined with `environment_version`, `base_environment`, dependency fields, + or any other environment-source fields. Set the environment version and dependencies in `pyproject.toml` instead. + For more information, see the serverless dependencies documentation. """ diff --git a/python/databricks/bundles/pipelines/__init__.py b/python/databricks/bundles/pipelines/__init__.py index 394a4977bb9..412cbfa59b3 100644 --- a/python/databricks/bundles/pipelines/__init__.py +++ b/python/databricks/bundles/pipelines/__init__.py @@ -168,6 +168,11 @@ "Notifications", "NotificationsDict", "NotificationsParam", + "OneDriveOptions", + "OneDriveOptionsDict", + "OneDriveOptionsOneDriveEntityType", + "OneDriveOptionsOneDriveEntityTypeParam", + "OneDriveOptionsParam", "OperationTimeWindow", "OperationTimeWindowDict", "OperationTimeWindowParam", @@ -574,6 +579,15 @@ NotificationsDict, NotificationsParam, ) +from databricks.bundles.pipelines._models.one_drive_options import ( + OneDriveOptions, + OneDriveOptionsDict, + OneDriveOptionsParam, +) +from databricks.bundles.pipelines._models.one_drive_options_one_drive_entity_type import ( + OneDriveOptionsOneDriveEntityType, + OneDriveOptionsOneDriveEntityTypeParam, +) from databricks.bundles.pipelines._models.operation_time_window import ( OperationTimeWindow, OperationTimeWindowDict, diff --git a/python/databricks/bundles/pipelines/_models/connector_options.py b/python/databricks/bundles/pipelines/_models/connector_options.py index 945a5bab56a..09e00d227f5 100644 --- a/python/databricks/bundles/pipelines/_models/connector_options.py +++ b/python/databricks/bundles/pipelines/_models/connector_options.py @@ -42,6 +42,10 @@ MetaMarketingOptions, MetaMarketingOptionsParam, ) +from databricks.bundles.pipelines._models.one_drive_options import ( + OneDriveOptions, + OneDriveOptionsParam, +) from databricks.bundles.pipelines._models.outlook_options import ( OutlookOptions, OutlookOptionsParam, @@ -147,6 +151,13 @@ class ConnectorOptions: [Beta] Meta Marketing (Meta Ads) specific options for ingestion """ + onedrive_options: VariableOrOptional[OneDriveOptions] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] + """ + outlook_options: VariableOrOptional[OutlookOptions] = None """ :meta private: [EXPERIMENTAL] @@ -272,6 +283,13 @@ class ConnectorOptionsDict(TypedDict, total=False): [Beta] Meta Marketing (Meta Ads) specific options for ingestion """ + onedrive_options: VariableOrOptional[OneDriveOptionsParam] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] + """ + outlook_options: VariableOrOptional[OutlookOptionsParam] """ :meta private: [EXPERIMENTAL] diff --git a/python/databricks/bundles/pipelines/_models/ingestion_config.py b/python/databricks/bundles/pipelines/_models/ingestion_config.py index 1d5a14cceef..124b1007668 100644 --- a/python/databricks/bundles/pipelines/_models/ingestion_config.py +++ b/python/databricks/bundles/pipelines/_models/ingestion_config.py @@ -6,7 +6,10 @@ 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 VariableOrOptional -from databricks.bundles.pipelines._models.report_spec import ReportSpec, ReportSpecParam +from databricks.bundles.pipelines._models.report_spec import ( + ReportSpec, + ReportSpecParam, +) from databricks.bundles.pipelines._models.schema_spec import ( SchemaSpec, SchemaSpecParam, diff --git a/python/databricks/bundles/pipelines/_models/lifecycle.py b/python/databricks/bundles/pipelines/_models/lifecycle.py index 6ef8f4fc104..a8f228e0e0a 100644 --- a/python/databricks/bundles/pipelines/_models/lifecycle.py +++ b/python/databricks/bundles/pipelines/_models/lifecycle.py @@ -6,7 +6,10 @@ from databricks.bundles.core._transform import _transform from databricks.bundles.core._transform_to_json import _transform_to_json_value from databricks.bundles.core._variable import VariableOrList, VariableOrOptional -from databricks.bundles.pipelines._models.depends_on import DependsOn, DependsOnParam +from databricks.bundles.pipelines._models.depends_on import ( + DependsOn, + DependsOnParam, +) if TYPE_CHECKING: from typing_extensions import Self diff --git a/python/databricks/bundles/pipelines/_models/one_drive_options.py b/python/databricks/bundles/pipelines/_models/one_drive_options.py new file mode 100644 index 00000000000..e4ce5beffa7 --- /dev/null +++ b/python/databricks/bundles/pipelines/_models/one_drive_options.py @@ -0,0 +1,84 @@ +# Code generated by pydabs-codegen. DO NOT EDIT. + +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOrOptional +from databricks.bundles.pipelines._models.file_ingestion_options import ( + FileIngestionOptions, + FileIngestionOptionsParam, +) +from databricks.bundles.pipelines._models.one_drive_options_one_drive_entity_type import ( + OneDriveOptionsOneDriveEntityType, + OneDriveOptionsOneDriveEntityTypeParam, +) + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class OneDriveOptions: + """ + :meta private: [EXPERIMENTAL] + """ + + entity_type: VariableOrOptional[OneDriveOptionsOneDriveEntityType] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] (Optional) The type of OneDrive entity to ingest. + If not specified, defaults to FILE. + """ + + file_ingestion_options: VariableOrOptional[FileIngestionOptions] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] (Optional) File ingestion options for processing files. + """ + + url: VariableOrOptional[str] = None + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Required. The OneDrive URL. + """ + + @classmethod + def from_dict(cls, value: "OneDriveOptionsDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "OneDriveOptionsDict": + return _transform_to_json_value(self) # type:ignore + + +class OneDriveOptionsDict(TypedDict, total=False): + """""" + + entity_type: VariableOrOptional[OneDriveOptionsOneDriveEntityTypeParam] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] (Optional) The type of OneDrive entity to ingest. + If not specified, defaults to FILE. + """ + + file_ingestion_options: VariableOrOptional[FileIngestionOptionsParam] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] (Optional) File ingestion options for processing files. + """ + + url: VariableOrOptional[str] + """ + :meta private: [EXPERIMENTAL] + + [Private Preview] Required. The OneDrive URL. + """ + + +OneDriveOptionsParam = OneDriveOptionsDict | OneDriveOptions diff --git a/python/databricks/bundles/pipelines/_models/one_drive_options_one_drive_entity_type.py b/python/databricks/bundles/pipelines/_models/one_drive_options_one_drive_entity_type.py new file mode 100644 index 00000000000..a32162a0506 --- /dev/null +++ b/python/databricks/bundles/pipelines/_models/one_drive_options_one_drive_entity_type.py @@ -0,0 +1,20 @@ +# Code generated by pydabs-codegen. DO NOT EDIT. + +from enum import Enum +from typing import Literal + + +class OneDriveOptionsOneDriveEntityType(Enum): + """ + :meta private: [EXPERIMENTAL] + + The type of OneDrive entity to ingest. + """ + + FILE = "FILE" + FILE_METADATA = "FILE_METADATA" + + +OneDriveOptionsOneDriveEntityTypeParam = ( + Literal["FILE", "FILE_METADATA"] | OneDriveOptionsOneDriveEntityType +)