From ca13f5e62007f9292d5bce3254d00acaf159265d Mon Sep 17 00:00:00 2001 From: Ilia Babanov Date: Mon, 14 Oct 2024 16:38:56 +0200 Subject: [PATCH] Bump CLI to 230, use verbose deploy (#1390) ## Changes Bump CLI to 230, use verbose deploy, regenerate the schema Note: new schema generator doesn't produce stable result, hence the huge amount of changed lines ## Tests Existing tests + manually for the CLI auth --- packages/databricks-vscode/package.json | 2 +- .../src/bundle/BundleSchema.ts | 7789 ++++++++++------- .../src/bundle/models/BundleValidateModel.ts | 4 +- .../databricks-vscode/src/cli/CliWrapper.ts | 1 + .../src/test/e2e/run_files.e2e.ts | 5 +- .../src/test/e2e/run_notebooks.e2e.ts | 9 +- .../src/test/e2e/utils/commonUtils.ts | 18 +- 7 files changed, 4573 insertions(+), 3255 deletions(-) diff --git a/packages/databricks-vscode/package.json b/packages/databricks-vscode/package.json index a23d2c5fe..c330c3142 100644 --- a/packages/databricks-vscode/package.json +++ b/packages/databricks-vscode/package.json @@ -897,7 +897,7 @@ "useYarn": false }, "cli": { - "version": "0.228.1" + "version": "0.230.0" }, "scripts": { "vscode:prepublish": "rm -rf out && yarn run package:compile && yarn run package:wrappers:write && yarn run package:jupyter-init-script:write && yarn run package:copy-webview-toolkit && yarn run generate-telemetry", diff --git a/packages/databricks-vscode/src/bundle/BundleSchema.ts b/packages/databricks-vscode/src/bundle/BundleSchema.ts index ce8739a7c..8fd4aa2a8 100644 --- a/packages/databricks-vscode/src/bundle/BundleSchema.ts +++ b/packages/databricks-vscode/src/bundle/BundleSchema.ts @@ -20,7 +20,7 @@ export interface BundleSchema { sync?: SyncClass | string; targets?: {[key: string]: TargetClass | string} | string; variables?: {[key: string]: VariableValue} | string; - workspace?: BundleSchem15 | string; + workspace?: BundleSchem18 | string; } export interface ArtifactClass { @@ -36,6 +36,7 @@ export interface PurpleBundleSchem { } export interface BundleClass { + cluster_id?: string; compute_id?: string; databricks_cli_version?: string; deployment?: FluffyBundleSchem | string; @@ -87,6 +88,7 @@ export interface PresetsClass { } export interface ResourcesClass { + clusters?: {[key: string]: TentacledBundleSchem | string} | string; experiments?: {[key: string]: ExperimentClass | string} | string; jobs?: {[key: string]: JobClass | string} | string; model_serving_endpoints?: @@ -96,374 +98,989 @@ export interface ResourcesClass { pipelines?: {[key: string]: PipelineClass | string} | string; quality_monitors?: {[key: string]: QualityMonitorClass | string} | string; registered_models?: {[key: string]: RegisteredModelClass | string} | string; - schemas?: {[key: string]: BundleSchem14 | string} | string; + schemas?: {[key: string]: BundleSchem17 | string} | string; } -export interface ExperimentClass { +export interface TentacledBundleSchem { /** - * Location where artifacts for the experiment are stored. + * When set to true, fixed and default values from the policy will be used for fields that + * are omitted. When set to false, only fixed values from the policy will be applied. */ - artifact_location?: string; + apply_policy_default_values?: boolean | string; /** - * Creation time + * Parameters needed in order to automatically scale clusters up and down based on load. + * Note: autoscaling works best with DB runtime versions 3.0 or later. */ - creation_time?: number | string; + autoscale?: StickyBundleSchem | string; /** - * Unique identifier for the experiment. + * Automatically terminates the cluster after it is inactive for this time in minutes. If + * not set, + * this cluster will not be automatically terminated. If specified, the threshold must be + * between + * 10 and 10000 minutes. + * Users can also set this value to 0 to explicitly disable automatic termination. */ - experiment_id?: string; + autotermination_minutes?: number | string; /** - * Last update time + * Attributes related to clusters running on Amazon Web Services. + * If not specified at cluster creation, a set of default values will be used. */ - last_update_time?: number | string; + aws_attributes?: AwsAttributesClass | string; /** - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. + * Attributes related to clusters running on Microsoft Azure. + * If not specified at cluster creation, a set of default values will be used. */ - lifecycle_stage?: string; + azure_attributes?: AzureAttributesClass | string; /** - * Human readable name that identifies the experiment. + * The configuration for delivering spark logs to a long-term storage destination. + * Two kinds of destinations (dbfs and s3) are supported. Only one destination can be + * specified + * for one cluster. If the conf is given, the logs will be delivered to the destination + * every + * `5 mins`. The destination of driver logs is `$destination/$clusterId/driver`, while + * the destination of executor logs is `$destination/$clusterId/executor`. */ - name?: string; - permissions?: Array | string; + cluster_log_conf?: ClusterLogConfClass | string; /** - * Tags: Additional metadata key-value pairs. + * Cluster name requested by the user. This doesn't have to be unique. + * If not specified at creation, the cluster name will be an empty string. */ - tags?: Array | string; -} - -export interface TentacledBundleSchem { + cluster_name?: string; /** - * The tag key. + * Additional tags for cluster resources. Databricks will tag all cluster resources (e.g., + * AWS + * instances and EBS volumes) with these tags in addition to `default_tags`. Notes: + * + * - Currently, Databricks allows at most 45 custom tags + * + * - Clusters can only reuse cloud resources if the resources' tags are a subset of the + * cluster tags */ - key?: string; + custom_tags?: {[key: string]: string} | string; + data_security_mode?: DataSecurityMode; + docker_image?: DockerImageClass | string; /** - * The tag value. + * The optional ID of the instance pool for the driver of the cluster belongs. + * The pool cluster uses the instance pool with id (instance_pool_id) if the driver pool is + * not + * assigned. */ - value?: string; -} - -export interface JobClass { + driver_instance_pool_id?: string; /** - * An optional continuous property for this job. The continuous property will ensure that - * there is always one run executing. Only one of `schedule` and `continuous` can be used. + * The node type of the Spark driver. Note that this field is optional; + * if unset, the driver node type will be set as the same value + * as `node_type_id` defined above. */ - continuous?: ContinuousClass | string; + driver_node_type_id?: string; /** - * Deployment information for jobs managed by external sources. + * Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional + * disk + * space when its Spark workers are running low on disk space. This feature requires + * specific AWS + * permissions to function correctly - refer to the User Guide for more details. */ - deployment?: StickyBundleSchem | string; + enable_elastic_disk?: boolean | string; /** - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. + * Whether to enable LUKS on cluster VMs' local disks */ - description?: string; + enable_local_disk_encryption?: boolean | string; /** - * Edit mode of the job. - * - * * `UI_LOCKED`: The job is in a locked UI state and cannot be modified. - * * `EDITABLE`: The job is in an editable state and can be modified. + * Attributes related to clusters running on Google Cloud Platform. + * If not specified at cluster creation, a set of default values will be used. */ - edit_mode?: EditMode; + gcp_attributes?: GcpAttributesClass | string; /** - * An optional set of email addresses that is notified when runs of this job begin or - * complete as well as when this job is deleted. + * The configuration for storing init scripts. Any number of destinations can be specified. + * The scripts are executed sequentially in the order provided. If `cluster_log_conf` is + * specified, init script logs are sent to `//init_scripts`. */ - email_notifications?: IndigoBundleSchem | string; + init_scripts?: Array | string; /** - * A list of task execution environment specifications that can be referenced by tasks of - * this job. + * The optional ID of the instance pool to which the cluster belongs. */ - environments?: Array | string; + instance_pool_id?: string; /** - * Used to tell what is the format of the job. This field is ignored in Create/Update/Reset - * calls. When using the Jobs API 2.1 this value is always set to `"MULTI_TASK"`. + * This field encodes, through a single value, the resources available to each of + * the Spark nodes in this cluster. For example, the Spark nodes can be provisioned + * and optimized for memory or compute intensive workloads. A list of available node + * types can be retrieved by using the :method:clusters/listNodeTypes API call. */ - format?: Format; + node_type_id?: string; /** - * An optional specification for a remote Git repository containing the source code used by - * tasks. Version-controlled source code is supported by notebook, dbt, Python script, and - * SQL File tasks. - * - * If `git_source` is set, these tasks retrieve the file from the remote repository by - * default. However, this behavior can be overridden by setting `source` to `WORKSPACE` on - * the task. + * Number of worker nodes that this cluster should have. A cluster has one Spark Driver + * and `num_workers` Executors for a total of `num_workers` + 1 Spark nodes. * - * Note: dbt and SQL File tasks support only version-controlled sources. If dbt or SQL File - * tasks are used, `git_source` must be defined on the job. + * Note: When reading the properties of a cluster, this field reflects the desired number + * of workers rather than the actual current number of workers. For instance, if a cluster + * is resized from 5 to 10 workers, this field will immediately be updated to reflect + * the target size of 10 workers, whereas the workers listed in `spark_info` will gradually + * increase from 5 to 10 as the new nodes are provisioned. */ - git_source?: GitSourceClass | string; - health?: HealthClass | string; + num_workers?: number | string; + permissions?: Array | string; /** - * A list of job cluster specifications that can be shared and reused by tasks of this job. - * Libraries cannot be declared in a shared job cluster. You must declare dependent - * libraries in task settings. + * The ID of the cluster policy used to create the cluster if applicable. */ - job_clusters?: Array | string; + policy_id?: string; + runtime_engine?: RuntimeEngine; /** - * An optional maximum allowed number of concurrent runs of the job. - * Set this value if you want to be able to execute multiple runs of the same job - * concurrently. - * This is useful for example if you trigger your job on a frequent schedule and want to - * allow consecutive runs to overlap with each other, or if you want to trigger multiple - * runs which differ by their input parameters. - * This setting affects only new runs. For example, suppose the job’s concurrency is 4 and - * there are 4 concurrent active runs. Then setting the concurrency to 3 won’t kill any of - * the active runs. - * However, from then on, new runs are skipped unless there are fewer than 3 active runs. - * This value cannot exceed 1000. Setting this value to `0` causes all new runs to be - * skipped. + * Single user name if data_security_mode is `SINGLE_USER` */ - max_concurrent_runs?: number | string; + single_user_name?: string; /** - * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. + * An object containing a set of optional, user-specified Spark configuration key-value + * pairs. + * Users can also pass in a string of extra JVM options to the driver and the executors via + * `spark.driver.extraJavaOptions` and `spark.executor.extraJavaOptions` respectively. */ - name?: string; + spark_conf?: {[key: string]: string} | string; /** - * Optional notification settings that are used when sending notifications to each of the - * `email_notifications` and `webhook_notifications` for this job. + * An object containing a set of optional, user-specified environment variable key-value + * pairs. + * Please note that key-value pair of the form (X,Y) will be exported as is (i.e., + * `export X='Y'`) while launching the driver and workers. + * + * In order to specify an additional set of `SPARK_DAEMON_JAVA_OPTS`, we recommend appending + * them to `$SPARK_DAEMON_JAVA_OPTS` as shown in the example below. This ensures that all + * default databricks managed environmental variables are included as well. + * + * Example Spark environment variables: + * `{"SPARK_WORKER_MEMORY": "28000m", "SPARK_LOCAL_DIRS": "/local_disk0"}` or + * `{"SPARK_DAEMON_JAVA_OPTS": "$SPARK_DAEMON_JAVA_OPTS + * -Dspark.shuffle.service.enabled=true"}` */ - notification_settings?: CunningBundleSchem | string; + spark_env_vars?: {[key: string]: string} | string; /** - * Job-level parameter definitions + * The Spark version of the cluster, e.g. `3.3.x-scala2.11`. + * A list of available Spark versions can be retrieved by using + * the :method:clusters/sparkVersions API call. */ - parameters?: Array | string; - permissions?: Array | string; + spark_version?: string; /** - * The queue settings of the job. + * SSH public key contents that will be added to each Spark node in this cluster. The + * corresponding private keys can be used to login with the user name `ubuntu` on port + * `2200`. + * Up to 10 keys can be specified. */ - queue?: QueueClass | string; - run_as?: RunAsClass | string; + ssh_public_keys?: string[] | string; + workload_type?: WorkloadTypeClass | string; +} + +export interface StickyBundleSchem { /** - * An optional periodic schedule for this job. The default behavior is that the job only - * runs when triggered by clicking “Run Now” in the Jobs UI or sending an API request to - * `runNow`. + * The maximum number of workers to which the cluster can scale up when overloaded. + * Note that `max_workers` must be strictly greater than `min_workers`. */ - schedule?: MagentaBundleSchem | string; + max_workers?: number | string; /** - * A map of tags associated with the job. These are forwarded to the cluster as cluster tags - * for jobs clusters, and are subject to the same limitations as cluster tags. A maximum of - * 25 tags can be added to the job. + * The minimum number of workers to which the cluster can scale down when underutilized. + * It is also the initial number of workers the cluster will have after creation. */ - tags?: {[key: string]: string} | string; + min_workers?: number | string; +} + +export interface AwsAttributesClass { + availability?: AwsAttributesAvailability; /** - * A list of task specifications to be executed by this job. + * The number of volumes launched for each instance. Users can choose up to 10 volumes. + * This feature is only enabled for supported node types. Legacy node types cannot specify + * custom EBS volumes. + * For node types with no instance store, at least one EBS volume needs to be specified; + * otherwise, cluster creation will fail. + * + * These EBS volumes will be mounted at `/ebs0`, `/ebs1`, and etc. + * Instance store volumes will be mounted at `/local_disk0`, `/local_disk1`, and etc. + * + * If EBS volumes are attached, Databricks will configure Spark to use only the EBS volumes + * for + * scratch storage because heterogenously sized scratch devices can lead to inefficient disk + * utilization. If no EBS volumes are attached, Databricks will configure Spark to use + * instance + * store volumes. + * + * Please note that if EBS volumes are specified, then the Spark configuration + * `spark.local.dir` + * will be overridden. */ - tasks?: Array | string; + ebs_volume_count?: number | string; /** - * An optional timeout applied to each run of this job. A value of `0` means no timeout. + * If using gp3 volumes, what IOPS to use for the disk. If this is not set, the maximum + * performance of a gp2 volume with the same volume size will be used. */ - timeout_seconds?: number | string; + ebs_volume_iops?: number | string; /** - * A configuration to trigger a run when certain conditions are met. The default behavior is - * that the job runs only when triggered by clicking “Run Now” in the Jobs UI or sending an - * API request to `runNow`. + * The size of each EBS volume (in GiB) launched for each instance. For general purpose + * SSD, this value must be within the range 100 - 4096. For throughput optimized HDD, + * this value must be within the range 500 - 4096. */ - trigger?: BundleSchem2 | string; + ebs_volume_size?: number | string; /** - * A collection of system notification IDs to notify when runs of this job begin or complete. + * If using gp3 volumes, what throughput to use for the disk. If this is not set, the + * maximum performance of a gp2 volume with the same volume size will be used. */ - webhook_notifications?: WebhookNotificationsClass | string; -} - -export interface ContinuousClass { + ebs_volume_throughput?: number | string; + ebs_volume_type?: EbsVolumeType; /** - * Indicate whether the continuous execution of the job is paused or not. Defaults to - * UNPAUSED. + * The first `first_on_demand` nodes of the cluster will be placed on on-demand instances. + * If this value is greater than 0, the cluster driver node in particular will be placed on + * an + * on-demand instance. If this value is greater than or equal to the current cluster size, + * all + * nodes will be placed on on-demand instances. If this value is less than the current + * cluster + * size, `first_on_demand` nodes will be placed on on-demand instances and the remainder + * will + * be placed on `availability` instances. Note that this value does not affect + * cluster size and cannot currently be mutated over the lifetime of a cluster. */ - pause_status?: PauseStatus; + first_on_demand?: number | string; + /** + * Nodes for this cluster will only be placed on AWS instances with this instance profile. + * If + * ommitted, nodes will be placed on instances without an IAM instance profile. The instance + * profile must have previously been added to the Databricks environment by an account + * administrator. + * + * This feature may only be available to certain customer plans. + * + * If this field is ommitted, we will pull in the default from the conf if it exists. + */ + instance_profile_arn?: string; + /** + * The bid price for AWS spot instances, as a percentage of the corresponding instance + * type's + * on-demand price. + * For example, if this field is set to 50, and the cluster needs a new `r3.xlarge` spot + * instance, then the bid price is half of the price of + * on-demand `r3.xlarge` instances. Similarly, if this field is set to 200, the bid price is + * twice + * the price of on-demand `r3.xlarge` instances. If not specified, the default value is 100. + * When spot instances are requested for this cluster, only spot instances whose bid price + * percentage matches this field will be considered. + * Note that, for safety, we enforce this field to be no more than 10000. + * + * The default value and documentation here should be kept consistent with + * CommonConf.defaultSpotBidPricePercent and CommonConf.maxSpotBidPricePercent. + */ + spot_bid_price_percent?: number | string; + /** + * Identifier for the availability zone/datacenter in which the cluster resides. + * This string will be of a form like "us-west-2a". The provided availability + * zone must be in the same region as the Databricks deployment. For example, "us-west-2a" + * is not a valid zone id if the Databricks deployment resides in the "us-east-1" region. + * This is an optional field at cluster creation, and if not specified, a default zone will + * be used. + * If the zone specified is "auto", will try to place cluster in a zone with high + * availability, + * and will retry placement in a different AZ if there is not enough capacity. + * The list of available zones as well as the default value can be found by using the + * `List Zones` method. + */ + zone_id?: string; } /** - * Indicate whether the continuous execution of the job is paused or not. Defaults to - * UNPAUSED. - * - * Indicate whether this schedule is paused or not. - * - * Whether this trigger is paused or not. - * - * Read only field that indicates whether a schedule is paused or not. - * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. - * - * The key of an environment. It has to be unique within a job. - * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. - * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. - * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. - * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. - * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. + * Availability type used for all subsequent nodes past the `first_on_demand` ones. * - * URL of the repository to be cloned by this job. + * Note: If `first_on_demand` is zero, this availability type will be used for the entire + * cluster. + */ +export enum AwsAttributesAvailability { + OnDemand = "ON_DEMAND", + Spot = "SPOT", + SpotWithFallback = "SPOT_WITH_FALLBACK", +} + +/** + * The type of EBS volumes that will be launched with this cluster. + */ +export enum EbsVolumeType { + GeneralPurposeSSD = "GENERAL_PURPOSE_SSD", + ThroughputOptimizedHDD = "THROUGHPUT_OPTIMIZED_HDD", +} + +export interface AzureAttributesClass { + availability?: AzureAttributesAvailability; + /** + * The first `first_on_demand` nodes of the cluster will be placed on on-demand instances. + * This value should be greater than 0, to make sure the cluster driver node is placed on an + * on-demand instance. If this value is greater than or equal to the current cluster size, + * all + * nodes will be placed on on-demand instances. If this value is less than the current + * cluster + * size, `first_on_demand` nodes will be placed on on-demand instances and the remainder + * will + * be placed on `availability` instances. Note that this value does not affect + * cluster size and cannot currently be mutated over the lifetime of a cluster. + */ + first_on_demand?: number | string; + /** + * Defines values necessary to configure and run Azure Log Analytics agent + */ + log_analytics_info?: LogAnalyticsInfoClass | string; + /** + * The max bid price to be used for Azure spot instances. + * The Max price for the bid cannot be higher than the on-demand price of the instance. + * If not specified, the default value is -1, which specifies that the instance cannot be + * evicted + * on the basis of price, and only on the basis of availability. Further, the value should > + * 0 or -1. + */ + spot_bid_max_price?: number | string; +} + +/** + * Availability type used for all subsequent nodes past the `first_on_demand` ones. + * Note: If `first_on_demand` is zero (which only happens on pool clusters), this + * availability + * type will be used for the entire cluster. + */ +export enum AzureAttributesAvailability { + OnDemandAzure = "ON_DEMAND_AZURE", + SpotAzure = "SPOT_AZURE", + SpotWithFallbackAzure = "SPOT_WITH_FALLBACK_AZURE", +} + +export interface LogAnalyticsInfoClass { + /** + * + */ + log_analytics_primary_key?: string; + /** + * + */ + log_analytics_workspace_id?: string; +} + +export interface ClusterLogConfClass { + /** + * destination needs to be provided. e.g. + * `{ "dbfs" : { "destination" : "dbfs:/home/cluster_log" } }` + */ + dbfs?: DbfsClass | string; + /** + * destination and either the region or endpoint need to be provided. e.g. + * `{ "s3": { "destination" : "s3://cluster_log_bucket/prefix", "region" : "us-west-2" } }` + * Cluster iam role is used to access s3, please make sure the cluster iam role in + * `instance_profile_arn` has permission to write data to the s3 destination. + */ + s3?: S3Class | string; +} + +export interface DbfsClass { + /** + * dbfs destination, e.g. `dbfs:/my/path` + */ + destination: string; +} + +export interface S3Class { + /** + * (Optional) Set canned access control list for the logs, e.g. `bucket-owner-full-control`. + * If `canned_cal` is set, please make sure the cluster iam role has `s3:PutObjectAcl` + * permission on + * the destination bucket and prefix. The full list of possible canned acl can be found at + * http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl. + * Please also note that by default only the object owner gets full controls. If you are + * using cross account + * role for writing data, you may want to set `bucket-owner-full-control` to make bucket + * owner able to + * read the logs. + */ + canned_acl?: string; + /** + * S3 destination, e.g. `s3://my-bucket/some-prefix` Note that logs will be delivered using + * cluster iam role, please make sure you set cluster iam role and the role has write access + * to the + * destination. Please also note that you cannot use AWS keys to deliver logs. + */ + destination: string; + /** + * (Optional) Flag to enable server side encryption, `false` by default. + */ + enable_encryption?: boolean | string; + /** + * (Optional) The encryption type, it could be `sse-s3` or `sse-kms`. It will be used only + * when + * encryption is enabled and the default type is `sse-s3`. + */ + encryption_type?: string; + /** + * S3 endpoint, e.g. `https://s3-us-west-2.amazonaws.com`. Either region or endpoint needs + * to be set. + * If both are set, endpoint will be used. + */ + endpoint?: string; + /** + * (Optional) Kms key which will be used if encryption is enabled and encryption type is set + * to `sse-kms`. + */ + kms_key?: string; + /** + * S3 region, e.g. `us-west-2`. Either region or endpoint needs to be set. If both are set, + * endpoint will be used. + */ + region?: string; +} + +/** + * Data security mode decides what data governance model to use when accessing data + * from a cluster. * - * Name of the branch which the job is imported from. + * * `NONE`: No security isolation for multiple users sharing the cluster. Data governance + * features are not available in this mode. + * * `SINGLE_USER`: A secure cluster that can only be exclusively used by a single user + * specified in `single_user_name`. Most programming languages, cluster features and data + * governance features are available in this mode. + * * `USER_ISOLATION`: A secure cluster that can be shared by multiple users. Cluster users + * are fully isolated so that they cannot see each other's data and credentials. Most data + * governance features are supported in this mode. But programming languages and cluster + * features might be limited. * - * Path of the job YAML file that contains the job specification. + * The following modes are deprecated starting with Databricks Runtime 15.0 and + * will be removed for future Databricks Runtime versions: * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. - * - * Nodes for this cluster will only be placed on AWS instances with this instance profile. - * If - * ommitted, nodes will be placed on instances without an IAM instance profile. The instance - * profile must have previously been added to the Databricks environment by an account - * administrator. - * - * This feature may only be available to certain customer plans. - * - * If this field is ommitted, we will pull in the default from the conf if it exists. - * - * Identifier for the availability zone/datacenter in which the cluster resides. - * This string will be of a form like "us-west-2a". The provided availability - * zone must be in the same region as the Databricks deployment. For example, "us-west-2a" - * is not a valid zone id if the Databricks deployment resides in the "us-east-1" region. - * This is an optional field at cluster creation, and if not specified, a default zone will - * be used. - * If the zone specified is "auto", will try to place cluster in a zone with high - * availability, - * and will retry placement in a different AZ if there is not enough capacity. - * The list of available zones as well as the default value can be found by using the - * `List Zones` method. - * - * - * - * dbfs destination, e.g. `dbfs:/my/path` - * - * (Optional) Set canned access control list for the logs, e.g. `bucket-owner-full-control`. - * If `canned_cal` is set, please make sure the cluster iam role has `s3:PutObjectAcl` - * permission on - * the destination bucket and prefix. The full list of possible canned acl can be found at - * http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl. - * Please also note that by default only the object owner gets full controls. If you are - * using cross account - * role for writing data, you may want to set `bucket-owner-full-control` to make bucket - * owner able to - * read the logs. - * - * S3 destination, e.g. `s3://my-bucket/some-prefix` Note that logs will be delivered using - * cluster iam role, please make sure you set cluster iam role and the role has write access - * to the - * destination. Please also note that you cannot use AWS keys to deliver logs. - * - * (Optional) The encryption type, it could be `sse-s3` or `sse-kms`. It will be used only - * when - * encryption is enabled and the default type is `sse-s3`. - * - * S3 endpoint, e.g. `https://s3-us-west-2.amazonaws.com`. Either region or endpoint needs - * to be set. - * If both are set, endpoint will be used. - * - * (Optional) Kms key which will be used if encryption is enabled and encryption type is set - * to `sse-kms`. - * - * S3 region, e.g. `us-west-2`. Either region or endpoint needs to be set. If both are set, - * endpoint will be used. - * - * Cluster name requested by the user. This doesn't have to be unique. - * If not specified at creation, the cluster name will be an empty string. - * - * - * Password of the user - * - * Name of the user - * - * URL of the docker image. - * - * The optional ID of the instance pool for the driver of the cluster belongs. - * The pool cluster uses the instance pool with id (instance_pool_id) if the driver pool is - * not - * assigned. - * - * The node type of the Spark driver. Note that this field is optional; - * if unset, the driver node type will be set as the same value - * as `node_type_id` defined above. - * - * - * If provided, the cluster will impersonate the google service account when accessing - * gcloud services (like GCS). The google service account - * must have previously been added to the Databricks environment by an account - * administrator. + * * `LEGACY_TABLE_ACL`: This mode is for users migrating from legacy Table ACL clusters. + * * `LEGACY_PASSTHROUGH`: This mode is for users migrating from legacy Passthrough on high + * concurrency clusters. + * * `LEGACY_SINGLE_USER`: This mode is for users migrating from legacy Passthrough on + * standard clusters. + * * `LEGACY_SINGLE_USER_STANDARD`: This mode provides a way that doesn’t have UC nor + * passthrough enabled. + */ +export enum DataSecurityMode { + LegacyPassthrough = "LEGACY_PASSTHROUGH", + LegacySingleUser = "LEGACY_SINGLE_USER", + LegacySingleUserStandard = "LEGACY_SINGLE_USER_STANDARD", + LegacyTableACL = "LEGACY_TABLE_ACL", + None = "NONE", + SingleUser = "SINGLE_USER", + UserIsolation = "USER_ISOLATION", +} + +export interface DockerImageClass { + basic_auth?: BasicAuthClass | string; + /** + * URL of the docker image. + */ + url?: string; +} + +export interface BasicAuthClass { + /** + * Password of the user + */ + password?: string; + /** + * Name of the user + */ + username?: string; +} + +export interface GcpAttributesClass { + availability?: GcpAttributesAvailability; + /** + * boot disk size in GB + */ + boot_disk_size?: number | string; + /** + * If provided, the cluster will impersonate the google service account when accessing + * gcloud services (like GCS). The google service account + * must have previously been added to the Databricks environment by an account + * administrator. + */ + google_service_account?: string; + /** + * If provided, each node (workers and driver) in the cluster will have this number of local + * SSDs attached. Each local SSD is 375GB in size. Refer to [GCP + * documentation](https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds) + * for the supported number of local SSDs for each instance type. + */ + local_ssd_count?: number | string; + /** + * This field determines whether the spark executors will be scheduled to run on preemptible + * VMs (when set to true) versus standard compute engine VMs (when set to false; default). + * Note: Soon to be deprecated, use the availability field instead. + */ + use_preemptible_executors?: boolean | string; + /** + * Identifier for the availability zone in which the cluster resides. + * This can be one of the following: + * - "HA" => High availability, spread nodes across availability zones for a Databricks + * deployment region [default] + * - "AUTO" => Databricks picks an availability zone to schedule the cluster on. + * - A GCP availability zone => Pick One of the available zones for (machine type + region) + * from https://cloud.google.com/compute/docs/regions-zones. + */ + zone_id?: string; +} + +/** + * This field determines whether the instance pool will contain preemptible + * VMs, on-demand VMs, or preemptible VMs with a fallback to on-demand VMs if the former is + * unavailable. + */ +export enum GcpAttributesAvailability { + OnDemandGcp = "ON_DEMAND_GCP", + PreemptibleGcp = "PREEMPTIBLE_GCP", + PreemptibleWithFallbackGcp = "PREEMPTIBLE_WITH_FALLBACK_GCP", +} + +export interface InitScriptClass { + /** + * destination needs to be provided. e.g. + * `{ "abfss" : { "destination" : + * "abfss://@.dfs.core.windows.net/" } + * } + */ + abfss?: AbfssClass | string; + /** + * destination needs to be provided. e.g. + * `{ "dbfs" : { "destination" : "dbfs:/home/cluster_log" } }` + */ + dbfs?: DbfsClass | string; + /** + * destination needs to be provided. e.g. + * `{ "file" : { "destination" : "file:/my/local/file.sh" } }` + */ + file?: IndigoBundleSchem | string; + /** + * destination needs to be provided. e.g. + * `{ "gcs": { "destination": "gs://my-bucket/file.sh" } }` + */ + gcs?: GcsClass | string; + /** + * destination and either the region or endpoint need to be provided. e.g. + * `{ "s3": { "destination" : "s3://cluster_log_bucket/prefix", "region" : "us-west-2" } }` + * Cluster iam role is used to access s3, please make sure the cluster iam role in + * `instance_profile_arn` has permission to write data to the s3 destination. + */ + s3?: S3Class | string; + /** + * destination needs to be provided. e.g. + * `{ "volumes" : { "destination" : "/Volumes/my-init.sh" } }` + */ + volumes?: VolumesClass | string; + /** + * destination needs to be provided. e.g. + * `{ "workspace" : { "destination" : "/Users/user1@databricks.com/my-init.sh" } }` + */ + workspace?: IndecentBundleSchem | string; +} + +export interface AbfssClass { + /** + * abfss destination, e.g. + * `abfss://@.dfs.core.windows.net/`. + */ + destination: string; +} + +export interface IndigoBundleSchem { + /** + * local file destination, e.g. `file:/my/local/file.sh` + */ + destination: string; +} + +export interface GcsClass { + /** + * GCS destination/URI, e.g. `gs://my-bucket/some-prefix` + */ + destination: string; +} + +export interface VolumesClass { + /** + * Unity Catalog Volumes file destination, e.g. `/Volumes/my-init.sh` + */ + destination: string; +} + +export interface IndecentBundleSchem { + /** + * workspace files destination, e.g. `/Users/user1@databricks.com/my-init.sh` + */ + destination: string; +} + +/** + * Determines the cluster's runtime engine, either standard or Photon. * - * Identifier for the availability zone in which the cluster resides. - * This can be one of the following: - * - "HA" => High availability, spread nodes across availability zones for a Databricks - * deployment region [default] - * - "AUTO" => Databricks picks an availability zone to schedule the cluster on. - * - A GCP availability zone => Pick One of the available zones for (machine type + region) - * from https://cloud.google.com/compute/docs/regions-zones. + * This field is not compatible with legacy `spark_version` values that contain `-photon-`. + * Remove `-photon-` from the `spark_version` and set `runtime_engine` to `PHOTON`. * - * abfss destination, e.g. - * `abfss://@.dfs.core.windows.net/`. + * If left unspecified, the runtime engine defaults to standard unless the spark_version + * contains -photon-, in which case Photon will be used. + */ +export enum RuntimeEngine { + Null = "NULL", + Photon = "PHOTON", + Standard = "STANDARD", +} + +export interface WorkloadTypeClass { + /** + * defined what type of clients can use the cluster. E.g. Notebooks, Jobs + */ + clients: ClientsClass | string; +} + +export interface ClientsClass { + /** + * With jobs set, the cluster can be used for jobs + */ + jobs?: boolean | string; + /** + * With notebooks set, this cluster can be used for notebooks + */ + notebooks?: boolean | string; +} + +export interface ExperimentClass { + /** + * Location where artifacts for the experiment are stored. + */ + artifact_location?: string; + /** + * Creation time + */ + creation_time?: number | string; + /** + * Unique identifier for the experiment. + */ + experiment_id?: string; + /** + * Last update time + */ + last_update_time?: number | string; + /** + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + */ + lifecycle_stage?: string; + /** + * Human readable name that identifies the experiment. + */ + name?: string; + permissions?: Array | string; + /** + * Tags: Additional metadata key-value pairs. + */ + tags?: Array | string; +} + +export interface HilariousBundleSchem { + /** + * The tag key. + */ + key?: string; + /** + * The tag value. + */ + value?: string; +} + +export interface JobClass { + /** + * An optional continuous property for this job. The continuous property will ensure that + * there is always one run executing. Only one of `schedule` and `continuous` can be used. + */ + continuous?: ContinuousClass | string; + /** + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + */ + description?: string; + /** + * An optional set of email addresses that is notified when runs of this job begin or + * complete as well as when this job is deleted. + */ + email_notifications?: AmbitiousBundleSchem | string; + /** + * A list of task execution environment specifications that can be referenced by serverless + * tasks of this job. + * An environment is required to be present for serverless tasks. + * For serverless notebook tasks, the environment is accessible in the notebook environment + * panel. + * For other serverless tasks, the task environment is required to be specified using + * environment_key in the task settings. + */ + environments?: Array | string; + /** + * An optional specification for a remote Git repository containing the source code used by + * tasks. Version-controlled source code is supported by notebook, dbt, Python script, and + * SQL File tasks. + * + * If `git_source` is set, these tasks retrieve the file from the remote repository by + * default. However, this behavior can be overridden by setting `source` to `WORKSPACE` on + * the task. + * + * Note: dbt and SQL File tasks support only version-controlled sources. If dbt or SQL File + * tasks are used, `git_source` must be defined on the job. + */ + git_source?: GitSourceClass | string; + health?: HealthClass | string; + /** + * A list of job cluster specifications that can be shared and reused by tasks of this job. + * Libraries cannot be declared in a shared job cluster. You must declare dependent + * libraries in task settings. + */ + job_clusters?: Array | string; + /** + * An optional maximum allowed number of concurrent runs of the job. + * Set this value if you want to be able to execute multiple runs of the same job + * concurrently. + * This is useful for example if you trigger your job on a frequent schedule and want to + * allow consecutive runs to overlap with each other, or if you want to trigger multiple + * runs which differ by their input parameters. + * This setting affects only new runs. For example, suppose the job’s concurrency is 4 and + * there are 4 concurrent active runs. Then setting the concurrency to 3 won’t kill any of + * the active runs. + * However, from then on, new runs are skipped unless there are fewer than 3 active runs. + * This value cannot exceed 1000. Setting this value to `0` causes all new runs to be + * skipped. + */ + max_concurrent_runs?: number | string; + /** + * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. + */ + name?: string; + /** + * Optional notification settings that are used when sending notifications to each of the + * `email_notifications` and `webhook_notifications` for this job. + */ + notification_settings?: CunningBundleSchem | string; + /** + * Job-level parameter definitions + */ + parameters?: Array | string; + permissions?: Array | string; + /** + * The queue settings of the job. + */ + queue?: QueueClass | string; + run_as?: RunAsClass | string; + /** + * An optional periodic schedule for this job. The default behavior is that the job only + * runs when triggered by clicking “Run Now” in the Jobs UI or sending an API request to + * `runNow`. + */ + schedule?: MagentaBundleSchem | string; + /** + * A map of tags associated with the job. These are forwarded to the cluster as cluster tags + * for jobs clusters, and are subject to the same limitations as cluster tags. A maximum of + * 25 tags can be added to the job. + */ + tags?: {[key: string]: string} | string; + /** + * A list of task specifications to be executed by this job. + */ + tasks?: Array | string; + /** + * An optional timeout applied to each run of this job. A value of `0` means no timeout. + */ + timeout_seconds?: number | string; + /** + * A configuration to trigger a run when certain conditions are met. The default behavior is + * that the job runs only when triggered by clicking “Run Now” in the Jobs UI or sending an + * API request to `runNow`. + */ + trigger?: BundleSchem2 | string; + /** + * A collection of system notification IDs to notify when runs of this job begin or complete. + */ + webhook_notifications?: WebhookNotificationsClass | string; +} + +export interface ContinuousClass { + /** + * Indicate whether the continuous execution of the job is paused or not. Defaults to + * UNPAUSED. + */ + pause_status?: PauseStatus; +} + +/** + * Indicate whether the continuous execution of the job is paused or not. Defaults to + * UNPAUSED. * - * local file destination, e.g. `file:/my/local/file.sh` + * Indicate whether this schedule is paused or not. * - * GCS destination/URI, e.g. `gs://my-bucket/some-prefix` + * Whether this trigger is paused or not. * - * Unity Catalog Volumes file destination, e.g. `/Volumes/my-init.sh` + * Read only field that indicates whether a schedule is paused or not. * - * workspace files destination, e.g. `/Users/user1@databricks.com/my-init.sh` + * Nodes for this cluster will only be placed on AWS instances with this instance profile. + * If + * ommitted, nodes will be placed on instances without an IAM instance profile. The instance + * profile must have previously been added to the Databricks environment by an account + * administrator. * - * The optional ID of the instance pool to which the cluster belongs. + * This feature may only be available to certain customer plans. * - * This field encodes, through a single value, the resources available to each of - * the Spark nodes in this cluster. For example, the Spark nodes can be provisioned - * and optimized for memory or compute intensive workloads. A list of available node - * types can be retrieved by using the :method:clusters/listNodeTypes API call. + * If this field is ommitted, we will pull in the default from the conf if it exists. * + * Identifier for the availability zone/datacenter in which the cluster resides. + * This string will be of a form like "us-west-2a". The provided availability + * zone must be in the same region as the Databricks deployment. For example, "us-west-2a" + * is not a valid zone id if the Databricks deployment resides in the "us-east-1" region. + * This is an optional field at cluster creation, and if not specified, a default zone will + * be used. + * If the zone specified is "auto", will try to place cluster in a zone with high + * availability, + * and will retry placement in a different AZ if there is not enough capacity. + * The list of available zones as well as the default value can be found by using the + * `List Zones` method. * - * The ID of the cluster policy used to create the cluster if applicable. + * * - * Single user name if data_security_mode is `SINGLE_USER` + * dbfs destination, e.g. `dbfs:/my/path` * - * The Spark version of the cluster, e.g. `3.3.x-scala2.11`. - * A list of available Spark versions can be retrieved by using - * the :method:clusters/sparkVersions API call. + * (Optional) Set canned access control list for the logs, e.g. `bucket-owner-full-control`. + * If `canned_cal` is set, please make sure the cluster iam role has `s3:PutObjectAcl` + * permission on + * the destination bucket and prefix. The full list of possible canned acl can be found at + * http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl. + * Please also note that by default only the object owner gets full controls. If you are + * using cross account + * role for writing data, you may want to set `bucket-owner-full-control` to make bucket + * owner able to + * read the logs. * + * S3 destination, e.g. `s3://my-bucket/some-prefix` Note that logs will be delivered using + * cluster iam role, please make sure you set cluster iam role and the role has write access + * to the + * destination. Please also note that you cannot use AWS keys to deliver logs. * - * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. + * (Optional) The encryption type, it could be `sse-s3` or `sse-kms`. It will be used only + * when + * encryption is enabled and the default type is `sse-s3`. * - * Default value of the parameter. + * S3 endpoint, e.g. `https://s3-us-west-2.amazonaws.com`. Either region or endpoint needs + * to be set. + * If both are set, endpoint will be used. * - * The name of the defined parameter. May only contain alphanumeric characters, `_`, `-`, - * and `.` + * (Optional) Kms key which will be used if encryption is enabled and encryption type is set + * to `sse-kms`. * - * Application ID of an active service principal. Setting this field requires the - * `servicePrincipal/user` role. + * S3 region, e.g. `us-west-2`. Either region or endpoint needs to be set. If both are set, + * endpoint will be used. * - * The email of an active workspace user. Non-admin users can only set this field to their - * own email. + * Cluster name requested by the user. This doesn't have to be unique. + * If not specified at creation, the cluster name will be an empty string. * - * A Cron expression using Quartz syntax that describes the schedule for a job. See [Cron + * + * Password of the user + * + * Name of the user + * + * URL of the docker image. + * + * The optional ID of the instance pool for the driver of the cluster belongs. + * The pool cluster uses the instance pool with id (instance_pool_id) if the driver pool is + * not + * assigned. + * + * The node type of the Spark driver. Note that this field is optional; + * if unset, the driver node type will be set as the same value + * as `node_type_id` defined above. + * + * + * If provided, the cluster will impersonate the google service account when accessing + * gcloud services (like GCS). The google service account + * must have previously been added to the Databricks environment by an account + * administrator. + * + * Identifier for the availability zone in which the cluster resides. + * This can be one of the following: + * - "HA" => High availability, spread nodes across availability zones for a Databricks + * deployment region [default] + * - "AUTO" => Databricks picks an availability zone to schedule the cluster on. + * - A GCP availability zone => Pick One of the available zones for (machine type + region) + * from https://cloud.google.com/compute/docs/regions-zones. + * + * abfss destination, e.g. + * `abfss://@.dfs.core.windows.net/`. + * + * local file destination, e.g. `file:/my/local/file.sh` + * + * GCS destination/URI, e.g. `gs://my-bucket/some-prefix` + * + * Unity Catalog Volumes file destination, e.g. `/Volumes/my-init.sh` + * + * workspace files destination, e.g. `/Users/user1@databricks.com/my-init.sh` + * + * The optional ID of the instance pool to which the cluster belongs. + * + * This field encodes, through a single value, the resources available to each of + * the Spark nodes in this cluster. For example, the Spark nodes can be provisioned + * and optimized for memory or compute intensive workloads. A list of available node + * types can be retrieved by using the :method:clusters/listNodeTypes API call. + * + * + * The ID of the cluster policy used to create the cluster if applicable. + * + * Single user name if data_security_mode is `SINGLE_USER` + * + * The Spark version of the cluster, e.g. `3.3.x-scala2.11`. + * A list of available Spark versions can be retrieved by using + * the :method:clusters/sparkVersions API call. + * + * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * + * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. + * + * Default value of the parameter. + * + * The name of the defined parameter. May only contain alphanumeric characters, `_`, `-`, + * and `.` + * + * Application ID of an active service principal. Setting this field requires the + * `servicePrincipal/user` role. + * + * The email of an active workspace user. Non-admin users can only set this field to their + * own email. + * + * A Cron expression using Quartz syntax that describes the schedule for a job. See [Cron * Trigger](http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html) * for details. This field is required. * @@ -621,6 +1238,16 @@ export interface ContinuousClass { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -786,6 +1413,8 @@ export interface ContinuousClass { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -863,6 +1492,9 @@ export interface ContinuousClass { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -938,6 +1570,17 @@ export interface ContinuousClass { * * Storage root URL for managed tables within schema. * + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + * * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: * Anthropic, Cohere, AI21Labs, Amazon. * @@ -1000,49 +1643,11 @@ export enum PauseStatus { Unpaused = "UNPAUSED", } -export interface StickyBundleSchem { - /** - * The kind of deployment that manages the job. - * - * * `BUNDLE`: The job is managed by Databricks Asset Bundle. - */ - kind: Kind; - /** - * Path of the file that contains deployment metadata. - */ - metadata_file_path?: string; -} - -/** - * The kind of deployment that manages the job. - * - * * `BUNDLE`: The job is managed by Databricks Asset Bundle. - * - * * `BUNDLE`: The job is managed by Databricks Asset Bundle. - * - * The deployment method that manages the pipeline. - * - * The deployment method that manages the pipeline: - * - BUNDLE: The pipeline is managed by a Databricks Asset Bundle. - */ -export enum Kind { - Bundle = "BUNDLE", -} - -/** - * Edit mode of the job. - * - * * `UI_LOCKED`: The job is in a locked UI state and cannot be modified. - * * `EDITABLE`: The job is in an editable state and can be modified. - */ -export enum EditMode { - Editable = "EDITABLE", - UILocked = "UI_LOCKED", -} - -export interface IndigoBundleSchem { +export interface AmbitiousBundleSchem { /** * If true, do not send email to recipients specified in `on_failure` if the run is skipped. + * This field is `deprecated`. Please use the + * `notification_settings.no_alert_for_skipped_runs` field. */ no_alert_for_skipped_runs?: boolean | string; /** @@ -1115,15 +1720,6 @@ export interface SpecClass { dependencies?: string[] | string; } -/** - * Used to tell what is the format of the job. This field is ignored in Create/Update/Reset - * calls. When using the Jobs API 2.1 this value is always set to `"MULTI_TASK"`. - */ -export enum Format { - MultiTask = "MULTI_TASK", - SingleTask = "SINGLE_TASK", -} - /** * An optional specification for a remote Git repository containing the source code used by * tasks. Version-controlled source code is supported by notebook, dbt, Python script, and @@ -1152,7 +1748,6 @@ export interface GitSourceClass { * insensitive. */ git_provider: GitProvider; - git_snapshot?: GitSnapshotClass | string; /** * Name of the tag to be checked out and used by this job. This field cannot be specified in * conjunction with git_branch or git_commit. @@ -1162,11 +1757,6 @@ export interface GitSourceClass { * URL of the repository to be cloned by this job. */ git_url: string; - /** - * The source of the job specification in the remote repository when the job is source - * controlled. - */ - job_source?: JobSourceClass | string; } /** @@ -1184,72 +1774,6 @@ export enum GitProvider { GitLabEnterpriseEdition = "gitLabEnterpriseEdition", } -/** - * Read-only state of the remote repository at the time the job was run. This field is only - * included on job runs. - */ -export interface GitSnapshotClass { - /** - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. - */ - used_commit?: string; -} - -/** - * The source of the job specification in the remote repository when the job is source - * controlled. - */ -export interface JobSourceClass { - /** - * Dirty state indicates the job is not fully synced with the job specification in the - * remote repository. - * - * Possible values are: - * * `NOT_SYNCED`: The job is not yet synced with the remote job specification. Import the - * remote job specification from UI to make the job fully synced. - * * `DISCONNECTED`: The job is temporary disconnected from the remote job specification and - * is allowed for live edit. Import the remote job specification again from UI to make the - * job fully synced. - */ - dirty_state?: DirtyState; - /** - * Name of the branch which the job is imported from. - */ - import_from_git_branch: string; - /** - * Path of the job YAML file that contains the job specification. - */ - job_config_path: string; -} - -/** - * Dirty state indicates the job is not fully synced with the job specification in the - * remote repository. - * - * Possible values are: - * * `NOT_SYNCED`: The job is not yet synced with the remote job specification. Import the - * remote job specification from UI to make the job fully synced. - * * `DISCONNECTED`: The job is temporary disconnected from the remote job specification and - * is allowed for live edit. Import the remote job specification again from UI to make the - * job fully synced. - * - * Dirty state indicates the job is not fully synced with the job specification - * in the remote repository. - * - * Possible values are: - * * `NOT_SYNCED`: The job is not yet synced with the remote job specification. Import the - * remote job specification from UI to make the job fully synced. - * * `DISCONNECTED`: The job is temporary disconnected from the remote job specification and - * is allowed for live edit. Import the remote job specification again from UI to make the - * job fully synced. - */ -export enum DirtyState { - Disconnected = "DISCONNECTED", - NotSynced = "NOT_SYNCED", -} - /** * An optional set of health rules that can be defined for this job. */ @@ -1320,7 +1844,7 @@ export interface NewClusterClass { * Parameters needed in order to automatically scale clusters up and down based on load. * Note: autoscaling works best with DB runtime versions 3.0 or later. */ - autoscale?: IndecentBundleSchem | string; + autoscale?: StickyBundleSchem | string; /** * Automatically terminates the cluster after it is inactive for this time in minutes. If * not set, @@ -1474,1865 +1998,1976 @@ export interface NewClusterClass { workload_type?: WorkloadTypeClass | string; } -export interface IndecentBundleSchem { +export interface CunningBundleSchem { /** - * The maximum number of workers to which the cluster can scale up when overloaded. - * Note that `max_workers` must be strictly greater than `min_workers`. + * If true, do not send notifications to recipients specified in `on_failure` if the run is + * canceled. */ - max_workers?: number | string; + no_alert_for_canceled_runs?: boolean | string; /** - * The minimum number of workers to which the cluster can scale down when underutilized. - * It is also the initial number of workers the cluster will have after creation. + * If true, do not send notifications to recipients specified in `on_failure` if the run is + * skipped. */ - min_workers?: number | string; + no_alert_for_skipped_runs?: boolean | string; } -export interface AwsAttributesClass { - availability?: AwsAttributesAvailability; +export interface ParameterClass { /** - * The number of volumes launched for each instance. Users can choose up to 10 volumes. - * This feature is only enabled for supported node types. Legacy node types cannot specify - * custom EBS volumes. - * For node types with no instance store, at least one EBS volume needs to be specified; - * otherwise, cluster creation will fail. - * - * These EBS volumes will be mounted at `/ebs0`, `/ebs1`, and etc. - * Instance store volumes will be mounted at `/local_disk0`, `/local_disk1`, and etc. - * - * If EBS volumes are attached, Databricks will configure Spark to use only the EBS volumes - * for - * scratch storage because heterogenously sized scratch devices can lead to inefficient disk - * utilization. If no EBS volumes are attached, Databricks will configure Spark to use - * instance - * store volumes. - * - * Please note that if EBS volumes are specified, then the Spark configuration - * `spark.local.dir` - * will be overridden. + * Default value of the parameter. */ - ebs_volume_count?: number | string; + default: string; /** - * If using gp3 volumes, what IOPS to use for the disk. If this is not set, the maximum - * performance of a gp2 volume with the same volume size will be used. + * The name of the defined parameter. May only contain alphanumeric characters, `_`, `-`, + * and `.` */ - ebs_volume_iops?: number | string; + name: string; +} + +export interface QueueClass { /** - * The size of each EBS volume (in GiB) launched for each instance. For general purpose - * SSD, this value must be within the range 100 - 4096. For throughput optimized HDD, - * this value must be within the range 500 - 4096. + * If true, enable queueing for the job. This is a required field. */ - ebs_volume_size?: number | string; + enabled: boolean | string; +} + +/** + * Write-only setting. Specifies the user, service principal or group that the job/pipeline + * runs as. If not specified, the job/pipeline runs as the user who created the + * job/pipeline. + * + * Exactly one of `user_name`, `service_principal_name`, `group_name` should be specified. + * If not, an error is thrown. + */ +export interface RunAsClass { /** - * If using gp3 volumes, what throughput to use for the disk. If this is not set, the - * maximum performance of a gp2 volume with the same volume size will be used. + * Application ID of an active service principal. Setting this field requires the + * `servicePrincipal/user` role. */ - ebs_volume_throughput?: number | string; - ebs_volume_type?: EbsVolumeType; + service_principal_name?: string; /** - * The first `first_on_demand` nodes of the cluster will be placed on on-demand instances. - * If this value is greater than 0, the cluster driver node in particular will be placed on - * an - * on-demand instance. If this value is greater than or equal to the current cluster size, - * all - * nodes will be placed on on-demand instances. If this value is less than the current - * cluster - * size, `first_on_demand` nodes will be placed on on-demand instances and the remainder - * will - * be placed on `availability` instances. Note that this value does not affect - * cluster size and cannot currently be mutated over the lifetime of a cluster. + * The email of an active workspace user. Non-admin users can only set this field to their + * own email. */ - first_on_demand?: number | string; + user_name?: string; +} + +export interface MagentaBundleSchem { /** - * Nodes for this cluster will only be placed on AWS instances with this instance profile. - * If - * ommitted, nodes will be placed on instances without an IAM instance profile. The instance - * profile must have previously been added to the Databricks environment by an account - * administrator. - * - * This feature may only be available to certain customer plans. - * - * If this field is ommitted, we will pull in the default from the conf if it exists. + * Indicate whether this schedule is paused or not. */ - instance_profile_arn?: string; + pause_status?: PauseStatus; /** - * The bid price for AWS spot instances, as a percentage of the corresponding instance - * type's - * on-demand price. - * For example, if this field is set to 50, and the cluster needs a new `r3.xlarge` spot - * instance, then the bid price is half of the price of - * on-demand `r3.xlarge` instances. Similarly, if this field is set to 200, the bid price is - * twice - * the price of on-demand `r3.xlarge` instances. If not specified, the default value is 100. - * When spot instances are requested for this cluster, only spot instances whose bid price - * percentage matches this field will be considered. - * Note that, for safety, we enforce this field to be no more than 10000. - * - * The default value and documentation here should be kept consistent with - * CommonConf.defaultSpotBidPricePercent and CommonConf.maxSpotBidPricePercent. + * A Cron expression using Quartz syntax that describes the schedule for a job. See [Cron + * Trigger](http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html) + * for details. This field is required. */ - spot_bid_price_percent?: number | string; + quartz_cron_expression: string; /** - * Identifier for the availability zone/datacenter in which the cluster resides. - * This string will be of a form like "us-west-2a". The provided availability - * zone must be in the same region as the Databricks deployment. For example, "us-west-2a" - * is not a valid zone id if the Databricks deployment resides in the "us-east-1" region. - * This is an optional field at cluster creation, and if not specified, a default zone will - * be used. - * If the zone specified is "auto", will try to place cluster in a zone with high - * availability, - * and will retry placement in a different AZ if there is not enough capacity. - * The list of available zones as well as the default value can be found by using the - * `List Zones` method. + * A Java timezone ID. The schedule for a job is resolved with respect to this timezone. See + * [Java TimeZone](https://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html) for + * details. This field is required. */ - zone_id?: string; -} - -/** - * Availability type used for all subsequent nodes past the `first_on_demand` ones. - * - * Note: If `first_on_demand` is zero, this availability type will be used for the entire - * cluster. - */ -export enum AwsAttributesAvailability { - OnDemand = "ON_DEMAND", - Spot = "SPOT", - SpotWithFallback = "SPOT_WITH_FALLBACK", -} - -/** - * The type of EBS volumes that will be launched with this cluster. - */ -export enum EbsVolumeType { - GeneralPurposeSSD = "GENERAL_PURPOSE_SSD", - ThroughputOptimizedHDD = "THROUGHPUT_OPTIMIZED_HDD", + timezone_id: string; } -export interface AzureAttributesClass { - availability?: AzureAttributesAvailability; +export interface ForEachTaskClass { /** - * The first `first_on_demand` nodes of the cluster will be placed on on-demand instances. - * This value should be greater than 0, to make sure the cluster driver node is placed on an - * on-demand instance. If this value is greater than or equal to the current cluster size, - * all - * nodes will be placed on on-demand instances. If this value is less than the current - * cluster - * size, `first_on_demand` nodes will be placed on on-demand instances and the remainder - * will - * be placed on `availability` instances. Note that this value does not affect - * cluster size and cannot currently be mutated over the lifetime of a cluster. + * An optional maximum allowed number of concurrent runs of the task. + * Set this value if you want to be able to execute multiple runs of the task concurrently. */ - first_on_demand?: number | string; + concurrency?: number | string; /** - * Defines values necessary to configure and run Azure Log Analytics agent + * Array for task to iterate on. This can be a JSON string or a reference to + * an array parameter. */ - log_analytics_info?: LogAnalyticsInfoClass | string; + inputs: string; /** - * The max bid price to be used for Azure spot instances. - * The Max price for the bid cannot be higher than the on-demand price of the instance. - * If not specified, the default value is -1, which specifies that the instance cannot be - * evicted - * on the basis of price, and only on the basis of availability. Further, the value should > - * 0 or -1. + * Configuration for the task that will be run for each element in the array */ - spot_bid_max_price?: number | string; -} - -/** - * Availability type used for all subsequent nodes past the `first_on_demand` ones. - * Note: If `first_on_demand` is zero (which only happens on pool clusters), this - * availability - * type will be used for the entire cluster. - */ -export enum AzureAttributesAvailability { - OnDemandAzure = "ON_DEMAND_AZURE", - SpotAzure = "SPOT_AZURE", - SpotWithFallbackAzure = "SPOT_WITH_FALLBACK_AZURE", + task: TaskClass | string; } -export interface LogAnalyticsInfoClass { +export interface TaskClass { /** - * + * If condition_task, specifies a condition with an outcome that can be used to control the + * execution of other tasks. Does not require a cluster to execute and does not support + * retries or notifications. */ - log_analytics_primary_key?: string; + condition_task?: ConditionTaskClass | string; /** - * + * If dbt_task, indicates that this must execute a dbt task. It requires both Databricks SQL + * and the ability to use a serverless or a pro SQL warehouse. */ - log_analytics_workspace_id?: string; -} - -export interface ClusterLogConfClass { + dbt_task?: DbtTaskClass | string; /** - * destination needs to be provided. e.g. - * `{ "dbfs" : { "destination" : "dbfs:/home/cluster_log" } }` + * An optional array of objects specifying the dependency graph of the task. All tasks + * specified in this field must complete before executing this task. The task will run only + * if the `run_if` condition is true. + * The key is `task_key`, and the value is the name assigned to the dependent task. */ - dbfs?: DbfsClass | string; + depends_on?: Array | string; /** - * destination and either the region or endpoint need to be provided. e.g. - * `{ "s3": { "destination" : "s3://cluster_log_bucket/prefix", "region" : "us-west-2" } }` - * Cluster iam role is used to access s3, please make sure the cluster iam role in - * `instance_profile_arn` has permission to write data to the s3 destination. + * An optional description for this task. */ - s3?: S3Class | string; -} - -export interface DbfsClass { + description?: string; /** - * dbfs destination, e.g. `dbfs:/my/path` + * An option to disable auto optimization in serverless */ - destination: string; -} - -export interface S3Class { + disable_auto_optimization?: boolean | string; /** - * (Optional) Set canned access control list for the logs, e.g. `bucket-owner-full-control`. - * If `canned_cal` is set, please make sure the cluster iam role has `s3:PutObjectAcl` - * permission on - * the destination bucket and prefix. The full list of possible canned acl can be found at - * http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl. - * Please also note that by default only the object owner gets full controls. If you are - * using cross account - * role for writing data, you may want to set `bucket-owner-full-control` to make bucket - * owner able to - * read the logs. + * An optional set of email addresses that is notified when runs of this task begin or + * complete as well as when this task is deleted. The default behavior is to not send any + * emails. */ - canned_acl?: string; + email_notifications?: FriskyBundleSchem | string; /** - * S3 destination, e.g. `s3://my-bucket/some-prefix` Note that logs will be delivered using - * cluster iam role, please make sure you set cluster iam role and the role has write access - * to the - * destination. Please also note that you cannot use AWS keys to deliver logs. + * The key that references an environment spec in a job. This field is required for Python + * script, Python wheel and dbt tasks when using serverless compute. */ - destination: string; + environment_key?: string; /** - * (Optional) Flag to enable server side encryption, `false` by default. + * If existing_cluster_id, the ID of an existing cluster that is used for all runs. + * When running jobs or tasks on an existing cluster, you may need to manually restart + * the cluster if it stops responding. We suggest running jobs and tasks on new clusters for + * greater reliability */ - enable_encryption?: boolean | string; + existing_cluster_id?: string; /** - * (Optional) The encryption type, it could be `sse-s3` or `sse-kms`. It will be used only - * when - * encryption is enabled and the default type is `sse-s3`. + * If for_each_task, indicates that this task must execute the nested task within it. */ - encryption_type?: string; + for_each_task?: ForEachTaskClass | string; + health?: HealthClass | string; /** - * S3 endpoint, e.g. `https://s3-us-west-2.amazonaws.com`. Either region or endpoint needs - * to be set. - * If both are set, endpoint will be used. + * If job_cluster_key, this task is executed reusing the cluster specified in + * `job.settings.job_clusters`. */ - endpoint?: string; + job_cluster_key?: string; /** - * (Optional) Kms key which will be used if encryption is enabled and encryption type is set - * to `sse-kms`. + * An optional list of libraries to be installed on the cluster. + * The default value is an empty list. */ - kms_key?: string; + libraries?: Array | string; /** - * S3 region, e.g. `us-west-2`. Either region or endpoint needs to be set. If both are set, - * endpoint will be used. + * An optional maximum number of times to retry an unsuccessful run. A run is considered to + * be unsuccessful if it completes with the `FAILED` result_state or `INTERNAL_ERROR` + * `life_cycle_state`. The value `-1` means to retry indefinitely and the value `0` means to + * never retry. */ - region?: string; -} - -/** - * Data security mode decides what data governance model to use when accessing data - * from a cluster. - * - * * `NONE`: No security isolation for multiple users sharing the cluster. Data governance - * features are not available in this mode. - * * `SINGLE_USER`: A secure cluster that can only be exclusively used by a single user - * specified in `single_user_name`. Most programming languages, cluster features and data - * governance features are available in this mode. - * * `USER_ISOLATION`: A secure cluster that can be shared by multiple users. Cluster users - * are fully isolated so that they cannot see each other's data and credentials. Most data - * governance features are supported in this mode. But programming languages and cluster - * features might be limited. - * - * The following modes are deprecated starting with Databricks Runtime 15.0 and - * will be removed for future Databricks Runtime versions: - * - * * `LEGACY_TABLE_ACL`: This mode is for users migrating from legacy Table ACL clusters. - * * `LEGACY_PASSTHROUGH`: This mode is for users migrating from legacy Passthrough on high - * concurrency clusters. - * * `LEGACY_SINGLE_USER`: This mode is for users migrating from legacy Passthrough on - * standard clusters. - * * `LEGACY_SINGLE_USER_STANDARD`: This mode provides a way that doesn’t have UC nor - * passthrough enabled. - */ -export enum DataSecurityMode { - LegacyPassthrough = "LEGACY_PASSTHROUGH", - LegacySingleUser = "LEGACY_SINGLE_USER", - LegacySingleUserStandard = "LEGACY_SINGLE_USER_STANDARD", - LegacyTableACL = "LEGACY_TABLE_ACL", - None = "NONE", - SingleUser = "SINGLE_USER", - UserIsolation = "USER_ISOLATION", -} - -export interface DockerImageClass { - basic_auth?: BasicAuthClass | string; - /** - * URL of the docker image. - */ - url?: string; -} - -export interface BasicAuthClass { + max_retries?: number | string; /** - * Password of the user + * An optional minimal interval in milliseconds between the start of the failed run and the + * subsequent retry run. The default behavior is that unsuccessful runs are immediately + * retried. */ - password?: string; + min_retry_interval_millis?: number | string; /** - * Name of the user + * If new_cluster, a description of a new cluster that is created for each run. */ - username?: string; -} - -export interface GcpAttributesClass { - availability?: GcpAttributesAvailability; + new_cluster?: NewClusterClass | string; /** - * boot disk size in GB + * If notebook_task, indicates that this task must run a notebook. This field may not be + * specified in conjunction with spark_jar_task. */ - boot_disk_size?: number | string; + notebook_task?: NotebookTaskClass | string; /** - * If provided, the cluster will impersonate the google service account when accessing - * gcloud services (like GCS). The google service account - * must have previously been added to the Databricks environment by an account - * administrator. + * Optional notification settings that are used when sending notifications to each of the + * `email_notifications` and `webhook_notifications` for this task. */ - google_service_account?: string; + notification_settings?: BraggadociousBundleSchem | string; /** - * If provided, each node (workers and driver) in the cluster will have this number of local - * SSDs attached. Each local SSD is 375GB in size. Refer to [GCP - * documentation](https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds) - * for the supported number of local SSDs for each instance type. + * If pipeline_task, indicates that this task must execute a Pipeline. */ - local_ssd_count?: number | string; + pipeline_task?: PipelineTaskClass | string; /** - * This field determines whether the spark executors will be scheduled to run on preemptible - * VMs (when set to true) versus standard compute engine VMs (when set to false; default). - * Note: Soon to be deprecated, use the availability field instead. + * If python_wheel_task, indicates that this job must execute a PythonWheel. */ - use_preemptible_executors?: boolean | string; + python_wheel_task?: PythonWheelTaskClass | string; /** - * Identifier for the availability zone in which the cluster resides. - * This can be one of the following: - * - "HA" => High availability, spread nodes across availability zones for a Databricks - * deployment region [default] - * - "AUTO" => Databricks picks an availability zone to schedule the cluster on. - * - A GCP availability zone => Pick One of the available zones for (machine type + region) - * from https://cloud.google.com/compute/docs/regions-zones. + * An optional policy to specify whether to retry a job when it times out. The default + * behavior + * is to not retry on timeout. */ - zone_id?: string; -} - -/** - * This field determines whether the instance pool will contain preemptible - * VMs, on-demand VMs, or preemptible VMs with a fallback to on-demand VMs if the former is - * unavailable. - */ -export enum GcpAttributesAvailability { - OnDemandGcp = "ON_DEMAND_GCP", - PreemptibleGcp = "PREEMPTIBLE_GCP", - PreemptibleWithFallbackGcp = "PREEMPTIBLE_WITH_FALLBACK_GCP", -} - -export interface InitScriptClass { + retry_on_timeout?: boolean | string; /** - * destination needs to be provided. e.g. - * `{ "abfss" : { "destination" : - * "abfss://@.dfs.core.windows.net/" } - * } + * An optional value specifying the condition determining whether the task is run once its + * dependencies have been completed. + * + * * `ALL_SUCCESS`: All dependencies have executed and succeeded + * * `AT_LEAST_ONE_SUCCESS`: At least one dependency has succeeded + * * `NONE_FAILED`: None of the dependencies have failed and at least one was executed + * * `ALL_DONE`: All dependencies have been completed + * * `AT_LEAST_ONE_FAILED`: At least one dependency failed + * * `ALL_FAILED`: ALl dependencies have failed */ - abfss?: AbfssClass | string; + run_if?: RunIf; /** - * destination needs to be provided. e.g. - * `{ "dbfs" : { "destination" : "dbfs:/home/cluster_log" } }` + * If run_job_task, indicates that this task must execute another job. */ - dbfs?: DbfsClass | string; + run_job_task?: RunJobTaskClass | string; /** - * destination needs to be provided. e.g. - * `{ "file" : { "destination" : "file:/my/local/file.sh" } }` + * If spark_jar_task, indicates that this task must run a JAR. */ - file?: HilariousBundleSchem | string; + spark_jar_task?: SparkJarTaskClass | string; /** - * destination needs to be provided. e.g. - * `{ "gcs": { "destination": "gs://my-bucket/file.sh" } }` + * If spark_python_task, indicates that this task must run a Python file. */ - gcs?: GcsClass | string; + spark_python_task?: SparkPythonTaskClass | string; /** - * destination and either the region or endpoint need to be provided. e.g. - * `{ "s3": { "destination" : "s3://cluster_log_bucket/prefix", "region" : "us-west-2" } }` - * Cluster iam role is used to access s3, please make sure the cluster iam role in - * `instance_profile_arn` has permission to write data to the s3 destination. + * If `spark_submit_task`, indicates that this task must be launched by the spark submit + * script. This task can run only on new clusters. + * + * In the `new_cluster` specification, `libraries` and `spark_conf` are not supported. + * Instead, use `--jars` and `--py-files` to add Java and Python libraries and `--conf` to + * set the Spark configurations. + * + * `master`, `deploy-mode`, and `executor-cores` are automatically configured by Databricks; + * you _cannot_ specify them in parameters. + * + * By default, the Spark submit job uses all available memory (excluding reserved memory for + * Databricks services). You can set `--driver-memory`, and `--executor-memory` to a smaller + * value to leave some room for off-heap usage. + * + * The `--jars`, `--py-files`, `--files` arguments support DBFS and S3 paths. */ - s3?: S3Class | string; + spark_submit_task?: SparkSubmitTaskClass | string; /** - * destination needs to be provided. e.g. - * `{ "volumes" : { "destination" : "/Volumes/my-init.sh" } }` + * If sql_task, indicates that this job must execute a SQL task. */ - volumes?: VolumesClass | string; + sql_task?: SQLTaskClass | string; /** - * destination needs to be provided. e.g. - * `{ "workspace" : { "destination" : "/Users/user1@databricks.com/my-init.sh" } }` + * A unique name for the task. This field is used to refer to this task from other tasks. + * This field is required and must be unique within its parent job. + * On Update or Reset, this field is used to reference the tasks to be updated or reset. */ - workspace?: AmbitiousBundleSchem | string; -} - -export interface AbfssClass { + task_key: string; /** - * abfss destination, e.g. - * `abfss://@.dfs.core.windows.net/`. + * An optional timeout applied to each run of this job task. A value of `0` means no timeout. */ - destination: string; -} - -export interface HilariousBundleSchem { + timeout_seconds?: number | string; /** - * local file destination, e.g. `file:/my/local/file.sh` + * A collection of system notification IDs to notify when runs of this task begin or + * complete. The default behavior is to not send any system notifications. */ - destination: string; + webhook_notifications?: WebhookNotificationsClass | string; } -export interface GcsClass { +export interface ConditionTaskClass { /** - * GCS destination/URI, e.g. `gs://my-bucket/some-prefix` + * The left operand of the condition task. Can be either a string value or a job state or + * parameter reference. */ - destination: string; -} - -export interface VolumesClass { + left: string; /** - * Unity Catalog Volumes file destination, e.g. `/Volumes/my-init.sh` + * * `EQUAL_TO`, `NOT_EQUAL` operators perform string comparison of their operands. This + * means that `“12.0” == “12”` will evaluate to `false`. + * * `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL` operators + * perform numeric comparison of their operands. `“12.0” >= “12”` will evaluate to `true`, + * `“10.0” >= “12”` will evaluate to `false`. + * + * The boolean comparison to task values can be implemented with operators `EQUAL_TO`, + * `NOT_EQUAL`. If a task value was set to a boolean value, it will be serialized to + * `“true”` or `“false”` for the comparison. */ - destination: string; -} - -export interface AmbitiousBundleSchem { + op: ConditionTaskOp; /** - * workspace files destination, e.g. `/Users/user1@databricks.com/my-init.sh` + * The right operand of the condition task. Can be either a string value or a job state or + * parameter reference. */ - destination: string; + right: string; } /** - * Decides which runtime engine to be use, e.g. Standard vs. Photon. If unspecified, the - * runtime - * engine is inferred from spark_version. + * * `EQUAL_TO`, `NOT_EQUAL` operators perform string comparison of their operands. This + * means that `“12.0” == “12”` will evaluate to `false`. + * * `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL` operators + * perform numeric comparison of their operands. `“12.0” >= “12”` will evaluate to `true`, + * `“10.0” >= “12”` will evaluate to `false`. + * + * The boolean comparison to task values can be implemented with operators `EQUAL_TO`, + * `NOT_EQUAL`. If a task value was set to a boolean value, it will be serialized to + * `“true”` or `“false”` for the comparison. */ -export enum RuntimeEngine { - Null = "NULL", - Photon = "PHOTON", - Standard = "STANDARD", +export enum ConditionTaskOp { + EqualTo = "EQUAL_TO", + GreaterThan = "GREATER_THAN", + GreaterThanOrEqual = "GREATER_THAN_OR_EQUAL", + LessThan = "LESS_THAN", + LessThanOrEqual = "LESS_THAN_OR_EQUAL", + NotEqual = "NOT_EQUAL", } -export interface WorkloadTypeClass { +export interface DbtTaskClass { /** - * defined what type of clients can use the cluster. E.g. Notebooks, Jobs + * Optional name of the catalog to use. The value is the top level in the 3-level namespace + * of Unity Catalog (catalog / schema / relation). The catalog value can only be specified + * if a warehouse_id is specified. Requires dbt-databricks >= 1.1.1. */ - clients: ClientsClass | string; -} - -export interface ClientsClass { + catalog?: string; /** - * With jobs set, the cluster can be used for jobs + * A list of dbt commands to execute. All commands must start with `dbt`. This parameter + * must not be empty. A maximum of up to 10 commands can be provided. */ - jobs?: boolean | string; + commands: string[] | string; /** - * With notebooks set, this cluster can be used for notebooks + * Optional (relative) path to the profiles directory. Can only be specified if no + * warehouse_id is specified. If no warehouse_id is specified and this folder is unset, the + * root directory is used. */ - notebooks?: boolean | string; -} - -export interface CunningBundleSchem { + profiles_directory?: string; /** - * If true, do not send notifications to recipients specified in `on_failure` if the run is - * canceled. + * Path to the project directory. Optional for Git sourced tasks, in which + * case if no value is provided, the root of the Git repository is used. */ - no_alert_for_canceled_runs?: boolean | string; + project_directory?: string; /** - * If true, do not send notifications to recipients specified in `on_failure` if the run is - * skipped. + * Optional schema to write to. This parameter is only used when a warehouse_id is also + * provided. If not provided, the `default` schema is used. */ - no_alert_for_skipped_runs?: boolean | string; -} - -export interface ParameterClass { + schema?: string; /** - * Default value of the parameter. + * Optional location type of the project directory. When set to `WORKSPACE`, the project + * will be retrieved + * from the local Databricks workspace. When set to `GIT`, the project will be retrieved + * from a Git repository + * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` + * is defined and `WORKSPACE` otherwise. + * + * * `WORKSPACE`: Project is located in Databricks workspace. + * * `GIT`: Project is located in cloud Git provider. */ - default: string; + source?: Source; /** - * The name of the defined parameter. May only contain alphanumeric characters, `_`, `-`, - * and `.` - */ - name: string; -} - -export interface QueueClass { - /** - * If true, enable queueing for the job. This is a required field. + * ID of the SQL warehouse to connect to. If provided, we automatically generate and provide + * the profile and connection details to dbt. It can be overridden on a per-command basis by + * using the `--profiles-dir` command line argument. */ - enabled: boolean | string; + warehouse_id?: string; } /** - * Write-only setting, available only in Create/Update/Reset and Submit calls. Specifies the - * user or service principal that the job runs as. If not specified, the job runs as the - * user who created the job. + * Optional location type of the project directory. When set to `WORKSPACE`, the project + * will be retrieved + * from the local Databricks workspace. When set to `GIT`, the project will be retrieved + * from a Git repository + * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` + * is defined and `WORKSPACE` otherwise. + * + * * `WORKSPACE`: Project is located in Databricks workspace. + * * `GIT`: Project is located in cloud Git provider. + * + * Optional location type of the SQL file. When set to `WORKSPACE`, the SQL file will be + * retrieved\ + * from the local Databricks workspace. When set to `GIT`, the SQL file will be retrieved + * from a Git repository + * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` + * is defined and `WORKSPACE` otherwise. + * + * * `WORKSPACE`: SQL file is located in Databricks workspace. + * * `GIT`: SQL file is located in cloud Git provider. + * + * Optional location type of the notebook. When set to `WORKSPACE`, the notebook will be + * retrieved from the local Databricks workspace. When set to `GIT`, the notebook will be + * retrieved from a Git repository + * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` + * is defined and `WORKSPACE` otherwise. + * * `WORKSPACE`: Notebook is located in Databricks workspace. + * * `GIT`: Notebook is located in cloud Git provider. + * + * Optional location type of the Python file. When set to `WORKSPACE` or not specified, the + * file will be retrieved from the local + * Databricks workspace or cloud location (if the `python_file` has a URI format). When set + * to `GIT`, + * the Python file will be retrieved from a Git repository defined in `git_source`. + * + * * `WORKSPACE`: The Python file is located in a Databricks workspace or at a cloud + * filesystem URI. + * * `GIT`: The Python file is located in a remote Git repository. * - * Only `user_name` or `service_principal_name` can be specified. If both are specified, an - * error is thrown. + * Optional location type of the SQL file. When set to `WORKSPACE`, the SQL file will be + * retrieved + * from the local Databricks workspace. When set to `GIT`, the SQL file will be retrieved + * from a Git repository + * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` + * is defined and `WORKSPACE` otherwise. + * + * * `WORKSPACE`: SQL file is located in Databricks workspace. + * * `GIT`: SQL file is located in cloud Git provider. */ -export interface RunAsClass { +export enum Source { + Git = "GIT", + Workspace = "WORKSPACE", +} + +export interface DependsOnClass { /** - * Application ID of an active service principal. Setting this field requires the - * `servicePrincipal/user` role. + * Can only be specified on condition task dependencies. The outcome of the dependent task + * that must be met for this task to run. */ - service_principal_name?: string; + outcome?: string; /** - * The email of an active workspace user. Non-admin users can only set this field to their - * own email. + * The name of the task this task depends on. */ - user_name?: string; + task_key: string; } -export interface MagentaBundleSchem { +export interface FriskyBundleSchem { /** - * Indicate whether this schedule is paused or not. + * If true, do not send email to recipients specified in `on_failure` if the run is skipped. + * This field is `deprecated`. Please use the + * `notification_settings.no_alert_for_skipped_runs` field. */ - pause_status?: PauseStatus; + no_alert_for_skipped_runs?: boolean | string; /** - * A Cron expression using Quartz syntax that describes the schedule for a job. See [Cron - * Trigger](http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html) - * for details. This field is required. + * A list of email addresses to be notified when the duration of a run exceeds the threshold + * specified for the `RUN_DURATION_SECONDS` metric in the `health` field. If no rule for the + * `RUN_DURATION_SECONDS` metric is specified in the `health` field for the job, + * notifications are not sent. */ - quartz_cron_expression: string; + on_duration_warning_threshold_exceeded?: string[] | string; /** - * A Java timezone ID. The schedule for a job is resolved with respect to this timezone. See - * [Java TimeZone](https://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html) for - * details. This field is required. + * A list of email addresses to be notified when a run unsuccessfully completes. A run is + * considered to have completed unsuccessfully if it ends with an `INTERNAL_ERROR` + * `life_cycle_state` or a `FAILED`, or `TIMED_OUT` result_state. If this is not specified + * on job creation, reset, or update the list is empty, and notifications are not sent. */ - timezone_id: string; -} - -export interface ForEachTaskClass { + on_failure?: string[] | string; /** - * An optional maximum allowed number of concurrent runs of the task. - * Set this value if you want to be able to execute multiple runs of the task concurrently. + * A list of email addresses to be notified when a run begins. If not specified on job + * creation, reset, or update, the list is empty, and notifications are not sent. */ - concurrency?: number | string; + on_start?: string[] | string; /** - * Array for task to iterate on. This can be a JSON string or a reference to - * an array parameter. + * A list of email addresses to notify when any streaming backlog thresholds are exceeded + * for any stream. + * Streaming backlog thresholds can be set in the `health` field using the following + * metrics: `STREAMING_BACKLOG_BYTES`, `STREAMING_BACKLOG_RECORDS`, + * `STREAMING_BACKLOG_SECONDS`, or `STREAMING_BACKLOG_FILES`. + * Alerting is based on the 10-minute average of these metrics. If the issue persists, + * notifications are resent every 30 minutes. */ - inputs: string; + on_streaming_backlog_exceeded?: string[] | string; /** - * Configuration for the task that will be run for each element in the array + * A list of email addresses to be notified when a run successfully completes. A run is + * considered to have completed successfully if it ends with a `TERMINATED` + * `life_cycle_state` and a `SUCCESS` result_state. If not specified on job creation, reset, + * or update, the list is empty, and notifications are not sent. */ - task: TaskClass | string; + on_success?: string[] | string; } -export interface TaskClass { - /** - * If condition_task, specifies a condition with an outcome that can be used to control the - * execution of other tasks. Does not require a cluster to execute and does not support - * retries or notifications. - */ - condition_task?: ConditionTaskClass | string; - /** - * If dbt_task, indicates that this must execute a dbt task. It requires both Databricks SQL - * and the ability to use a serverless or a pro SQL warehouse. - */ - dbt_task?: DbtTaskClass | string; +export interface MischievousBundleSchem { /** - * An optional array of objects specifying the dependency graph of the task. All tasks - * specified in this field must complete before executing this task. The task will run only - * if the `run_if` condition is true. - * The key is `task_key`, and the value is the name assigned to the dependent task. + * Specification of a CRAN library to be installed as part of the library */ - depends_on?: Array | string; + cran?: CRANClass | string; /** - * An optional description for this task. + * Deprecated. URI of the egg library to install. Installing Python egg files is deprecated + * and is not supported in Databricks Runtime 14.0 and above. */ - description?: string; + egg?: string; /** - * An option to disable auto optimization in serverless + * URI of the JAR library to install. Supported URIs include Workspace paths, Unity Catalog + * Volumes paths, and S3 URIs. + * For example: `{ "jar": "/Workspace/path/to/library.jar" }`, `{ "jar" : + * "/Volumes/path/to/library.jar" }` or + * `{ "jar": "s3://my-bucket/library.jar" }`. + * If S3 is used, please make sure the cluster has read access on the library. You may need + * to + * launch the cluster with an IAM role to access the S3 URI. */ - disable_auto_optimization?: boolean | string; + jar?: string; /** - * An optional set of email addresses that is notified when runs of this task begin or - * complete as well as when this task is deleted. The default behavior is to not send any - * emails. + * Specification of a maven library to be installed. For example: + * `{ "coordinates": "org.jsoup:jsoup:1.7.2" }` */ - email_notifications?: FriskyBundleSchem | string; + maven?: MavenClass | string; /** - * The key that references an environment spec in a job. This field is required for Python - * script, Python wheel and dbt tasks when using serverless compute. + * Specification of a PyPi library to be installed. For example: + * `{ "package": "simplejson" }` */ - environment_key?: string; + pypi?: PypiClass | string; /** - * If existing_cluster_id, the ID of an existing cluster that is used for all runs. - * When running jobs or tasks on an existing cluster, you may need to manually restart - * the cluster if it stops responding. We suggest running jobs and tasks on new clusters for - * greater reliability + * URI of the requirements.txt file to install. Only Workspace paths and Unity Catalog + * Volumes paths are supported. + * For example: `{ "requirements": "/Workspace/path/to/requirements.txt" }` or `{ + * "requirements" : "/Volumes/path/to/requirements.txt" }` */ - existing_cluster_id?: string; + requirements?: string; /** - * If for_each_task, indicates that this task must execute the nested task within it. + * URI of the wheel library to install. Supported URIs include Workspace paths, Unity + * Catalog Volumes paths, and S3 URIs. + * For example: `{ "whl": "/Workspace/path/to/library.whl" }`, `{ "whl" : + * "/Volumes/path/to/library.whl" }` or + * `{ "whl": "s3://my-bucket/library.whl" }`. + * If S3 is used, please make sure the cluster has read access on the library. You may need + * to + * launch the cluster with an IAM role to access the S3 URI. */ - for_each_task?: ForEachTaskClass | string; - health?: HealthClass | string; + whl?: string; +} + +export interface CRANClass { /** - * If job_cluster_key, this task is executed reusing the cluster specified in - * `job.settings.job_clusters`. + * The name of the CRAN package to install. */ - job_cluster_key?: string; + package: string; /** - * An optional list of libraries to be installed on the cluster. - * The default value is an empty list. + * The repository where the package can be found. If not specified, the default CRAN repo is + * used. */ - libraries?: Array | string; + repo?: string; +} + +export interface MavenClass { /** - * An optional maximum number of times to retry an unsuccessful run. A run is considered to - * be unsuccessful if it completes with the `FAILED` result_state or `INTERNAL_ERROR` - * `life_cycle_state`. The value `-1` means to retry indefinitely and the value `0` means to - * never retry. + * Gradle-style maven coordinates. For example: "org.jsoup:jsoup:1.7.2". */ - max_retries?: number | string; + coordinates: string; /** - * An optional minimal interval in milliseconds between the start of the failed run and the - * subsequent retry run. The default behavior is that unsuccessful runs are immediately - * retried. + * List of dependences to exclude. For example: `["slf4j:slf4j", "*:hadoop-client"]`. + * + * Maven dependency exclusions: + * + * https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html. */ - min_retry_interval_millis?: number | string; + exclusions?: string[] | string; /** - * If new_cluster, a description of a new cluster that is created for each run. + * Maven repo to install the Maven package from. If omitted, both Maven Central Repository + * and Spark Packages are searched. */ - new_cluster?: NewClusterClass | string; + repo?: string; +} + +export interface PypiClass { /** - * If notebook_task, indicates that this task must run a notebook. This field may not be - * specified in conjunction with spark_jar_task. + * The name of the pypi package to install. An optional exact version specification is also + * supported. Examples: "simplejson" and "simplejson==3.8.0". */ - notebook_task?: NotebookTaskClass | string; + package: string; /** - * Optional notification settings that are used when sending notifications to each of the - * `email_notifications` and `webhook_notifications` for this task. + * The repository where the package can be found. If not specified, the default pip index is + * used. */ - notification_settings?: BraggadociousBundleSchem | string; + repo?: string; +} + +export interface NotebookTaskClass { /** - * If pipeline_task, indicates that this task must execute a Pipeline. - */ - pipeline_task?: PipelineTaskClass | string; - /** - * If python_wheel_task, indicates that this job must execute a PythonWheel. - */ - python_wheel_task?: PythonWheelTaskClass | string; - /** - * An optional policy to specify whether to retry a job when it times out. The default - * behavior - * is to not retry on timeout. - */ - retry_on_timeout?: boolean | string; - /** - * An optional value specifying the condition determining whether the task is run once its - * dependencies have been completed. + * Base parameters to be used for each run of this job. If the run is initiated by a call to + * :method:jobs/run + * Now with parameters specified, the two parameters maps are merged. If the same key is + * specified in + * `base_parameters` and in `run-now`, the value from `run-now` is used. + * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) + * to set parameters containing information about job runs. * - * * `ALL_SUCCESS`: All dependencies have executed and succeeded - * * `AT_LEAST_ONE_SUCCESS`: At least one dependency has succeeded - * * `NONE_FAILED`: None of the dependencies have failed and at least one was executed - * * `ALL_DONE`: All dependencies have been completed - * * `AT_LEAST_ONE_FAILED`: At least one dependency failed - * * `ALL_FAILED`: ALl dependencies have failed + * If the notebook takes a parameter that is not specified in the job’s `base_parameters` or + * the `run-now` override parameters, + * the default value from the notebook is used. + * + * Retrieve these parameters in a notebook using + * [dbutils.widgets.get](https://docs.databricks.com/dev-tools/databricks-utils.html#dbutils-widgets). + * + * The JSON representation of this field cannot exceed 1MB. */ - run_if?: RunIf; + base_parameters?: {[key: string]: string} | string; /** - * If run_job_task, indicates that this task must execute another job. + * The path of the notebook to be run in the Databricks workspace or remote repository. + * For notebooks stored in the Databricks workspace, the path must be absolute and begin + * with a slash. + * For notebooks stored in a remote repository, the path must be relative. This field is + * required. */ - run_job_task?: RunJobTaskClass | string; + notebook_path: string; /** - * If spark_jar_task, indicates that this task must run a JAR. + * Optional location type of the notebook. When set to `WORKSPACE`, the notebook will be + * retrieved from the local Databricks workspace. When set to `GIT`, the notebook will be + * retrieved from a Git repository + * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` + * is defined and `WORKSPACE` otherwise. + * * `WORKSPACE`: Notebook is located in Databricks workspace. + * * `GIT`: Notebook is located in cloud Git provider. */ - spark_jar_task?: SparkJarTaskClass | string; + source?: Source; /** - * If spark_python_task, indicates that this task must run a Python file. + * Optional `warehouse_id` to run the notebook on a SQL warehouse. Classic SQL warehouses + * are NOT supported, please use serverless or pro SQL warehouses. + * + * Note that SQL warehouses only support SQL cells; if the notebook contains non-SQL cells, + * the run will fail. */ - spark_python_task?: SparkPythonTaskClass | string; + warehouse_id?: string; +} + +export interface BraggadociousBundleSchem { /** - * If `spark_submit_task`, indicates that this task must be launched by the spark submit - * script. This task can run only on new clusters. - * - * In the `new_cluster` specification, `libraries` and `spark_conf` are not supported. - * Instead, use `--jars` and `--py-files` to add Java and Python libraries and `--conf` to - * set the Spark configurations. - * - * `master`, `deploy-mode`, and `executor-cores` are automatically configured by Databricks; - * you _cannot_ specify them in parameters. - * - * By default, the Spark submit job uses all available memory (excluding reserved memory for - * Databricks services). You can set `--driver-memory`, and `--executor-memory` to a smaller - * value to leave some room for off-heap usage. - * - * The `--jars`, `--py-files`, `--files` arguments support DBFS and S3 paths. + * If true, do not send notifications to recipients specified in `on_start` for the retried + * runs and do not send notifications to recipients specified in `on_failure` until the last + * retry of the run. */ - spark_submit_task?: SparkSubmitTaskClass | string; + alert_on_last_attempt?: boolean | string; /** - * If sql_task, indicates that this job must execute a SQL task. + * If true, do not send notifications to recipients specified in `on_failure` if the run is + * canceled. */ - sql_task?: SQLTaskClass | string; + no_alert_for_canceled_runs?: boolean | string; /** - * A unique name for the task. This field is used to refer to this task from other tasks. - * This field is required and must be unique within its parent job. - * On Update or Reset, this field is used to reference the tasks to be updated or reset. + * If true, do not send notifications to recipients specified in `on_failure` if the run is + * skipped. */ - task_key: string; + no_alert_for_skipped_runs?: boolean | string; +} + +export interface PipelineTaskClass { /** - * An optional timeout applied to each run of this job task. A value of `0` means no timeout. + * If true, triggers a full refresh on the delta live table. */ - timeout_seconds?: number | string; + full_refresh?: boolean | string; /** - * A collection of system notification IDs to notify when runs of this task begin or - * complete. The default behavior is to not send any system notifications. + * The full name of the pipeline task to execute. */ - webhook_notifications?: WebhookNotificationsClass | string; + pipeline_id: string; } -export interface ConditionTaskClass { +export interface PythonWheelTaskClass { /** - * The left operand of the condition task. Can be either a string value or a job state or - * parameter reference. + * Named entry point to use, if it does not exist in the metadata of the package it executes + * the function from the package directly using `$packageName.$entryPoint()` */ - left: string; + entry_point: string; /** - * * `EQUAL_TO`, `NOT_EQUAL` operators perform string comparison of their operands. This - * means that `“12.0” == “12”` will evaluate to `false`. - * * `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL` operators - * perform numeric comparison of their operands. `“12.0” >= “12”` will evaluate to `true`, - * `“10.0” >= “12”` will evaluate to `false`. - * - * The boolean comparison to task values can be implemented with operators `EQUAL_TO`, - * `NOT_EQUAL`. If a task value was set to a boolean value, it will be serialized to - * `“true”` or `“false”` for the comparison. + * Command-line parameters passed to Python wheel task in the form of `["--name=task", + * "--data=dbfs:/path/to/data.json"]`. Leave it empty if `parameters` is not null. */ - op: ConditionTaskOp; + named_parameters?: {[key: string]: string} | string; /** - * The right operand of the condition task. Can be either a string value or a job state or - * parameter reference. + * Name of the package to execute */ - right: string; + package_name: string; + /** + * Command-line parameters passed to Python wheel task. Leave it empty if `named_parameters` + * is not null. + */ + parameters?: string[] | string; } /** - * * `EQUAL_TO`, `NOT_EQUAL` operators perform string comparison of their operands. This - * means that `“12.0” == “12”` will evaluate to `false`. - * * `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL` operators - * perform numeric comparison of their operands. `“12.0” >= “12”` will evaluate to `true`, - * `“10.0” >= “12”` will evaluate to `false`. + * An optional value specifying the condition determining whether the task is run once its + * dependencies have been completed. * - * The boolean comparison to task values can be implemented with operators `EQUAL_TO`, - * `NOT_EQUAL`. If a task value was set to a boolean value, it will be serialized to - * `“true”` or `“false”` for the comparison. + * * `ALL_SUCCESS`: All dependencies have executed and succeeded + * * `AT_LEAST_ONE_SUCCESS`: At least one dependency has succeeded + * * `NONE_FAILED`: None of the dependencies have failed and at least one was executed + * * `ALL_DONE`: All dependencies have been completed + * * `AT_LEAST_ONE_FAILED`: At least one dependency failed + * * `ALL_FAILED`: ALl dependencies have failed + * + * An optional value indicating the condition that determines whether the task should be run + * once its dependencies have been completed. When omitted, defaults to `ALL_SUCCESS`. + * + * Possible values are: + * * `ALL_SUCCESS`: All dependencies have executed and succeeded + * * `AT_LEAST_ONE_SUCCESS`: At least one dependency has succeeded + * * `NONE_FAILED`: None of the dependencies have failed and at least one was executed + * * `ALL_DONE`: All dependencies have been completed + * * `AT_LEAST_ONE_FAILED`: At least one dependency failed + * * `ALL_FAILED`: ALl dependencies have failed */ -export enum ConditionTaskOp { - EqualTo = "EQUAL_TO", - GreaterThan = "GREATER_THAN", - GreaterThanOrEqual = "GREATER_THAN_OR_EQUAL", - LessThan = "LESS_THAN", - LessThanOrEqual = "LESS_THAN_OR_EQUAL", - NotEqual = "NOT_EQUAL", +export enum RunIf { + AllDone = "ALL_DONE", + AllFailed = "ALL_FAILED", + AllSuccess = "ALL_SUCCESS", + AtLeastOneFailed = "AT_LEAST_ONE_FAILED", + AtLeastOneSuccess = "AT_LEAST_ONE_SUCCESS", + NoneFailed = "NONE_FAILED", } -export interface DbtTaskClass { - /** - * Optional name of the catalog to use. The value is the top level in the 3-level namespace - * of Unity Catalog (catalog / schema / relation). The catalog value can only be specified - * if a warehouse_id is specified. Requires dbt-databricks >= 1.1.1. - */ - catalog?: string; +export interface RunJobTaskClass { /** - * A list of dbt commands to execute. All commands must start with `dbt`. This parameter - * must not be empty. A maximum of up to 10 commands can be provided. + * An array of commands to execute for jobs with the dbt task, for example `"dbt_commands": + * ["dbt deps", "dbt seed", "dbt deps", "dbt seed", "dbt run"]` */ - commands: string[] | string; + dbt_commands?: string[] | string; /** - * Optional (relative) path to the profiles directory. Can only be specified if no - * warehouse_id is specified. If no warehouse_id is specified and this folder is unset, the - * root directory is used. + * A list of parameters for jobs with Spark JAR tasks, for example `"jar_params": ["john + * doe", "35"]`. + * The parameters are used to invoke the main function of the main class specified in the + * Spark JAR task. + * If not specified upon `run-now`, it defaults to an empty list. + * jar_params cannot be specified in conjunction with notebook_params. + * The JSON representation of this field (for example `{"jar_params":["john doe","35"]}`) + * cannot exceed 10,000 bytes. + * + * Use [Task parameter variables](/jobs.html\"#parameter-variables\") to set parameters + * containing information about job runs. */ - profiles_directory?: string; + jar_params?: string[] | string; /** - * Path to the project directory. Optional for Git sourced tasks, in which - * case if no value is provided, the root of the Git repository is used. + * ID of the job to trigger. */ - project_directory?: string; + job_id: number | string; /** - * Optional schema to write to. This parameter is only used when a warehouse_id is also - * provided. If not provided, the `default` schema is used. + * Job-level parameters used to trigger the job. */ - schema?: string; + job_parameters?: {[key: string]: string} | string; /** - * Optional location type of the project directory. When set to `WORKSPACE`, the project - * will be retrieved - * from the local Databricks workspace. When set to `GIT`, the project will be retrieved - * from a Git repository - * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` - * is defined and `WORKSPACE` otherwise. + * A map from keys to values for jobs with notebook task, for example `"notebook_params": + * {"name": "john doe", "age": "35"}`. + * The map is passed to the notebook and is accessible through the + * [dbutils.widgets.get](https://docs.databricks.com/dev-tools/databricks-utils.html) + * function. * - * * `WORKSPACE`: Project is located in Databricks workspace. - * * `GIT`: Project is located in cloud Git provider. + * If not specified upon `run-now`, the triggered run uses the job’s base parameters. + * + * notebook_params cannot be specified in conjunction with jar_params. + * + * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) + * to set parameters containing information about job runs. + * + * The JSON representation of this field (for example `{"notebook_params":{"name":"john + * doe","age":"35"}}`) cannot exceed 10,000 bytes. */ - source?: Source; + notebook_params?: {[key: string]: string} | string; /** - * ID of the SQL warehouse to connect to. If provided, we automatically generate and provide - * the profile and connection details to dbt. It can be overridden on a per-command basis by - * using the `--profiles-dir` command line argument. + * Controls whether the pipeline should perform a full refresh */ - warehouse_id?: string; -} - -/** - * Optional location type of the project directory. When set to `WORKSPACE`, the project - * will be retrieved - * from the local Databricks workspace. When set to `GIT`, the project will be retrieved - * from a Git repository - * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` - * is defined and `WORKSPACE` otherwise. - * - * * `WORKSPACE`: Project is located in Databricks workspace. - * * `GIT`: Project is located in cloud Git provider. - * - * Optional location type of the SQL file. When set to `WORKSPACE`, the SQL file will be - * retrieved\ - * from the local Databricks workspace. When set to `GIT`, the SQL file will be retrieved - * from a Git repository - * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` - * is defined and `WORKSPACE` otherwise. - * - * * `WORKSPACE`: SQL file is located in Databricks workspace. - * * `GIT`: SQL file is located in cloud Git provider. - * - * Optional location type of the notebook. When set to `WORKSPACE`, the notebook will be - * retrieved from the local Databricks workspace. When set to `GIT`, the notebook will be - * retrieved from a Git repository - * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` - * is defined and `WORKSPACE` otherwise. - * * `WORKSPACE`: Notebook is located in Databricks workspace. - * * `GIT`: Notebook is located in cloud Git provider. - * - * Optional location type of the Python file. When set to `WORKSPACE` or not specified, the - * file will be retrieved from the local - * Databricks workspace or cloud location (if the `python_file` has a URI format). When set - * to `GIT`, - * the Python file will be retrieved from a Git repository defined in `git_source`. - * - * * `WORKSPACE`: The Python file is located in a Databricks workspace or at a cloud - * filesystem URI. - * * `GIT`: The Python file is located in a remote Git repository. - * - * Optional location type of the SQL file. When set to `WORKSPACE`, the SQL file will be - * retrieved - * from the local Databricks workspace. When set to `GIT`, the SQL file will be retrieved - * from a Git repository - * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` - * is defined and `WORKSPACE` otherwise. - * - * * `WORKSPACE`: SQL file is located in Databricks workspace. - * * `GIT`: SQL file is located in cloud Git provider. - */ -export enum Source { - Git = "GIT", - Workspace = "WORKSPACE", -} - -export interface DependsOnClass { + pipeline_params?: PipelineParamsClass | string; + python_named_params?: {[key: string]: string} | string; /** - * Can only be specified on condition task dependencies. The outcome of the dependent task - * that must be met for this task to run. + * A list of parameters for jobs with Python tasks, for example `"python_params": ["john + * doe", "35"]`. + * The parameters are passed to Python file as command-line parameters. If specified upon + * `run-now`, it would overwrite + * the parameters specified in job setting. The JSON representation of this field (for + * example `{"python_params":["john doe","35"]}`) + * cannot exceed 10,000 bytes. + * + * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) + * to set parameters containing information about job runs. + * + * Important + * + * These parameters accept only Latin characters (ASCII character set). Using non-ASCII + * characters returns an error. + * Examples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis. */ - outcome?: string; + python_params?: string[] | string; /** - * The name of the task this task depends on. + * A list of parameters for jobs with spark submit task, for example `"spark_submit_params": + * ["--class", "org.apache.spark.examples.SparkPi"]`. + * The parameters are passed to spark-submit script as command-line parameters. If specified + * upon `run-now`, it would overwrite the + * parameters specified in job setting. The JSON representation of this field (for example + * `{"python_params":["john doe","35"]}`) + * cannot exceed 10,000 bytes. + * + * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) + * to set parameters containing information about job runs + * + * Important + * + * These parameters accept only Latin characters (ASCII character set). Using non-ASCII + * characters returns an error. + * Examples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis. */ - task_key: string; + spark_submit_params?: string[] | string; + /** + * A map from keys to values for jobs with SQL task, for example `"sql_params": {"name": + * "john doe", "age": "35"}`. The SQL alert task does not support custom parameters. + */ + sql_params?: {[key: string]: string} | string; } -export interface FriskyBundleSchem { +export interface PipelineParamsClass { /** - * If true, do not send email to recipients specified in `on_failure` if the run is skipped. + * If true, triggers a full refresh on the delta live table. */ - no_alert_for_skipped_runs?: boolean | string; + full_refresh?: boolean | string; +} + +export interface SparkJarTaskClass { /** - * A list of email addresses to be notified when the duration of a run exceeds the threshold - * specified for the `RUN_DURATION_SECONDS` metric in the `health` field. If no rule for the - * `RUN_DURATION_SECONDS` metric is specified in the `health` field for the job, - * notifications are not sent. + * Deprecated since 04/2016. Provide a `jar` through the `libraries` field instead. For an + * example, see :method:jobs/create. */ - on_duration_warning_threshold_exceeded?: string[] | string; + jar_uri?: string; /** - * A list of email addresses to be notified when a run unsuccessfully completes. A run is - * considered to have completed unsuccessfully if it ends with an `INTERNAL_ERROR` - * `life_cycle_state` or a `FAILED`, or `TIMED_OUT` result_state. If this is not specified - * on job creation, reset, or update the list is empty, and notifications are not sent. + * The full name of the class containing the main method to be executed. This class must be + * contained in a JAR provided as a library. + * + * The code must use `SparkContext.getOrCreate` to obtain a Spark context; otherwise, runs + * of the job fail. */ - on_failure?: string[] | string; + main_class_name?: string; /** - * A list of email addresses to be notified when a run begins. If not specified on job - * creation, reset, or update, the list is empty, and notifications are not sent. + * Parameters passed to the main method. + * + * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) + * to set parameters containing information about job runs. */ - on_start?: string[] | string; + parameters?: string[] | string; +} + +export interface SparkPythonTaskClass { /** - * A list of email addresses to notify when any streaming backlog thresholds are exceeded - * for any stream. - * Streaming backlog thresholds can be set in the `health` field using the following - * metrics: `STREAMING_BACKLOG_BYTES`, `STREAMING_BACKLOG_RECORDS`, - * `STREAMING_BACKLOG_SECONDS`, or `STREAMING_BACKLOG_FILES`. - * Alerting is based on the 10-minute average of these metrics. If the issue persists, - * notifications are resent every 30 minutes. + * Command line parameters passed to the Python file. + * + * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) + * to set parameters containing information about job runs. */ - on_streaming_backlog_exceeded?: string[] | string; + parameters?: string[] | string; /** - * A list of email addresses to be notified when a run successfully completes. A run is - * considered to have completed successfully if it ends with a `TERMINATED` - * `life_cycle_state` and a `SUCCESS` result_state. If not specified on job creation, reset, - * or update, the list is empty, and notifications are not sent. + * The Python file to be executed. Cloud file URIs (such as dbfs:/, s3:/, adls:/, gcs:/) and + * workspace paths are supported. For python files stored in the Databricks workspace, the + * path must be absolute and begin with `/`. For files stored in a remote repository, the + * path must be relative. This field is required. */ - on_success?: string[] | string; + python_file: string; + /** + * Optional location type of the Python file. When set to `WORKSPACE` or not specified, the + * file will be retrieved from the local + * Databricks workspace or cloud location (if the `python_file` has a URI format). When set + * to `GIT`, + * the Python file will be retrieved from a Git repository defined in `git_source`. + * + * * `WORKSPACE`: The Python file is located in a Databricks workspace or at a cloud + * filesystem URI. + * * `GIT`: The Python file is located in a remote Git repository. + */ + source?: Source; } -export interface MischievousBundleSchem { +export interface SparkSubmitTaskClass { /** - * Specification of a CRAN library to be installed as part of the library + * Command-line parameters passed to spark submit. + * + * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) + * to set parameters containing information about job runs. */ - cran?: CRANClass | string; + parameters?: string[] | string; +} + +export interface SQLTaskClass { /** - * Deprecated. URI of the egg library to install. Installing Python egg files is deprecated - * and is not supported in Databricks Runtime 14.0 and above. + * If alert, indicates that this job must refresh a SQL alert. */ - egg?: string; + alert?: AlertClass | string; /** - * URI of the JAR library to install. Supported URIs include Workspace paths, Unity Catalog - * Volumes paths, and S3 URIs. - * For example: `{ "jar": "/Workspace/path/to/library.jar" }`, `{ "jar" : - * "/Volumes/path/to/library.jar" }` or - * `{ "jar": "s3://my-bucket/library.jar" }`. - * If S3 is used, please make sure the cluster has read access on the library. You may need - * to - * launch the cluster with an IAM role to access the S3 URI. + * If dashboard, indicates that this job must refresh a SQL dashboard. */ - jar?: string; + dashboard?: DashboardClass | string; /** - * Specification of a maven library to be installed. For example: - * `{ "coordinates": "org.jsoup:jsoup:1.7.2" }` + * If file, indicates that this job runs a SQL file in a remote Git repository. */ - maven?: MavenClass | string; + file?: BundleSchem1 | string; /** - * Specification of a PyPi library to be installed. For example: - * `{ "package": "simplejson" }` + * Parameters to be used for each run of this job. The SQL alert task does not support + * custom parameters. */ - pypi?: PypiClass | string; + parameters?: {[key: string]: string} | string; /** - * URI of the requirements.txt file to install. Only Workspace paths and Unity Catalog - * Volumes paths are supported. - * For example: `{ "requirements": "/Workspace/path/to/requirements.txt" }` or `{ - * "requirements" : "/Volumes/path/to/requirements.txt" }` + * If query, indicates that this job must execute a SQL query. */ - requirements?: string; + query?: QueryClass | string; /** - * URI of the wheel library to install. Supported URIs include Workspace paths, Unity - * Catalog Volumes paths, and S3 URIs. - * For example: `{ "whl": "/Workspace/path/to/library.whl" }`, `{ "whl" : - * "/Volumes/path/to/library.whl" }` or - * `{ "whl": "s3://my-bucket/library.whl" }`. - * If S3 is used, please make sure the cluster has read access on the library. You may need - * to - * launch the cluster with an IAM role to access the S3 URI. + * The canonical identifier of the SQL warehouse. Recommended to use with serverless or pro + * SQL warehouses. Classic SQL warehouses are only supported for SQL alert, dashboard and + * query tasks and are limited to scheduled single-task jobs. */ - whl?: string; + warehouse_id: string; } -export interface CRANClass { +export interface AlertClass { /** - * The name of the CRAN package to install. + * The canonical identifier of the SQL alert. */ - package: string; + alert_id: string; /** - * The repository where the package can be found. If not specified, the default CRAN repo is - * used. + * If true, the alert notifications are not sent to subscribers. */ - repo?: string; + pause_subscriptions?: boolean | string; + /** + * If specified, alert notifications are sent to subscribers. + */ + subscriptions?: Array | string; } -export interface MavenClass { +export interface SubscriptionClass { /** - * Gradle-style maven coordinates. For example: "org.jsoup:jsoup:1.7.2". + * The canonical identifier of the destination to receive email notification. This parameter + * is mutually exclusive with user_name. You cannot set both destination_id and user_name + * for subscription notifications. */ - coordinates: string; + destination_id?: string; /** - * List of dependences to exclude. For example: `["slf4j:slf4j", "*:hadoop-client"]`. - * - * Maven dependency exclusions: - * - * https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html. - */ - exclusions?: string[] | string; - /** - * Maven repo to install the Maven package from. If omitted, both Maven Central Repository - * and Spark Packages are searched. + * The user name to receive the subscription email. This parameter is mutually exclusive + * with destination_id. You cannot set both destination_id and user_name for subscription + * notifications. */ - repo?: string; + user_name?: string; } -export interface PypiClass { +export interface DashboardClass { /** - * The name of the pypi package to install. An optional exact version specification is also - * supported. Examples: "simplejson" and "simplejson==3.8.0". + * Subject of the email sent to subscribers of this task. */ - package: string; + custom_subject?: string; /** - * The repository where the package can be found. If not specified, the default pip index is - * used. + * The canonical identifier of the SQL dashboard. */ - repo?: string; -} - -export interface NotebookTaskClass { + dashboard_id: string; /** - * Base parameters to be used for each run of this job. If the run is initiated by a call to - * :method:jobs/run - * Now with parameters specified, the two parameters maps are merged. If the same key is - * specified in - * `base_parameters` and in `run-now`, the value from `run-now` is used. - * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) - * to set parameters containing information about job runs. - * - * If the notebook takes a parameter that is not specified in the job’s `base_parameters` or - * the `run-now` override parameters, - * the default value from the notebook is used. - * - * Retrieve these parameters in a notebook using - * [dbutils.widgets.get](https://docs.databricks.com/dev-tools/databricks-utils.html#dbutils-widgets). - * - * The JSON representation of this field cannot exceed 1MB. + * If true, the dashboard snapshot is not taken, and emails are not sent to subscribers. */ - base_parameters?: {[key: string]: string} | string; + pause_subscriptions?: boolean | string; /** - * The path of the notebook to be run in the Databricks workspace or remote repository. - * For notebooks stored in the Databricks workspace, the path must be absolute and begin - * with a slash. - * For notebooks stored in a remote repository, the path must be relative. This field is - * required. + * If specified, dashboard snapshots are sent to subscriptions. */ - notebook_path: string; + subscriptions?: Array | string; +} + +export interface BundleSchem1 { /** - * Optional location type of the notebook. When set to `WORKSPACE`, the notebook will be - * retrieved from the local Databricks workspace. When set to `GIT`, the notebook will be - * retrieved from a Git repository + * Path of the SQL file. Must be relative if the source is a remote Git repository and + * absolute for workspace paths. + */ + path: string; + /** + * Optional location type of the SQL file. When set to `WORKSPACE`, the SQL file will be + * retrieved + * from the local Databricks workspace. When set to `GIT`, the SQL file will be retrieved + * from a Git repository * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` * is defined and `WORKSPACE` otherwise. - * * `WORKSPACE`: Notebook is located in Databricks workspace. - * * `GIT`: Notebook is located in cloud Git provider. + * + * * `WORKSPACE`: SQL file is located in Databricks workspace. + * * `GIT`: SQL file is located in cloud Git provider. */ source?: Source; +} + +export interface QueryClass { /** - * Optional `warehouse_id` to run the notebook on a SQL warehouse. Classic SQL warehouses - * are NOT supported, please use serverless or pro SQL warehouses. - * - * Note that SQL warehouses only support SQL cells; if the notebook contains non-SQL cells, - * the run will fail. + * The canonical identifier of the SQL query. */ - warehouse_id?: string; + query_id: string; } -export interface BraggadociousBundleSchem { +export interface WebhookNotificationsClass { /** - * If true, do not send notifications to recipients specified in `on_start` for the retried - * runs and do not send notifications to recipients specified in `on_failure` until the last - * retry of the run. + * An optional list of system notification IDs to call when the duration of a run exceeds + * the threshold specified for the `RUN_DURATION_SECONDS` metric in the `health` field. A + * maximum of 3 destinations can be specified for the + * `on_duration_warning_threshold_exceeded` property. */ - alert_on_last_attempt?: boolean | string; + on_duration_warning_threshold_exceeded?: + | Array + | string; /** - * If true, do not send notifications to recipients specified in `on_failure` if the run is - * canceled. + * An optional list of system notification IDs to call when the run fails. A maximum of 3 + * destinations can be specified for the `on_failure` property. */ - no_alert_for_canceled_runs?: boolean | string; + on_failure?: + | Array + | string; /** - * If true, do not send notifications to recipients specified in `on_failure` if the run is - * skipped. + * An optional list of system notification IDs to call when the run starts. A maximum of 3 + * destinations can be specified for the `on_start` property. */ - no_alert_for_skipped_runs?: boolean | string; + on_start?: Array | string; + /** + * An optional list of system notification IDs to call when any streaming backlog thresholds + * are exceeded for any stream. + * Streaming backlog thresholds can be set in the `health` field using the following + * metrics: `STREAMING_BACKLOG_BYTES`, `STREAMING_BACKLOG_RECORDS`, + * `STREAMING_BACKLOG_SECONDS`, or `STREAMING_BACKLOG_FILES`. + * Alerting is based on the 10-minute average of these metrics. If the issue persists, + * notifications are resent every 30 minutes. + * A maximum of 3 destinations can be specified for the `on_streaming_backlog_exceeded` + * property. + */ + on_streaming_backlog_exceeded?: + | Array + | string; + /** + * An optional list of system notification IDs to call when the run completes successfully. + * A maximum of 3 destinations can be specified for the `on_success` property. + */ + on_success?: + | Array + | string; } -export interface PipelineTaskClass { +export interface OnDurationWarningThresholdExceededClass { + id: string; +} + +export interface BundleSchem2 { /** - * If true, triggers a full refresh on the delta live table. + * File arrival trigger settings. */ - full_refresh?: boolean | string; + file_arrival?: FileArrivalClass | string; /** - * The full name of the pipeline task to execute. + * Whether this trigger is paused or not. */ - pipeline_id: string; + pause_status?: PauseStatus; + /** + * Periodic trigger settings. + */ + periodic?: PeriodicClass | string; + /** + * Old table trigger settings name. Deprecated in favor of `table_update`. + */ + table?: TableUpdateClass | string; + table_update?: TableUpdateClass | string; } -export interface PythonWheelTaskClass { +export interface FileArrivalClass { /** - * Named entry point to use, if it does not exist in the metadata of the package it executes - * the function from the package directly using `$packageName.$entryPoint()` + * If set, the trigger starts a run only after the specified amount of time passed since + * the last time the trigger fired. The minimum allowed value is 60 seconds */ - entry_point: string; + min_time_between_triggers_seconds?: number | string; /** - * Command-line parameters passed to Python wheel task in the form of `["--name=task", - * "--data=dbfs:/path/to/data.json"]`. Leave it empty if `parameters` is not null. + * URL to be monitored for file arrivals. The path must point to the root or a subpath of + * the external location. */ - named_parameters?: {[key: string]: string} | string; + url: string; /** - * Name of the package to execute + * If set, the trigger starts a run only after no file activity has occurred for the + * specified amount of time. + * This makes it possible to wait for a batch of incoming files to arrive before triggering + * a run. The + * minimum allowed value is 60 seconds. */ - package_name: string; + wait_after_last_change_seconds?: number | string; +} + +export interface PeriodicClass { /** - * Command-line parameters passed to Python wheel task. Leave it empty if `named_parameters` - * is not null. + * The interval at which the trigger should run. */ - parameters?: string[] | string; + interval: number | string; + /** + * The unit of time for the interval. + */ + unit: Unit; } /** - * An optional value specifying the condition determining whether the task is run once its - * dependencies have been completed. - * - * * `ALL_SUCCESS`: All dependencies have executed and succeeded - * * `AT_LEAST_ONE_SUCCESS`: At least one dependency has succeeded - * * `NONE_FAILED`: None of the dependencies have failed and at least one was executed - * * `ALL_DONE`: All dependencies have been completed - * * `AT_LEAST_ONE_FAILED`: At least one dependency failed - * * `ALL_FAILED`: ALl dependencies have failed - * - * An optional value indicating the condition that determines whether the task should be run - * once its dependencies have been completed. When omitted, defaults to `ALL_SUCCESS`. - * - * Possible values are: - * * `ALL_SUCCESS`: All dependencies have executed and succeeded - * * `AT_LEAST_ONE_SUCCESS`: At least one dependency has succeeded - * * `NONE_FAILED`: None of the dependencies have failed and at least one was executed - * * `ALL_DONE`: All dependencies have been completed - * * `AT_LEAST_ONE_FAILED`: At least one dependency failed - * * `ALL_FAILED`: ALl dependencies have failed + * The unit of time for the interval. */ -export enum RunIf { - AllDone = "ALL_DONE", - AllFailed = "ALL_FAILED", - AllSuccess = "ALL_SUCCESS", - AtLeastOneFailed = "AT_LEAST_ONE_FAILED", - AtLeastOneSuccess = "AT_LEAST_ONE_SUCCESS", - NoneFailed = "NONE_FAILED", +export enum Unit { + Days = "DAYS", + Hours = "HOURS", + Weeks = "WEEKS", } -export interface RunJobTaskClass { +export interface TableUpdateClass { /** - * An array of commands to execute for jobs with the dbt task, for example `"dbt_commands": - * ["dbt deps", "dbt seed", "dbt deps", "dbt seed", "dbt run"]` + * The table(s) condition based on which to trigger a job run. */ - dbt_commands?: string[] | string; + condition?: Condition; /** - * A list of parameters for jobs with Spark JAR tasks, for example `"jar_params": ["john - * doe", "35"]`. - * The parameters are used to invoke the main function of the main class specified in the - * Spark JAR task. - * If not specified upon `run-now`, it defaults to an empty list. - * jar_params cannot be specified in conjunction with notebook_params. - * The JSON representation of this field (for example `{"jar_params":["john doe","35"]}`) - * cannot exceed 10,000 bytes. - * - * Use [Task parameter variables](/jobs.html\"#parameter-variables\") to set parameters - * containing information about job runs. + * If set, the trigger starts a run only after the specified amount of time has passed since + * the last time the trigger fired. The minimum allowed value is 60 seconds. */ - jar_params?: string[] | string; + min_time_between_triggers_seconds?: number | string; /** - * ID of the job to trigger. + * A list of Delta tables to monitor for changes. The table name must be in the format + * `catalog_name.schema_name.table_name`. */ - job_id: number | string; + table_names?: string[] | string; /** - * Job-level parameters used to trigger the job. + * If set, the trigger starts a run only after no table updates have occurred for the + * specified time + * and can be used to wait for a series of table updates before triggering a run. The + * minimum allowed value is 60 seconds. */ - job_parameters?: {[key: string]: string} | string; - /** - * A map from keys to values for jobs with notebook task, for example `"notebook_params": - * {"name": "john doe", "age": "35"}`. - * The map is passed to the notebook and is accessible through the - * [dbutils.widgets.get](https://docs.databricks.com/dev-tools/databricks-utils.html) - * function. - * - * If not specified upon `run-now`, the triggered run uses the job’s base parameters. - * - * notebook_params cannot be specified in conjunction with jar_params. - * - * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) - * to set parameters containing information about job runs. - * - * The JSON representation of this field (for example `{"notebook_params":{"name":"john - * doe","age":"35"}}`) cannot exceed 10,000 bytes. - */ - notebook_params?: {[key: string]: string} | string; - pipeline_params?: PipelineParamsClass | string; - python_named_params?: {[key: string]: string} | string; - /** - * A list of parameters for jobs with Python tasks, for example `"python_params": ["john - * doe", "35"]`. - * The parameters are passed to Python file as command-line parameters. If specified upon - * `run-now`, it would overwrite - * the parameters specified in job setting. The JSON representation of this field (for - * example `{"python_params":["john doe","35"]}`) - * cannot exceed 10,000 bytes. - * - * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) - * to set parameters containing information about job runs. - * - * Important - * - * These parameters accept only Latin characters (ASCII character set). Using non-ASCII - * characters returns an error. - * Examples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis. - */ - python_params?: string[] | string; - /** - * A list of parameters for jobs with spark submit task, for example `"spark_submit_params": - * ["--class", "org.apache.spark.examples.SparkPi"]`. - * The parameters are passed to spark-submit script as command-line parameters. If specified - * upon `run-now`, it would overwrite the - * parameters specified in job setting. The JSON representation of this field (for example - * `{"python_params":["john doe","35"]}`) - * cannot exceed 10,000 bytes. - * - * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) - * to set parameters containing information about job runs - * - * Important - * - * These parameters accept only Latin characters (ASCII character set). Using non-ASCII - * characters returns an error. - * Examples of invalid, non-ASCII characters are Chinese, Japanese kanjis, and emojis. - */ - spark_submit_params?: string[] | string; - /** - * A map from keys to values for jobs with SQL task, for example `"sql_params": {"name": - * "john doe", "age": "35"}`. The SQL alert task does not support custom parameters. - */ - sql_params?: {[key: string]: string} | string; + wait_after_last_change_seconds?: number | string; } -export interface PipelineParamsClass { - /** - * If true, triggers a full refresh on the delta live table. - */ - full_refresh?: boolean | string; +/** + * The table(s) condition based on which to trigger a job run. + */ +export enum Condition { + AllUpdated = "ALL_UPDATED", + AnyUpdated = "ANY_UPDATED", } -export interface SparkJarTaskClass { - /** - * Deprecated since 04/2016. Provide a `jar` through the `libraries` field instead. For an - * example, see :method:jobs/create. - */ - jar_uri?: string; +export interface ModelServingEndpointClass { /** - * The full name of the class containing the main method to be executed. This class must be - * contained in a JAR provided as a library. - * - * The code must use `SparkContext.getOrCreate` to obtain a Spark context; otherwise, runs - * of the job fail. + * The AI Gateway configuration for the serving endpoint. NOTE: only external model + * endpoints are supported as of now. */ - main_class_name?: string; + ai_gateway?: AIGatewayClass | string; /** - * Parameters passed to the main method. - * - * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) - * to set parameters containing information about job runs. + * The core config of the serving endpoint. */ - parameters?: string[] | string; -} - -export interface SparkPythonTaskClass { + config: ConfigClass | string; /** - * Command line parameters passed to the Python file. - * - * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) - * to set parameters containing information about job runs. + * The name of the serving endpoint. This field is required and must be unique across a + * Databricks workspace. + * An endpoint name can consist of alphanumeric characters, dashes, and underscores. */ - parameters?: string[] | string; + name: string; + permissions?: Array | string; /** - * The Python file to be executed. Cloud file URIs (such as dbfs:/, s3:/, adls:/, gcs:/) and - * workspace paths are supported. For python files stored in the Databricks workspace, the - * path must be absolute and begin with `/`. For files stored in a remote repository, the - * path must be relative. This field is required. + * Rate limits to be applied to the serving endpoint. NOTE: this field is deprecated, please + * use AI Gateway to manage rate limits. */ - python_file: string; + rate_limits?: Array | string; /** - * Optional location type of the Python file. When set to `WORKSPACE` or not specified, the - * file will be retrieved from the local - * Databricks workspace or cloud location (if the `python_file` has a URI format). When set - * to `GIT`, - * the Python file will be retrieved from a Git repository defined in `git_source`. - * - * * `WORKSPACE`: The Python file is located in a Databricks workspace or at a cloud - * filesystem URI. - * * `GIT`: The Python file is located in a remote Git repository. + * Enable route optimization for the serving endpoint. */ - source?: Source; -} - -export interface SparkSubmitTaskClass { + route_optimized?: boolean | string; /** - * Command-line parameters passed to spark submit. - * - * Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) - * to set parameters containing information about job runs. + * Tags to be attached to the serving endpoint and automatically propagated to billing logs. */ - parameters?: string[] | string; + tags?: Array | string; } -export interface SQLTaskClass { - /** - * If alert, indicates that this job must refresh a SQL alert. - */ - alert?: AlertClass | string; - /** - * If dashboard, indicates that this job must refresh a SQL dashboard. - */ - dashboard?: DashboardClass | string; - /** - * If file, indicates that this job runs a SQL file in a remote Git repository. - */ - file?: BundleSchem1 | string; - /** - * Parameters to be used for each run of this job. The SQL alert task does not support - * custom parameters. - */ - parameters?: {[key: string]: string} | string; +export interface AIGatewayClass { /** - * If query, indicates that this job must execute a SQL query. - */ - query?: QueryClass | string; - /** - * The canonical identifier of the SQL warehouse. Recommended to use with serverless or pro - * SQL warehouses. Classic SQL warehouses are only supported for SQL alert, dashboard and - * query tasks and are limited to scheduled single-task jobs. + * Configuration for AI Guardrails to prevent unwanted data and unsafe data in requests and + * responses. */ - warehouse_id: string; -} - -export interface AlertClass { + guardrails?: GuardrailsClass | string; /** - * The canonical identifier of the SQL alert. + * Configuration for payload logging using inference tables. Use these tables to monitor and + * audit data being sent to and received from model APIs and to improve model quality. */ - alert_id: string; + inference_table_config?: InferenceTableConfigClass | string; /** - * If true, the alert notifications are not sent to subscribers. + * Configuration for rate limits which can be set to limit endpoint traffic. */ - pause_subscriptions?: boolean | string; + rate_limits?: Array | string; /** - * If specified, alert notifications are sent to subscribers. + * Configuration to enable usage tracking using system tables. These tables allow you to + * monitor operational usage on endpoints and their associated costs. */ - subscriptions?: Array | string; + usage_tracking_config?: UsageTrackingConfigClass | string; } -export interface SubscriptionClass { +export interface GuardrailsClass { /** - * The canonical identifier of the destination to receive email notification. This parameter - * is mutually exclusive with user_name. You cannot set both destination_id and user_name - * for subscription notifications. + * Configuration for input guardrail filters. */ - destination_id?: string; + input?: InputClass | string; /** - * The user name to receive the subscription email. This parameter is mutually exclusive - * with destination_id. You cannot set both destination_id and user_name for subscription - * notifications. + * Configuration for output guardrail filters. */ - user_name?: string; + output?: InputClass | string; } -export interface DashboardClass { - /** - * Subject of the email sent to subscribers of this task. - */ - custom_subject?: string; - /** - * The canonical identifier of the SQL dashboard. - */ - dashboard_id: string; - /** - * If true, the dashboard snapshot is not taken, and emails are not sent to subscribers. - */ - pause_subscriptions?: boolean | string; +export interface InputClass { /** - * If specified, dashboard snapshots are sent to subscriptions. + * List of invalid keywords. AI guardrail uses keyword or string matching to decide if the + * keyword exists in the request or response content. */ - subscriptions?: Array | string; -} - -export interface BundleSchem1 { + invalid_keywords?: string[] | string; /** - * Path of the SQL file. Must be relative if the source is a remote Git repository and - * absolute for workspace paths. + * Configuration for guardrail PII filter. */ - path: string; + pii?: PiiClass | string; /** - * Optional location type of the SQL file. When set to `WORKSPACE`, the SQL file will be - * retrieved - * from the local Databricks workspace. When set to `GIT`, the SQL file will be retrieved - * from a Git repository - * defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` - * is defined and `WORKSPACE` otherwise. - * - * * `WORKSPACE`: SQL file is located in Databricks workspace. - * * `GIT`: SQL file is located in cloud Git provider. + * Indicates whether the safety filter is enabled. */ - source?: Source; -} - -export interface QueryClass { + safety?: boolean | string; /** - * The canonical identifier of the SQL query. + * The list of allowed topics. Given a chat request, this guardrail flags the request if its + * topic is not in the allowed topics. */ - query_id: string; + valid_topics?: string[] | string; } -export interface WebhookNotificationsClass { - /** - * An optional list of system notification IDs to call when the duration of a run exceeds - * the threshold specified for the `RUN_DURATION_SECONDS` metric in the `health` field. A - * maximum of 3 destinations can be specified for the - * `on_duration_warning_threshold_exceeded` property. - */ - on_duration_warning_threshold_exceeded?: - | Array - | string; +export interface PiiClass { /** - * An optional list of system notification IDs to call when the run fails. A maximum of 3 - * destinations can be specified for the `on_failure` property. - */ - on_failure?: - | Array - | string; - /** - * An optional list of system notification IDs to call when the run starts. A maximum of 3 - * destinations can be specified for the `on_start` property. - */ - on_start?: Array | string; - /** - * An optional list of system notification IDs to call when any streaming backlog thresholds - * are exceeded for any stream. - * Streaming backlog thresholds can be set in the `health` field using the following - * metrics: `STREAMING_BACKLOG_BYTES`, `STREAMING_BACKLOG_RECORDS`, - * `STREAMING_BACKLOG_SECONDS`, or `STREAMING_BACKLOG_FILES`. - * Alerting is based on the 10-minute average of these metrics. If the issue persists, - * notifications are resent every 30 minutes. - * A maximum of 3 destinations can be specified for the `on_streaming_backlog_exceeded` - * property. - */ - on_streaming_backlog_exceeded?: - | Array - | string; - /** - * An optional list of system notification IDs to call when the run completes successfully. - * A maximum of 3 destinations can be specified for the `on_success` property. + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. */ - on_success?: - | Array - | string; -} - -export interface OnDurationWarningThresholdExceededClass { - id: string; -} - -export interface BundleSchem2 { - /** - * File arrival trigger settings. - */ - file_arrival?: FileArrivalClass | string; - /** - * Whether this trigger is paused or not. - */ - pause_status?: PauseStatus; - /** - * Periodic trigger settings. - */ - periodic?: PeriodicClass | string; - /** - * Old table trigger settings name. Deprecated in favor of `table_update`. - */ - table?: TableUpdateClass | string; - table_update?: TableUpdateClass | string; -} - -export interface FileArrivalClass { - /** - * If set, the trigger starts a run only after the specified amount of time passed since - * the last time the trigger fired. The minimum allowed value is 60 seconds - */ - min_time_between_triggers_seconds?: number | string; - /** - * URL to be monitored for file arrivals. The path must point to the root or a subpath of - * the external location. - */ - url: string; - /** - * If set, the trigger starts a run only after no file activity has occurred for the - * specified amount of time. - * This makes it possible to wait for a batch of incoming files to arrive before triggering - * a run. The - * minimum allowed value is 60 seconds. - */ - wait_after_last_change_seconds?: number | string; -} - -export interface PeriodicClass { - /** - * The interval at which the trigger should run. - */ - interval: number | string; - /** - * The unit of time for the interval. - */ - unit: Unit; -} - -/** - * The unit of time for the interval. - */ -export enum Unit { - Days = "DAYS", - Hours = "HOURS", - Weeks = "WEEKS", -} - -export interface TableUpdateClass { - /** - * The table(s) condition based on which to trigger a job run. - */ - condition?: Condition; - /** - * If set, the trigger starts a run only after the specified amount of time has passed since - * the last time the trigger fired. The minimum allowed value is 60 seconds. - */ - min_time_between_triggers_seconds?: number | string; - /** - * A list of Delta tables to monitor for changes. The table name must be in the format - * `catalog_name.schema_name.table_name`. - */ - table_names?: string[] | string; - /** - * If set, the trigger starts a run only after no table updates have occurred for the - * specified time - * and can be used to wait for a series of table updates before triggering a run. The - * minimum allowed value is 60 seconds. - */ - wait_after_last_change_seconds?: number | string; + behavior: Behavior; } /** - * The table(s) condition based on which to trigger a job run. - */ -export enum Condition { - AllUpdated = "ALL_UPDATED", - AnyUpdated = "ANY_UPDATED", -} - -export interface ModelServingEndpointClass { - /** - * The core config of the serving endpoint. - */ - config: ConfigClass | string; - /** - * The name of the serving endpoint. This field is required and must be unique across a - * Databricks workspace. - * An endpoint name can consist of alphanumeric characters, dashes, and underscores. - */ - name: string; - permissions?: Array | string; - /** - * Rate limits to be applied to the serving endpoint. NOTE: only external and foundation - * model endpoints are supported as of now. - */ - rate_limits?: Array | string; - /** - * Enable route optimization for the serving endpoint. - */ - route_optimized?: boolean | string; - /** - * Tags to be attached to the serving endpoint and automatically propagated to billing logs. - */ - tags?: Array | string; -} - -export interface ConfigClass { - /** - * Configuration for Inference Tables which automatically logs requests and responses to - * Unity Catalog. - */ - auto_capture_config?: AutoCaptureConfigClass | string; - /** - * A list of served entities for the endpoint to serve. A serving endpoint can have up to 15 - * served entities. - */ - served_entities?: Array | string; - /** - * (Deprecated, use served_entities instead) A list of served models for the endpoint to - * serve. A serving endpoint can have up to 15 served models. - */ - served_models?: Array | string; - /** - * The traffic config defining how invocations to the serving endpoint should be routed. - */ - traffic_config?: TrafficConfigClass | string; -} - -export interface AutoCaptureConfigClass { - /** - * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog - * name if the inference table is already enabled. - */ - catalog_name?: string; - /** - * Indicates whether the inference table is enabled. - */ - enabled?: boolean | string; - /** - * The name of the schema in Unity Catalog. NOTE: On update, you cannot change the schema - * name if the inference table is already enabled. - */ - schema_name?: string; - /** - * The prefix of the table in Unity Catalog. NOTE: On update, you cannot change the prefix - * name if the inference table is already enabled. - */ - table_name_prefix?: string; -} - -export interface ServedEntityClass { - /** - * The name of the entity to be served. The entity may be a model in the Databricks Model - * Registry, a model in the Unity Catalog (UC), - * or a function of type FEATURE_SPEC in the UC. If it is a UC object, the full name of the - * object should be given in the form of - * __catalog_name__.__schema_name__.__model_name__. - */ - entity_name?: string; - /** - * The version of the model in Databricks Model Registry to be served or empty if the entity - * is a FEATURE_SPEC. - */ - entity_version?: string; - /** - * An object containing a set of optional, user-specified environment variable key-value - * pairs used for serving this entity. - * Note: this is an experimental feature and subject to change. - * Example entity environment variables that refer to Databricks secrets: - * `{"OPENAI_API_KEY": "{{secrets/my_scope/my_key}}", "DATABRICKS_TOKEN": - * "{{secrets/my_scope2/my_key2}}"}` - */ - environment_vars?: {[key: string]: string} | string; - /** - * The external model to be served. NOTE: Only one of external_model and (entity_name, - * entity_version, workload_size, workload_type, and scale_to_zero_enabled) - * can be specified with the latter set being used for custom model serving for a Databricks - * registered model. For an existing endpoint with external_model, - * it cannot be updated to an endpoint without external_model. If the endpoint is created - * without external_model, users cannot update it to add external_model later. - * The task type of all external models within an endpoint must be the same. - */ - external_model?: ExternalModelClass | string; - /** - * ARN of the instance profile that the served entity uses to access AWS resources. - */ - instance_profile_arn?: string; - /** - * The maximum tokens per second that the endpoint can scale up to. - */ - max_provisioned_throughput?: number | string; - /** - * The minimum tokens per second that the endpoint can scale down to. - */ - min_provisioned_throughput?: number | string; - /** - * The name of a served entity. It must be unique across an endpoint. A served entity name - * can consist of alphanumeric characters, dashes, and underscores. - * If not specified for an external model, this field defaults to external_model.name, with - * '.' and ':' replaced with '-', and if not specified for other - * entities, it defaults to -. - */ - name?: string; - /** - * Whether the compute resources for the served entity should scale down to zero. - */ - scale_to_zero_enabled?: boolean | string; - /** - * The workload size of the served entity. The workload size corresponds to a range of - * provisioned concurrency that the compute autoscales between. - * A single unit of provisioned concurrency can process one request at a time. - * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 - * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). - * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each - * workload size is 0. - */ - workload_size?: string; - /** - * The workload type of the served entity. The workload type selects which type of compute - * to use in the endpoint. The default value for this parameter is - * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload - * types like GPU_SMALL and others. - * See the available [GPU - * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). - */ - workload_type?: string; -} - -export interface ExternalModelClass { - /** - * AI21Labs Config. Only required if the provider is 'ai21labs'. - */ - ai21labs_config?: Ai21LabsConfigClass | string; - /** - * Amazon Bedrock Config. Only required if the provider is 'amazon-bedrock'. - */ - amazon_bedrock_config?: AmazonBedrockConfigClass | string; - /** - * Anthropic Config. Only required if the provider is 'anthropic'. - */ - anthropic_config?: AnthropicConfigClass | string; - /** - * Cohere Config. Only required if the provider is 'cohere'. - */ - cohere_config?: CohereConfigClass | string; - /** - * Databricks Model Serving Config. Only required if the provider is - * 'databricks-model-serving'. - */ - databricks_model_serving_config?: - | DatabricksModelServingConfigClass - | string; - /** - * Google Cloud Vertex AI Config. Only required if the provider is 'google-cloud-vertex-ai'. - */ - google_cloud_vertex_ai_config?: GoogleCloudVertexAIConfigClass | string; - /** - * The name of the external model. - */ - name: string; - /** - * OpenAI Config. Only required if the provider is 'openai'. - */ - openai_config?: OpenaiConfigClass | string; - /** - * PaLM Config. Only required if the provider is 'palm'. - */ - palm_config?: PalmConfigClass | string; - /** - * The name of the provider for the external model. Currently, the supported providers are - * 'ai21labs', 'anthropic', - * 'amazon-bedrock', 'cohere', 'databricks-model-serving', 'google-cloud-vertex-ai', - * 'openai', and 'palm'.", - */ - provider: Provider; - /** - * The task type of the external model. - */ - task: string; -} - -export interface Ai21LabsConfigClass { - ai21labs_api_key?: string; - ai21labs_api_key_plaintext?: string; -} - -export interface AmazonBedrockConfigClass { - /** - * The Databricks secret key reference for an AWS access key ID with permissions to interact - * with Bedrock services. If you prefer to paste your API key directly, see - * `aws_access_key_id`. You must provide an API key using one of the following fields: - * `aws_access_key_id` or `aws_access_key_id_plaintext`. - */ - aws_access_key_id?: string; - /** - * An AWS access key ID with permissions to interact with Bedrock services provided as a - * plaintext string. If you prefer to reference your key using Databricks Secrets, see - * `aws_access_key_id`. You must provide an API key using one of the following fields: - * `aws_access_key_id` or `aws_access_key_id_plaintext`. - */ - aws_access_key_id_plaintext?: string; - /** - * The AWS region to use. Bedrock has to be enabled there. - */ - aws_region: string; - /** - * The Databricks secret key reference for an AWS secret access key paired with the access - * key ID, with permissions to interact with Bedrock services. If you prefer to paste your - * API key directly, see `aws_secret_access_key_plaintext`. You must provide an API key - * using one of the following fields: `aws_secret_access_key` or - * `aws_secret_access_key_plaintext`. - */ - aws_secret_access_key?: string; - /** - * An AWS secret access key paired with the access key ID, with permissions to interact with - * Bedrock services provided as a plaintext string. If you prefer to reference your key - * using Databricks Secrets, see `aws_secret_access_key`. You must provide an API key using - * one of the following fields: `aws_secret_access_key` or `aws_secret_access_key_plaintext`. - */ - aws_secret_access_key_plaintext?: string; - /** - * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: - * Anthropic, Cohere, AI21Labs, Amazon. - */ - bedrock_provider: BedrockProvider; -} - -/** - * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: - * Anthropic, Cohere, AI21Labs, Amazon. + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Nodes for this cluster will only be placed on AWS instances with this instance profile. + * If + * ommitted, nodes will be placed on instances without an IAM instance profile. The instance + * profile must have previously been added to the Databricks environment by an account + * administrator. + * + * This feature may only be available to certain customer plans. + * + * If this field is ommitted, we will pull in the default from the conf if it exists. + * + * Identifier for the availability zone/datacenter in which the cluster resides. + * This string will be of a form like "us-west-2a". The provided availability + * zone must be in the same region as the Databricks deployment. For example, "us-west-2a" + * is not a valid zone id if the Databricks deployment resides in the "us-east-1" region. + * This is an optional field at cluster creation, and if not specified, a default zone will + * be used. + * If the zone specified is "auto", will try to place cluster in a zone with high + * availability, + * and will retry placement in a different AZ if there is not enough capacity. + * The list of available zones as well as the default value can be found by using the + * `List Zones` method. + * + * + * + * dbfs destination, e.g. `dbfs:/my/path` + * + * (Optional) Set canned access control list for the logs, e.g. `bucket-owner-full-control`. + * If `canned_cal` is set, please make sure the cluster iam role has `s3:PutObjectAcl` + * permission on + * the destination bucket and prefix. The full list of possible canned acl can be found at + * http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl. + * Please also note that by default only the object owner gets full controls. If you are + * using cross account + * role for writing data, you may want to set `bucket-owner-full-control` to make bucket + * owner able to + * read the logs. + * + * S3 destination, e.g. `s3://my-bucket/some-prefix` Note that logs will be delivered using + * cluster iam role, please make sure you set cluster iam role and the role has write access + * to the + * destination. Please also note that you cannot use AWS keys to deliver logs. + * + * (Optional) The encryption type, it could be `sse-s3` or `sse-kms`. It will be used only + * when + * encryption is enabled and the default type is `sse-s3`. + * + * S3 endpoint, e.g. `https://s3-us-west-2.amazonaws.com`. Either region or endpoint needs + * to be set. + * If both are set, endpoint will be used. + * + * (Optional) Kms key which will be used if encryption is enabled and encryption type is set + * to `sse-kms`. + * + * S3 region, e.g. `us-west-2`. Either region or endpoint needs to be set. If both are set, + * endpoint will be used. + * + * Cluster name requested by the user. This doesn't have to be unique. + * If not specified at creation, the cluster name will be an empty string. + * + * + * Password of the user + * + * Name of the user + * + * URL of the docker image. + * + * The optional ID of the instance pool for the driver of the cluster belongs. + * The pool cluster uses the instance pool with id (instance_pool_id) if the driver pool is + * not + * assigned. + * + * The node type of the Spark driver. Note that this field is optional; + * if unset, the driver node type will be set as the same value + * as `node_type_id` defined above. + * + * + * If provided, the cluster will impersonate the google service account when accessing + * gcloud services (like GCS). The google service account + * must have previously been added to the Databricks environment by an account + * administrator. + * + * Identifier for the availability zone in which the cluster resides. + * This can be one of the following: + * - "HA" => High availability, spread nodes across availability zones for a Databricks + * deployment region [default] + * - "AUTO" => Databricks picks an availability zone to schedule the cluster on. + * - A GCP availability zone => Pick One of the available zones for (machine type + region) + * from https://cloud.google.com/compute/docs/regions-zones. + * + * abfss destination, e.g. + * `abfss://@.dfs.core.windows.net/`. + * + * local file destination, e.g. `file:/my/local/file.sh` + * + * GCS destination/URI, e.g. `gs://my-bucket/some-prefix` + * + * Unity Catalog Volumes file destination, e.g. `/Volumes/my-init.sh` + * + * workspace files destination, e.g. `/Users/user1@databricks.com/my-init.sh` + * + * The optional ID of the instance pool to which the cluster belongs. + * + * This field encodes, through a single value, the resources available to each of + * the Spark nodes in this cluster. For example, the Spark nodes can be provisioned + * and optimized for memory or compute intensive workloads. A list of available node + * types can be retrieved by using the :method:clusters/listNodeTypes API call. + * + * + * The ID of the cluster policy used to create the cluster if applicable. + * + * Single user name if data_security_mode is `SINGLE_USER` + * + * The Spark version of the cluster, e.g. `3.3.x-scala2.11`. + * A list of available Spark versions can be retrieved by using + * the :method:clusters/sparkVersions API call. + * + * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * + * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. + * + * Default value of the parameter. + * + * The name of the defined parameter. May only contain alphanumeric characters, `_`, `-`, + * and `.` + * + * Application ID of an active service principal. Setting this field requires the + * `servicePrincipal/user` role. + * + * The email of an active workspace user. Non-admin users can only set this field to their + * own email. + * + * A Cron expression using Quartz syntax that describes the schedule for a job. See [Cron + * Trigger](http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html) + * for details. This field is required. + * + * A Java timezone ID. The schedule for a job is resolved with respect to this timezone. See + * [Java TimeZone](https://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html) for + * details. This field is required. + * + * The left operand of the condition task. Can be either a string value or a job state or + * parameter reference. + * + * The right operand of the condition task. Can be either a string value or a job state or + * parameter reference. + * + * Optional name of the catalog to use. The value is the top level in the 3-level namespace + * of Unity Catalog (catalog / schema / relation). The catalog value can only be specified + * if a warehouse_id is specified. Requires dbt-databricks >= 1.1.1. + * + * Optional (relative) path to the profiles directory. Can only be specified if no + * warehouse_id is specified. If no warehouse_id is specified and this folder is unset, the + * root directory is used. + * + * Path to the project directory. Optional for Git sourced tasks, in which + * case if no value is provided, the root of the Git repository is used. + * + * Optional schema to write to. This parameter is only used when a warehouse_id is also + * provided. If not provided, the `default` schema is used. + * + * ID of the SQL warehouse to connect to. If provided, we automatically generate and provide + * the profile and connection details to dbt. It can be overridden on a per-command basis by + * using the `--profiles-dir` command line argument. + * + * Can only be specified on condition task dependencies. The outcome of the dependent task + * that must be met for this task to run. + * + * The name of the task this task depends on. + * + * An optional description for this task. + * + * The key that references an environment spec in a job. This field is required for Python + * script, Python wheel and dbt tasks when using serverless compute. + * + * If existing_cluster_id, the ID of an existing cluster that is used for all runs. + * When running jobs or tasks on an existing cluster, you may need to manually restart + * the cluster if it stops responding. We suggest running jobs and tasks on new clusters for + * greater reliability + * + * Array for task to iterate on. This can be a JSON string or a reference to + * an array parameter. + * + * If job_cluster_key, this task is executed reusing the cluster specified in + * `job.settings.job_clusters`. + * + * The name of the CRAN package to install. + * + * The repository where the package can be found. If not specified, the default CRAN repo is + * used. + * + * Deprecated. URI of the egg library to install. Installing Python egg files is deprecated + * and is not supported in Databricks Runtime 14.0 and above. + * + * URI of the JAR library to install. Supported URIs include Workspace paths, Unity Catalog + * Volumes paths, and S3 URIs. + * For example: `{ "jar": "/Workspace/path/to/library.jar" }`, `{ "jar" : + * "/Volumes/path/to/library.jar" }` or + * `{ "jar": "s3://my-bucket/library.jar" }`. + * If S3 is used, please make sure the cluster has read access on the library. You may need + * to + * launch the cluster with an IAM role to access the S3 URI. + * + * Gradle-style maven coordinates. For example: "org.jsoup:jsoup:1.7.2". + * + * Maven repo to install the Maven package from. If omitted, both Maven Central Repository + * and Spark Packages are searched. + * + * The name of the pypi package to install. An optional exact version specification is also + * supported. Examples: "simplejson" and "simplejson==3.8.0". + * + * The repository where the package can be found. If not specified, the default pip index is + * used. + * + * URI of the requirements.txt file to install. Only Workspace paths and Unity Catalog + * Volumes paths are supported. + * For example: `{ "requirements": "/Workspace/path/to/requirements.txt" }` or `{ + * "requirements" : "/Volumes/path/to/requirements.txt" }` + * + * URI of the wheel library to install. Supported URIs include Workspace paths, Unity + * Catalog Volumes paths, and S3 URIs. + * For example: `{ "whl": "/Workspace/path/to/library.whl" }`, `{ "whl" : + * "/Volumes/path/to/library.whl" }` or + * `{ "whl": "s3://my-bucket/library.whl" }`. + * If S3 is used, please make sure the cluster has read access on the library. You may need + * to + * launch the cluster with an IAM role to access the S3 URI. + * + * The path of the notebook to be run in the Databricks workspace or remote repository. + * For notebooks stored in the Databricks workspace, the path must be absolute and begin + * with a slash. + * For notebooks stored in a remote repository, the path must be relative. This field is + * required. + * + * Optional `warehouse_id` to run the notebook on a SQL warehouse. Classic SQL warehouses + * are NOT supported, please use serverless or pro SQL warehouses. + * + * Note that SQL warehouses only support SQL cells; if the notebook contains non-SQL cells, + * the run will fail. + * + * The full name of the pipeline task to execute. + * + * Named entry point to use, if it does not exist in the metadata of the package it executes + * the function from the package directly using `$packageName.$entryPoint()` + * + * Name of the package to execute + * + * Deprecated since 04/2016. Provide a `jar` through the `libraries` field instead. For an + * example, see :method:jobs/create. + * + * The full name of the class containing the main method to be executed. This class must be + * contained in a JAR provided as a library. + * + * The code must use `SparkContext.getOrCreate` to obtain a Spark context; otherwise, runs + * of the job fail. + * + * The Python file to be executed. Cloud file URIs (such as dbfs:/, s3:/, adls:/, gcs:/) and + * workspace paths are supported. For python files stored in the Databricks workspace, the + * path must be absolute and begin with `/`. For files stored in a remote repository, the + * path must be relative. This field is required. + * + * The canonical identifier of the SQL alert. + * + * The canonical identifier of the destination to receive email notification. This parameter + * is mutually exclusive with user_name. You cannot set both destination_id and user_name + * for subscription notifications. + * + * The user name to receive the subscription email. This parameter is mutually exclusive + * with destination_id. You cannot set both destination_id and user_name for subscription + * notifications. + * + * Subject of the email sent to subscribers of this task. + * + * The canonical identifier of the SQL dashboard. + * + * Path of the SQL file. Must be relative if the source is a remote Git repository and + * absolute for workspace paths. + * + * The canonical identifier of the SQL query. + * + * The canonical identifier of the SQL warehouse. Recommended to use with serverless or pro + * SQL warehouses. Classic SQL warehouses are only supported for SQL alert, dashboard and + * query tasks and are limited to scheduled single-task jobs. + * + * A unique name for the task. This field is used to refer to this task from other tasks. + * This field is required and must be unique within its parent job. + * On Update or Reset, this field is used to reference the tasks to be updated or reset. + * + * URL to be monitored for file arrivals. The path must point to the root or a subpath of + * the external location. + * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * + * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog + * name if the inference table is already enabled. + * + * The name of the schema in Unity Catalog. NOTE: On update, you cannot change the schema + * name if the inference table is already enabled. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you cannot change the prefix + * name if the inference table is already enabled. + * + * The name of the entity to be served. The entity may be a model in the Databricks Model + * Registry, a model in the Unity Catalog (UC), + * or a function of type FEATURE_SPEC in the UC. If it is a UC object, the full name of the + * object should be given in the form of + * __catalog_name__.__schema_name__.__model_name__. + * + * + * The version of the model in Databricks Model Registry to be served or empty if the entity + * is a FEATURE_SPEC. + * + * The Databricks secret key reference for an AWS access key ID with permissions to interact + * with Bedrock services. If you prefer to paste your API key directly, see + * `aws_access_key_id`. You must provide an API key using one of the following fields: + * `aws_access_key_id` or `aws_access_key_id_plaintext`. + * + * An AWS access key ID with permissions to interact with Bedrock services provided as a + * plaintext string. If you prefer to reference your key using Databricks Secrets, see + * `aws_access_key_id`. You must provide an API key using one of the following fields: + * `aws_access_key_id` or `aws_access_key_id_plaintext`. + * + * The AWS region to use. Bedrock has to be enabled there. + * + * The Databricks secret key reference for an AWS secret access key paired with the access + * key ID, with permissions to interact with Bedrock services. If you prefer to paste your + * API key directly, see `aws_secret_access_key_plaintext`. You must provide an API key + * using one of the following fields: `aws_secret_access_key` or + * `aws_secret_access_key_plaintext`. + * + * An AWS secret access key paired with the access key ID, with permissions to interact with + * Bedrock services provided as a plaintext string. If you prefer to reference your key + * using Databricks Secrets, see `aws_secret_access_key`. You must provide an API key using + * one of the following fields: `aws_secret_access_key` or + * `aws_secret_access_key_plaintext`. + * + * The Databricks secret key reference for an Anthropic API key. If you prefer to paste your + * API key directly, see `anthropic_api_key_plaintext`. You must provide an API key using + * one of the following fields: `anthropic_api_key` or `anthropic_api_key_plaintext`. + * + * The Anthropic API key provided as a plaintext string. If you prefer to reference your key + * using Databricks Secrets, see `anthropic_api_key`. You must provide an API key using one + * of the following fields: `anthropic_api_key` or `anthropic_api_key_plaintext`. + * + * This is an optional field to provide a customized base URL for the Cohere API. + * If left unspecified, the standard Cohere base URL is used. + * + * + * The Databricks secret key reference for a Cohere API key. If you prefer to paste your API + * key directly, see `cohere_api_key_plaintext`. You must provide an API key using one of + * the following fields: `cohere_api_key` or `cohere_api_key_plaintext`. + * + * The Cohere API key provided as a plaintext string. If you prefer to reference your key + * using Databricks Secrets, see `cohere_api_key`. You must provide an API key using one of + * the following fields: `cohere_api_key` or `cohere_api_key_plaintext`. + * + * The Databricks secret key reference for a Databricks API token that corresponds to a user + * or service + * principal with Can Query access to the model serving endpoint pointed to by this external + * model. + * If you prefer to paste your API key directly, see `databricks_api_token_plaintext`. + * You must provide an API key using one of the following fields: `databricks_api_token` or + * `databricks_api_token_plaintext`. + * + * + * The Databricks API token that corresponds to a user or service + * principal with Can Query access to the model serving endpoint pointed to by this external + * model provided as a plaintext string. + * If you prefer to reference your key using Databricks Secrets, see `databricks_api_token`. + * You must provide an API key using one of the following fields: `databricks_api_token` or + * `databricks_api_token_plaintext`. + * + * + * The URL of the Databricks workspace containing the model serving endpoint pointed to by + * this external model. + * + * + * The name of the external model. + * + * The task type of the external model. + * + * ARN of the instance profile that the served entity uses to access AWS resources. + * + * The name of a served entity. It must be unique across an endpoint. A served entity name + * can consist of alphanumeric characters, dashes, and underscores. + * If not specified for an external model, this field defaults to external_model.name, with + * '.' and ':' replaced with '-', and if not specified for other + * entities, it defaults to -. + * + * + * The workload size of the served entity. The workload size corresponds to a range of + * provisioned concurrency that the compute autoscales between. + * A single unit of provisioned concurrency can process one request at a time. + * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 + * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). + * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each + * workload size is 0. + * + * + * The workload type of the served entity. The workload type selects which type of compute + * to use in the endpoint. The default value for this parameter is + * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload + * types like GPU_SMALL and others. + * See the available [GPU + * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). * - * Location where artifacts for the experiment are stored. * - * Unique identifier for the experiment. + * ARN of the instance profile that the served model will use to access AWS resources. * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. + * The name of the model in Databricks Model Registry to be served or if the model resides + * in Unity Catalog, the full name of model, + * in the form of __catalog_name__.__schema_name__.__model_name__. * - * Human readable name that identifies the experiment. * - * The tag key. + * The version of the model in Databricks Model Registry or Unity Catalog to be served. * - * The tag value. + * The name of a served model. It must be unique across an endpoint. If not specified, this + * field will default to -. + * A served model name can consist of alphanumeric characters, dashes, and underscores. * - * Path of the file that contains deployment metadata. * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. + * The name of the served model this route configures traffic for. * - * The key of an environment. It has to be unique within a job. + * The name of the serving endpoint. This field is required and must be unique across a + * Databricks workspace. + * An endpoint name can consist of alphanumeric characters, dashes, and underscores. * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. + * Key field for a serving endpoint tag. * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. + * Optional value field for a serving endpoint tag. + * + * Description of this `registered_model`. + * + * Current stage for this `model_version`. + * + * Description of this `model_version`. + * + * Unique name of the model + * + * MLflow run ID used when creating `model_version`, if `source` was generated by an + * experiment run stored in MLflow tracking server. + * + * Run Link: Direct link to the run that generated this version + * + * URI indicating the location of the source model artifacts, used when creating + * `model_version` + * + * Details on current `status`, if it is pending or failed. + * + * User that created this `model_version`. + * + * Model's version number. + * + * Unique name for the model. + * + * User that created this `registered_model` + * + * Budget policy of this pipeline. + * + * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is + * specified, tables in this pipeline are published to a `target` schema inside `catalog` + * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is + * published to Unity Catalog. + * + * DLT Release Channel that specifies which version to use. + * + * The node type of the Spark driver. + * Note that this field is optional; if unset, the driver node type will be set as the same + * value + * as `node_type_id` defined above. + * + * A label for the cluster specification, either `default` to configure the default cluster, + * or `maintenance` to configure the maintenance cluster. This field is optional. The + * default value is `default`. + * + * The path to the file containing metadata about the deployment. + * + * Pipeline product edition. + * + * Immutable. The Unity Catalog connection this gateway pipeline uses to communicate with + * the source. + * + * Required, Immutable. The name of the catalog for the gateway pipeline's storage + * location. + * + * Optional. The Unity Catalog-compatible name for the gateway storage location. + * This is the destination to use for the data that is extracted by the gateway. + * Delta Live Tables system will automatically create the storage location under the catalog + * and schema. + * + * + * Required, Immutable. The name of the schema for the gateway pipelines's storage + * location. + * + * Unique identifier for this pipeline. + * + * Immutable. The Unity Catalog connection this ingestion pipeline uses to communicate with + * the source. Specify either ingestion_gateway_id or connection_name. + * + * Immutable. Identifier for the ingestion gateway used by this ingestion pipeline to + * communicate with the source. Specify either ingestion_gateway_id or connection_name. + * + * Required. Destination catalog to store tables. + * + * Required. Destination schema to store tables in. Tables with the same name as the source + * tables are created in this destination schema. The pipeline fails If a table with the + * same name already exists. + * + * The source catalog name. Might be optional depending on the type of source. + * + * Required. Schema name in the source database. + * + * Required. Destination catalog to store table. + * + * Required. Destination schema to store table. + * + * Optional. Destination table name. The pipeline fails If a table with that name already + * exists. If not set, the source table name is used. + * + * Source catalog name. Might be optional depending on the type of source. + * + * Schema name in the source database. Might be optional depending on the type of source. + * + * Required. Table name in the source database. + * + * The absolute path of the file. + * + * URI of the jar to be installed. Currently only DBFS is supported. + * + * + * The absolute path of the notebook. + * + * URI of the whl to be installed. + * + * Friendly identifier for this pipeline. + * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * + * DBFS root directory for storing checkpoints and tables. + * + * Target schema (database) to add tables in this pipeline to. If not specified, no data is + * published to the Hive metastore or Unity Catalog. To publish to Unity Catalog, also + * specify `catalog`. + * + * The directory to store monitoring assets (e.g. dashboard, metric tables). + * + * Name of the baseline table from which drift metrics are computed from. + * Columns in the monitored table should also be present in the baseline table. + * + * + * Jinja template for a SQL expression that specifies how to compute the metric. See [create + * metric + * definition](https://docs.databricks.com/en/lakehouse-monitoring/custom-metrics.html#create-definition). + * + * Name of the metric in the output tables. + * + * The output type of the custom metric. + * + * Optional column that contains the ground truth for the prediction. + * + * Column that contains the id of the model generating the predictions. Metrics will be + * computed per model id by + * default, and also across all model ids. + * + * + * Column that contains the output/prediction from the model. + * + * Optional column that contains the prediction probabilities for each class in a + * classification problem type. + * The values in this column should be a map, mapping each class label to the prediction + * probability for a given + * sample. The map should be of PySpark MapType(). + * + * + * Column that contains the timestamps of requests. The column must be one of the following: + * - A ``TimestampType`` column + * - A column whose values can be converted to timestamps through the pyspark + * ``to_timestamp`` + * [function](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_timestamp.html). + * + * + * Schema where output metric tables are created. + * + * The expression that determines when to run the monitor. See + * [examples](https://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html). + * + * + * The timezone id (e.g., ``"PST"``) in which to evaluate the quartz expression. + * + * + * Optional argument to specify the warehouse for dashboard creation. If not specified, the + * first running + * warehouse will be used. + * + * + * The name of the catalog where the schema and the registered model reside + * + * The comment attached to the registered model + * + * The name of the registered model + * + * The name of the schema where the registered model resides + * + * The storage location on the cloud under which model version data files are stored + * + * Name of parent catalog. + * + * User-provided free-form text description. + * + * Name of schema, relative to parent catalog. + * + * Storage root URL for managed tables within schema. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + * + * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: + * Anthropic, Cohere, AI21Labs, Amazon. + * + * The name of the provider for the external model. Currently, the supported providers are + * 'ai21labs', 'anthropic', + * 'amazon-bedrock', 'cohere', 'databricks-model-serving', 'google-cloud-vertex-ai', + * 'openai', and 'palm'.", + * + * + * The workload size of the served model. The workload size corresponds to a range of + * provisioned concurrency that the compute will autoscale between. + * A single unit of provisioned concurrency can process one request at a time. + * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 + * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). + * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each + * workload size will be 0. + * + * + * The workload type of the served model. The workload type selects which type of compute to + * use in the endpoint. The default value for this parameter is + * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload + * types like GPU_SMALL and others. + * See the available [GPU + * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). + * + * + * Key field for a serving endpoint rate limit. Currently, only 'user' and 'endpoint' are + * supported, with 'endpoint' being the default if not specified. + * + * Renewal period field for a serving endpoint rate limit. Currently, only 'minute' is + * supported. + * + * Current status of `model_version` + * + * Databricks Enhanced Autoscaling optimizes cluster utilization by automatically + * allocating cluster resources based on workload volume, with minimal impact to + * the data processing latency of your pipelines. Enhanced Autoscaling is available + * for `updates` clusters only. The legacy autoscaling feature is used for `maintenance` + * clusters. * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. + * The SCD type to use to ingest the table. * - * URL of the repository to be cloned by this job. + * Can only be one of ``"CUSTOM_METRIC_TYPE_AGGREGATE"``, ``"CUSTOM_METRIC_TYPE_DERIVED"``, + * or ``"CUSTOM_METRIC_TYPE_DRIFT"``. + * The ``"CUSTOM_METRIC_TYPE_AGGREGATE"`` and ``"CUSTOM_METRIC_TYPE_DERIVED"`` metrics + * are computed on a single table, whereas the ``"CUSTOM_METRIC_TYPE_DRIFT"`` compare + * metrics across + * baseline and input table, or across the two consecutive time windows. + * - CUSTOM_METRIC_TYPE_AGGREGATE: only depend on the existing columns in your table + * - CUSTOM_METRIC_TYPE_DERIVED: depend on previously computed aggregate metrics + * - CUSTOM_METRIC_TYPE_DRIFT: depend on previously computed aggregate or derived metrics * - * Name of the branch which the job is imported from. * - * Path of the job YAML file that contains the job specification. + * Problem type the model aims to solve. Determines the type of model-quality metrics that + * will be computed. * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. + * Read only field that indicates whether a schedule is paused or not. + */ +export enum Behavior { + Block = "BLOCK", + None = "NONE", +} + +export interface InferenceTableConfigClass { + /** + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog name. + */ + catalog_name?: string; + /** + * Indicates whether the inference table is enabled. + */ + enabled?: boolean | string; + /** + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + */ + schema_name?: string; + /** + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + */ + table_name_prefix?: string; +} + +export interface BundleSchem3 { + /** + * Used to specify how many calls are allowed for a key within the renewal_period. + */ + calls: number | string; + /** + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + */ + key?: Key; + /** + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + */ + renewal_period: RenewalPeriod; +} + +/** + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If @@ -3451,6 +4086,45 @@ export interface AmazonBedrockConfigClass { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -3622,6 +4296,16 @@ export interface AmazonBedrockConfigClass { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -3787,6 +4471,8 @@ export interface AmazonBedrockConfigClass { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -3864,6 +4550,9 @@ export interface AmazonBedrockConfigClass { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -3939,6 +4628,17 @@ export interface AmazonBedrockConfigClass { * * Storage root URL for managed tables within schema. * + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + * + * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: + * Anthropic, Cohere, AI21Labs, Amazon. + * * The name of the provider for the external model. Currently, the supported providers are * 'ai21labs', 'anthropic', * 'amazon-bedrock', 'cohere', 'databricks-model-serving', 'google-cloud-vertex-ai', @@ -3970,181 +4670,38 @@ export interface AmazonBedrockConfigClass { * * Current status of `model_version` * - * Databricks Enhanced Autoscaling optimizes cluster utilization by automatically - * allocating cluster resources based on workload volume, with minimal impact to - * the data processing latency of your pipelines. Enhanced Autoscaling is available - * for `updates` clusters only. The legacy autoscaling feature is used for `maintenance` - * clusters. - * - * - * The SCD type to use to ingest the table. - * - * Can only be one of ``"CUSTOM_METRIC_TYPE_AGGREGATE"``, ``"CUSTOM_METRIC_TYPE_DERIVED"``, - * or ``"CUSTOM_METRIC_TYPE_DRIFT"``. - * The ``"CUSTOM_METRIC_TYPE_AGGREGATE"`` and ``"CUSTOM_METRIC_TYPE_DERIVED"`` metrics - * are computed on a single table, whereas the ``"CUSTOM_METRIC_TYPE_DRIFT"`` compare - * metrics across - * baseline and input table, or across the two consecutive time windows. - * - CUSTOM_METRIC_TYPE_AGGREGATE: only depend on the existing columns in your table - * - CUSTOM_METRIC_TYPE_DERIVED: depend on previously computed aggregate metrics - * - CUSTOM_METRIC_TYPE_DRIFT: depend on previously computed aggregate or derived metrics - * - * - * Problem type the model aims to solve. Determines the type of model-quality metrics that - * will be computed. - * - * Read only field that indicates whether a schedule is paused or not. - */ -export enum BedrockProvider { - Ai21Labs = "ai21labs", - Amazon = "amazon", - Anthropic = "anthropic", - Cohere = "cohere", -} - -export interface AnthropicConfigClass { - /** - * The Databricks secret key reference for an Anthropic API key. If you prefer to paste your - * API key directly, see `anthropic_api_key_plaintext`. You must provide an API key using - * one of the following fields: `anthropic_api_key` or `anthropic_api_key_plaintext`. - */ - anthropic_api_key?: string; - /** - * The Anthropic API key provided as a plaintext string. If you prefer to reference your key - * using Databricks Secrets, see `anthropic_api_key`. You must provide an API key using one - * of the following fields: `anthropic_api_key` or `anthropic_api_key_plaintext`. - */ - anthropic_api_key_plaintext?: string; -} - -export interface CohereConfigClass { - /** - * This is an optional field to provide a customized base URL for the Cohere API. - * If left unspecified, the standard Cohere base URL is used. - */ - cohere_api_base?: string; - /** - * The Databricks secret key reference for a Cohere API key. If you prefer to paste your API - * key directly, see `cohere_api_key_plaintext`. You must provide an API key using one of - * the following fields: `cohere_api_key` or `cohere_api_key_plaintext`. - */ - cohere_api_key?: string; - /** - * The Cohere API key provided as a plaintext string. If you prefer to reference your key - * using Databricks Secrets, see `cohere_api_key`. You must provide an API key using one of - * the following fields: `cohere_api_key` or `cohere_api_key_plaintext`. - */ - cohere_api_key_plaintext?: string; -} - -export interface DatabricksModelServingConfigClass { - /** - * The Databricks secret key reference for a Databricks API token that corresponds to a user - * or service - * principal with Can Query access to the model serving endpoint pointed to by this external - * model. - * If you prefer to paste your API key directly, see `databricks_api_token_plaintext`. - * You must provide an API key using one of the following fields: `databricks_api_token` or - * `databricks_api_token_plaintext`. - */ - databricks_api_token?: string; - /** - * The Databricks API token that corresponds to a user or service - * principal with Can Query access to the model serving endpoint pointed to by this external - * model provided as a plaintext string. - * If you prefer to reference your key using Databricks Secrets, see `databricks_api_token`. - * You must provide an API key using one of the following fields: `databricks_api_token` or - * `databricks_api_token_plaintext`. - */ - databricks_api_token_plaintext?: string; - /** - * The URL of the Databricks workspace containing the model serving endpoint pointed to by - * this external model. - */ - databricks_workspace_url: string; -} - -export interface GoogleCloudVertexAIConfigClass { - private_key?: string; - private_key_plaintext?: string; - project_id?: string; - region?: string; -} - -export interface OpenaiConfigClass { - microsoft_entra_client_id?: string; - microsoft_entra_client_secret?: string; - microsoft_entra_client_secret_plaintext?: string; - microsoft_entra_tenant_id?: string; - openai_api_base?: string; - openai_api_key?: string; - openai_api_key_plaintext?: string; - openai_api_type?: string; - openai_api_version?: string; - openai_deployment_name?: string; - openai_organization?: string; -} - -export interface PalmConfigClass { - palm_api_key?: string; - palm_api_key_plaintext?: string; -} - -/** - * The name of the provider for the external model. Currently, the supported providers are - * 'ai21labs', 'anthropic', - * 'amazon-bedrock', 'cohere', 'databricks-model-serving', 'google-cloud-vertex-ai', - * 'openai', and 'palm'.", - * - * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. - * - * The key of an environment. It has to be unique within a job. - * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. - * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. - * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. + * Databricks Enhanced Autoscaling optimizes cluster utilization by automatically + * allocating cluster resources based on workload volume, with minimal impact to + * the data processing latency of your pipelines. Enhanced Autoscaling is available + * for `updates` clusters only. The legacy autoscaling feature is used for `maintenance` + * clusters. * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. + * The SCD type to use to ingest the table. * - * URL of the repository to be cloned by this job. + * Can only be one of ``"CUSTOM_METRIC_TYPE_AGGREGATE"``, ``"CUSTOM_METRIC_TYPE_DERIVED"``, + * or ``"CUSTOM_METRIC_TYPE_DRIFT"``. + * The ``"CUSTOM_METRIC_TYPE_AGGREGATE"`` and ``"CUSTOM_METRIC_TYPE_DERIVED"`` metrics + * are computed on a single table, whereas the ``"CUSTOM_METRIC_TYPE_DRIFT"`` compare + * metrics across + * baseline and input table, or across the two consecutive time windows. + * - CUSTOM_METRIC_TYPE_AGGREGATE: only depend on the existing columns in your table + * - CUSTOM_METRIC_TYPE_DERIVED: depend on previously computed aggregate metrics + * - CUSTOM_METRIC_TYPE_DRIFT: depend on previously computed aggregate or derived metrics * - * Name of the branch which the job is imported from. * - * Path of the job YAML file that contains the job specification. + * Problem type the model aims to solve. Determines the type of model-quality metrics that + * will be computed. * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. + * Read only field that indicates whether a schedule is paused or not. + */ +export enum Key { + Endpoint = "endpoint", + User = "user", +} + +/** + * Renewal period field for a rate limit. Currently, only 'minute' is supported. * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If @@ -4263,6 +4820,45 @@ export interface PalmConfigClass { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -4434,6 +5030,16 @@ export interface PalmConfigClass { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -4599,6 +5205,8 @@ export interface PalmConfigClass { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -4676,6 +5284,9 @@ export interface PalmConfigClass { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -4751,9 +5362,24 @@ export interface PalmConfigClass { * * Storage root URL for managed tables within schema. * + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: * Anthropic, Cohere, AI21Labs, Amazon. * + * The name of the provider for the external model. Currently, the supported providers are + * 'ai21labs', 'anthropic', + * 'amazon-bedrock', 'cohere', 'databricks-model-serving', 'google-cloud-vertex-ai', + * 'openai', and 'palm'.", + * + * * The workload size of the served model. The workload size corresponds to a range of * provisioned concurrency that the compute will autoscale between. * A single unit of provisioned concurrency can process one request at a time. @@ -4804,137 +5430,241 @@ export interface PalmConfigClass { * * Read only field that indicates whether a schedule is paused or not. */ -export enum Provider { - Ai21Labs = "ai21labs", - AmazonBedrock = "amazon-bedrock", - Anthropic = "anthropic", - Cohere = "cohere", - DatabricksModelServing = "databricks-model-serving", - GoogleCloudVertexAI = "google-cloud-vertex-ai", - Openai = "openai", - Palm = "palm", +export enum RenewalPeriod { + Minute = "minute", } -export interface ServedModelClass { +export interface UsageTrackingConfigClass { + /** + * Whether to enable usage tracking. + */ + enabled?: boolean | string; +} + +export interface ConfigClass { + /** + * Configuration for Inference Tables which automatically logs requests and responses to + * Unity Catalog. + */ + auto_capture_config?: AutoCaptureConfigClass | string; + /** + * A list of served entities for the endpoint to serve. A serving endpoint can have up to 15 + * served entities. + */ + served_entities?: Array | string; + /** + * (Deprecated, use served_entities instead) A list of served models for the endpoint to + * serve. A serving endpoint can have up to 15 served models. + */ + served_models?: Array | string; + /** + * The traffic config defining how invocations to the serving endpoint should be routed. + */ + traffic_config?: TrafficConfigClass | string; +} + +export interface AutoCaptureConfigClass { + /** + * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog + * name if the inference table is already enabled. + */ + catalog_name?: string; + /** + * Indicates whether the inference table is enabled. + */ + enabled?: boolean | string; + /** + * The name of the schema in Unity Catalog. NOTE: On update, you cannot change the schema + * name if the inference table is already enabled. + */ + schema_name?: string; + /** + * The prefix of the table in Unity Catalog. NOTE: On update, you cannot change the prefix + * name if the inference table is already enabled. + */ + table_name_prefix?: string; +} + +export interface ServedEntityClass { + /** + * The name of the entity to be served. The entity may be a model in the Databricks Model + * Registry, a model in the Unity Catalog (UC), + * or a function of type FEATURE_SPEC in the UC. If it is a UC object, the full name of the + * object should be given in the form of + * __catalog_name__.__schema_name__.__model_name__. + */ + entity_name?: string; + /** + * The version of the model in Databricks Model Registry to be served or empty if the entity + * is a FEATURE_SPEC. + */ + entity_version?: string; + /** + * An object containing a set of optional, user-specified environment variable key-value + * pairs used for serving this entity. + * Note: this is an experimental feature and subject to change. + * Example entity environment variables that refer to Databricks secrets: + * `{"OPENAI_API_KEY": "{{secrets/my_scope/my_key}}", "DATABRICKS_TOKEN": + * "{{secrets/my_scope2/my_key2}}"}` + */ + environment_vars?: {[key: string]: string} | string; + /** + * The external model to be served. NOTE: Only one of external_model and (entity_name, + * entity_version, workload_size, workload_type, and scale_to_zero_enabled) + * can be specified with the latter set being used for custom model serving for a Databricks + * registered model. For an existing endpoint with external_model, + * it cannot be updated to an endpoint without external_model. If the endpoint is created + * without external_model, users cannot update it to add external_model later. + * The task type of all external models within an endpoint must be the same. + */ + external_model?: ExternalModelClass | string; + /** + * ARN of the instance profile that the served entity uses to access AWS resources. + */ + instance_profile_arn?: string; + /** + * The maximum tokens per second that the endpoint can scale up to. + */ + max_provisioned_throughput?: number | string; + /** + * The minimum tokens per second that the endpoint can scale down to. + */ + min_provisioned_throughput?: number | string; + /** + * The name of a served entity. It must be unique across an endpoint. A served entity name + * can consist of alphanumeric characters, dashes, and underscores. + * If not specified for an external model, this field defaults to external_model.name, with + * '.' and ':' replaced with '-', and if not specified for other + * entities, it defaults to -. + */ + name?: string; + /** + * Whether the compute resources for the served entity should scale down to zero. + */ + scale_to_zero_enabled?: boolean | string; + /** + * The workload size of the served entity. The workload size corresponds to a range of + * provisioned concurrency that the compute autoscales between. + * A single unit of provisioned concurrency can process one request at a time. + * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 + * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). + * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each + * workload size is 0. + */ + workload_size?: string; + /** + * The workload type of the served entity. The workload type selects which type of compute + * to use in the endpoint. The default value for this parameter is + * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload + * types like GPU_SMALL and others. + * See the available [GPU + * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). + */ + workload_type?: string; +} + +export interface ExternalModelClass { + /** + * AI21Labs Config. Only required if the provider is 'ai21labs'. + */ + ai21labs_config?: Ai21LabsConfigClass | string; + /** + * Amazon Bedrock Config. Only required if the provider is 'amazon-bedrock'. + */ + amazon_bedrock_config?: AmazonBedrockConfigClass | string; + /** + * Anthropic Config. Only required if the provider is 'anthropic'. + */ + anthropic_config?: AnthropicConfigClass | string; + /** + * Cohere Config. Only required if the provider is 'cohere'. + */ + cohere_config?: CohereConfigClass | string; + /** + * Databricks Model Serving Config. Only required if the provider is + * 'databricks-model-serving'. + */ + databricks_model_serving_config?: + | DatabricksModelServingConfigClass + | string; + /** + * Google Cloud Vertex AI Config. Only required if the provider is 'google-cloud-vertex-ai'. + */ + google_cloud_vertex_ai_config?: GoogleCloudVertexAIConfigClass | string; + /** + * The name of the external model. + */ + name: string; /** - * An object containing a set of optional, user-specified environment variable key-value - * pairs used for serving this model. - * Note: this is an experimental feature and subject to change. - * Example model environment variables that refer to Databricks secrets: `{"OPENAI_API_KEY": - * "{{secrets/my_scope/my_key}}", "DATABRICKS_TOKEN": "{{secrets/my_scope2/my_key2}}"}` + * OpenAI Config. Only required if the provider is 'openai'. */ - environment_vars?: {[key: string]: string} | string; + openai_config?: OpenaiConfigClass | string; /** - * ARN of the instance profile that the served model will use to access AWS resources. + * PaLM Config. Only required if the provider is 'palm'. */ - instance_profile_arn?: string; + palm_config?: PalmConfigClass | string; /** - * The maximum tokens per second that the endpoint can scale up to. + * The name of the provider for the external model. Currently, the supported providers are + * 'ai21labs', 'anthropic', + * 'amazon-bedrock', 'cohere', 'databricks-model-serving', 'google-cloud-vertex-ai', + * 'openai', and 'palm'.", */ - max_provisioned_throughput?: number | string; + provider: Provider; /** - * The minimum tokens per second that the endpoint can scale down to. + * The task type of the external model. */ - min_provisioned_throughput?: number | string; + task: string; +} + +export interface Ai21LabsConfigClass { + ai21labs_api_key?: string; + ai21labs_api_key_plaintext?: string; +} + +export interface AmazonBedrockConfigClass { /** - * The name of the model in Databricks Model Registry to be served or if the model resides - * in Unity Catalog, the full name of model, - * in the form of __catalog_name__.__schema_name__.__model_name__. + * The Databricks secret key reference for an AWS access key ID with permissions to interact + * with Bedrock services. If you prefer to paste your API key directly, see + * `aws_access_key_id`. You must provide an API key using one of the following fields: + * `aws_access_key_id` or `aws_access_key_id_plaintext`. */ - model_name: string; + aws_access_key_id?: string; /** - * The version of the model in Databricks Model Registry or Unity Catalog to be served. + * An AWS access key ID with permissions to interact with Bedrock services provided as a + * plaintext string. If you prefer to reference your key using Databricks Secrets, see + * `aws_access_key_id`. You must provide an API key using one of the following fields: + * `aws_access_key_id` or `aws_access_key_id_plaintext`. */ - model_version: string; + aws_access_key_id_plaintext?: string; /** - * The name of a served model. It must be unique across an endpoint. If not specified, this - * field will default to -. - * A served model name can consist of alphanumeric characters, dashes, and underscores. + * The AWS region to use. Bedrock has to be enabled there. */ - name?: string; + aws_region: string; /** - * Whether the compute resources for the served model should scale down to zero. + * The Databricks secret key reference for an AWS secret access key paired with the access + * key ID, with permissions to interact with Bedrock services. If you prefer to paste your + * API key directly, see `aws_secret_access_key_plaintext`. You must provide an API key + * using one of the following fields: `aws_secret_access_key` or + * `aws_secret_access_key_plaintext`. */ - scale_to_zero_enabled: boolean | string; + aws_secret_access_key?: string; /** - * The workload size of the served model. The workload size corresponds to a range of - * provisioned concurrency that the compute will autoscale between. - * A single unit of provisioned concurrency can process one request at a time. - * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 - * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). - * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each - * workload size will be 0. + * An AWS secret access key paired with the access key ID, with permissions to interact with + * Bedrock services provided as a plaintext string. If you prefer to reference your key + * using Databricks Secrets, see `aws_secret_access_key`. You must provide an API key using + * one of the following fields: `aws_secret_access_key` or `aws_secret_access_key_plaintext`. */ - workload_size?: WorkloadSize; + aws_secret_access_key_plaintext?: string; /** - * The workload type of the served model. The workload type selects which type of compute to - * use in the endpoint. The default value for this parameter is - * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload - * types like GPU_SMALL and others. - * See the available [GPU - * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). + * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: + * Anthropic, Cohere, AI21Labs, Amazon. */ - workload_type?: WorkloadTypeEnum; + bedrock_provider: BedrockProvider; } /** - * The workload size of the served model. The workload size corresponds to a range of - * provisioned concurrency that the compute will autoscale between. - * A single unit of provisioned concurrency can process one request at a time. - * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 - * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). - * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each - * workload size will be 0. - * - * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. - * - * The key of an environment. It has to be unique within a job. - * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. - * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. - * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. - * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. - * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. - * - * URL of the repository to be cloned by this job. - * - * Name of the branch which the job is imported from. - * - * Path of the job YAML file that contains the job specification. - * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. + * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: + * Anthropic, Cohere, AI21Labs, Amazon. * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If @@ -5053,6 +5783,45 @@ export interface ServedModelClass { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -5224,6 +5993,16 @@ export interface ServedModelClass { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -5389,6 +6168,8 @@ export interface ServedModelClass { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -5466,6 +6247,9 @@ export interface ServedModelClass { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -5541,8 +6325,16 @@ export interface ServedModelClass { * * Storage root URL for managed tables within schema. * - * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: - * Anthropic, Cohere, AI21Labs, Amazon. + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. * * The name of the provider for the external model. Currently, the supported providers are * 'ai21labs', 'anthropic', @@ -5550,54 +6342,15 @@ export interface ServedModelClass { * 'openai', and 'palm'.", * * - * The workload type of the served model. The workload type selects which type of compute to - * use in the endpoint. The default value for this parameter is - * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload - * types like GPU_SMALL and others. - * See the available [GPU - * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). - * - * - * Key field for a serving endpoint rate limit. Currently, only 'user' and 'endpoint' are - * supported, with 'endpoint' being the default if not specified. - * - * Renewal period field for a serving endpoint rate limit. Currently, only 'minute' is - * supported. - * - * Current status of `model_version` - * - * Databricks Enhanced Autoscaling optimizes cluster utilization by automatically - * allocating cluster resources based on workload volume, with minimal impact to - * the data processing latency of your pipelines. Enhanced Autoscaling is available - * for `updates` clusters only. The legacy autoscaling feature is used for `maintenance` - * clusters. - * - * - * The SCD type to use to ingest the table. - * - * Can only be one of ``"CUSTOM_METRIC_TYPE_AGGREGATE"``, ``"CUSTOM_METRIC_TYPE_DERIVED"``, - * or ``"CUSTOM_METRIC_TYPE_DRIFT"``. - * The ``"CUSTOM_METRIC_TYPE_AGGREGATE"`` and ``"CUSTOM_METRIC_TYPE_DERIVED"`` metrics - * are computed on a single table, whereas the ``"CUSTOM_METRIC_TYPE_DRIFT"`` compare - * metrics across - * baseline and input table, or across the two consecutive time windows. - * - CUSTOM_METRIC_TYPE_AGGREGATE: only depend on the existing columns in your table - * - CUSTOM_METRIC_TYPE_DERIVED: depend on previously computed aggregate metrics - * - CUSTOM_METRIC_TYPE_DRIFT: depend on previously computed aggregate or derived metrics - * + * The workload size of the served model. The workload size corresponds to a range of + * provisioned concurrency that the compute will autoscale between. + * A single unit of provisioned concurrency can process one request at a time. + * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 + * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). + * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each + * workload size will be 0. * - * Problem type the model aims to solve. Determines the type of model-quality metrics that - * will be computed. * - * Read only field that indicates whether a schedule is paused or not. - */ -export enum WorkloadSize { - Large = "Large", - Medium = "Medium", - Small = "Small", -} - -/** * The workload type of the served model. The workload type selects which type of compute to * use in the endpoint. The default value for this parameter is * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload @@ -5606,54 +6359,140 @@ export enum WorkloadSize { * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). * * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. + * Key field for a serving endpoint rate limit. Currently, only 'user' and 'endpoint' are + * supported, with 'endpoint' being the default if not specified. * - * The key of an environment. It has to be unique within a job. + * Renewal period field for a serving endpoint rate limit. Currently, only 'minute' is + * supported. * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. + * Current status of `model_version` * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. + * Databricks Enhanced Autoscaling optimizes cluster utilization by automatically + * allocating cluster resources based on workload volume, with minimal impact to + * the data processing latency of your pipelines. Enhanced Autoscaling is available + * for `updates` clusters only. The legacy autoscaling feature is used for `maintenance` + * clusters. * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. + * The SCD type to use to ingest the table. * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. + * Can only be one of ``"CUSTOM_METRIC_TYPE_AGGREGATE"``, ``"CUSTOM_METRIC_TYPE_DERIVED"``, + * or ``"CUSTOM_METRIC_TYPE_DRIFT"``. + * The ``"CUSTOM_METRIC_TYPE_AGGREGATE"`` and ``"CUSTOM_METRIC_TYPE_DERIVED"`` metrics + * are computed on a single table, whereas the ``"CUSTOM_METRIC_TYPE_DRIFT"`` compare + * metrics across + * baseline and input table, or across the two consecutive time windows. + * - CUSTOM_METRIC_TYPE_AGGREGATE: only depend on the existing columns in your table + * - CUSTOM_METRIC_TYPE_DERIVED: depend on previously computed aggregate metrics + * - CUSTOM_METRIC_TYPE_DRIFT: depend on previously computed aggregate or derived metrics * - * URL of the repository to be cloned by this job. * - * Name of the branch which the job is imported from. + * Problem type the model aims to solve. Determines the type of model-quality metrics that + * will be computed. * - * Path of the job YAML file that contains the job specification. + * Read only field that indicates whether a schedule is paused or not. + */ +export enum BedrockProvider { + Ai21Labs = "ai21labs", + Amazon = "amazon", + Anthropic = "anthropic", + Cohere = "cohere", +} + +export interface AnthropicConfigClass { + /** + * The Databricks secret key reference for an Anthropic API key. If you prefer to paste your + * API key directly, see `anthropic_api_key_plaintext`. You must provide an API key using + * one of the following fields: `anthropic_api_key` or `anthropic_api_key_plaintext`. + */ + anthropic_api_key?: string; + /** + * The Anthropic API key provided as a plaintext string. If you prefer to reference your key + * using Databricks Secrets, see `anthropic_api_key`. You must provide an API key using one + * of the following fields: `anthropic_api_key` or `anthropic_api_key_plaintext`. + */ + anthropic_api_key_plaintext?: string; +} + +export interface CohereConfigClass { + /** + * This is an optional field to provide a customized base URL for the Cohere API. + * If left unspecified, the standard Cohere base URL is used. + */ + cohere_api_base?: string; + /** + * The Databricks secret key reference for a Cohere API key. If you prefer to paste your API + * key directly, see `cohere_api_key_plaintext`. You must provide an API key using one of + * the following fields: `cohere_api_key` or `cohere_api_key_plaintext`. + */ + cohere_api_key?: string; + /** + * The Cohere API key provided as a plaintext string. If you prefer to reference your key + * using Databricks Secrets, see `cohere_api_key`. You must provide an API key using one of + * the following fields: `cohere_api_key` or `cohere_api_key_plaintext`. + */ + cohere_api_key_plaintext?: string; +} + +export interface DatabricksModelServingConfigClass { + /** + * The Databricks secret key reference for a Databricks API token that corresponds to a user + * or service + * principal with Can Query access to the model serving endpoint pointed to by this external + * model. + * If you prefer to paste your API key directly, see `databricks_api_token_plaintext`. + * You must provide an API key using one of the following fields: `databricks_api_token` or + * `databricks_api_token_plaintext`. + */ + databricks_api_token?: string; + /** + * The Databricks API token that corresponds to a user or service + * principal with Can Query access to the model serving endpoint pointed to by this external + * model provided as a plaintext string. + * If you prefer to reference your key using Databricks Secrets, see `databricks_api_token`. + * You must provide an API key using one of the following fields: `databricks_api_token` or + * `databricks_api_token_plaintext`. + */ + databricks_api_token_plaintext?: string; + /** + * The URL of the Databricks workspace containing the model serving endpoint pointed to by + * this external model. + */ + databricks_workspace_url: string; +} + +export interface GoogleCloudVertexAIConfigClass { + private_key?: string; + private_key_plaintext?: string; + project_id?: string; + region?: string; +} + +export interface OpenaiConfigClass { + microsoft_entra_client_id?: string; + microsoft_entra_client_secret?: string; + microsoft_entra_client_secret_plaintext?: string; + microsoft_entra_tenant_id?: string; + openai_api_base?: string; + openai_api_key?: string; + openai_api_key_plaintext?: string; + openai_api_type?: string; + openai_api_version?: string; + openai_deployment_name?: string; + openai_organization?: string; +} + +export interface PalmConfigClass { + palm_api_key?: string; + palm_api_key_plaintext?: string; +} + +/** + * The name of the provider for the external model. Currently, the supported providers are + * 'ai21labs', 'anthropic', + * 'amazon-bedrock', 'cohere', 'databricks-model-serving', 'google-cloud-vertex-ai', + * 'openai', and 'palm'.", * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If @@ -5772,6 +6611,45 @@ export enum WorkloadSize { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -5943,6 +6821,16 @@ export enum WorkloadSize { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -6108,6 +6996,8 @@ export enum WorkloadSize { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -6185,6 +7075,9 @@ export enum WorkloadSize { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -6260,14 +7153,19 @@ export enum WorkloadSize { * * Storage root URL for managed tables within schema. * - * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: - * Anthropic, Cohere, AI21Labs, Amazon. + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. * - * The name of the provider for the external model. Currently, the supported providers are - * 'ai21labs', 'anthropic', - * 'amazon-bedrock', 'cohere', 'databricks-model-serving', 'google-cloud-vertex-ai', - * 'openai', and 'palm'.", + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. * + * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: + * Anthropic, Cohere, AI21Labs, Amazon. * * The workload size of the served model. The workload size corresponds to a range of * provisioned concurrency that the compute will autoscale between. @@ -6278,6 +7176,14 @@ export enum WorkloadSize { * workload size will be 0. * * + * The workload type of the served model. The workload type selects which type of compute to + * use in the endpoint. The default value for this parameter is + * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload + * types like GPU_SMALL and others. + * See the available [GPU + * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). + * + * * Key field for a serving endpoint rate limit. Currently, only 'user' and 'endpoint' are * supported, with 'endpoint' being the default if not specified. * @@ -6311,102 +7217,88 @@ export enum WorkloadSize { * * Read only field that indicates whether a schedule is paused or not. */ -export enum WorkloadTypeEnum { - CPU = "CPU", - GPULarge = "GPU_LARGE", - GPUMedium = "GPU_MEDIUM", - GPUSmall = "GPU_SMALL", - MultigpuMedium = "MULTIGPU_MEDIUM", +export enum Provider { + Ai21Labs = "ai21labs", + AmazonBedrock = "amazon-bedrock", + Anthropic = "anthropic", + Cohere = "cohere", + DatabricksModelServing = "databricks-model-serving", + GoogleCloudVertexAI = "google-cloud-vertex-ai", + Openai = "openai", + Palm = "palm", } -export interface TrafficConfigClass { +export interface ServedModelClass { /** - * The list of routes that define traffic to each served entity. + * An object containing a set of optional, user-specified environment variable key-value + * pairs used for serving this model. + * Note: this is an experimental feature and subject to change. + * Example model environment variables that refer to Databricks secrets: `{"OPENAI_API_KEY": + * "{{secrets/my_scope/my_key}}", "DATABRICKS_TOKEN": "{{secrets/my_scope2/my_key2}}"}` */ - routes?: Array | string; -} - -export interface RouteClass { + environment_vars?: {[key: string]: string} | string; /** - * The name of the served model this route configures traffic for. + * ARN of the instance profile that the served model will use to access AWS resources. */ - served_model_name: string; + instance_profile_arn?: string; /** - * The percentage of endpoint traffic to send to this route. It must be an integer between 0 - * and 100 inclusive. + * The maximum tokens per second that the endpoint can scale up to. */ - traffic_percentage: number | string; -} - -export interface RateLimitClass { + max_provisioned_throughput?: number | string; + /** + * The minimum tokens per second that the endpoint can scale down to. + */ + min_provisioned_throughput?: number | string; + /** + * The name of the model in Databricks Model Registry to be served or if the model resides + * in Unity Catalog, the full name of model, + * in the form of __catalog_name__.__schema_name__.__model_name__. + */ + model_name: string; + /** + * The version of the model in Databricks Model Registry or Unity Catalog to be served. + */ + model_version: string; + /** + * The name of a served model. It must be unique across an endpoint. If not specified, this + * field will default to -. + * A served model name can consist of alphanumeric characters, dashes, and underscores. + */ + name?: string; /** - * Used to specify how many calls are allowed for a key within the renewal_period. + * Whether the compute resources for the served model should scale down to zero. */ - calls: number | string; + scale_to_zero_enabled: boolean | string; /** - * Key field for a serving endpoint rate limit. Currently, only 'user' and 'endpoint' are - * supported, with 'endpoint' being the default if not specified. + * The workload size of the served model. The workload size corresponds to a range of + * provisioned concurrency that the compute will autoscale between. + * A single unit of provisioned concurrency can process one request at a time. + * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 + * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). + * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each + * workload size will be 0. */ - key?: Key; + workload_size?: WorkloadSize; /** - * Renewal period field for a serving endpoint rate limit. Currently, only 'minute' is - * supported. + * The workload type of the served model. The workload type selects which type of compute to + * use in the endpoint. The default value for this parameter is + * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload + * types like GPU_SMALL and others. + * See the available [GPU + * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). */ - renewal_period: RenewalPeriod; + workload_type?: WorkloadTypeEnum; } /** - * Key field for a serving endpoint rate limit. Currently, only 'user' and 'endpoint' are - * supported, with 'endpoint' being the default if not specified. - * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. - * - * The key of an environment. It has to be unique within a job. - * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. - * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. - * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. - * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. - * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. - * - * URL of the repository to be cloned by this job. - * - * Name of the branch which the job is imported from. - * - * Path of the job YAML file that contains the job specification. + * The workload size of the served model. The workload size corresponds to a range of + * provisioned concurrency that the compute will autoscale between. + * A single unit of provisioned concurrency can process one request at a time. + * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 + * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). + * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each + * workload size will be 0. * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If @@ -6525,6 +7417,45 @@ export interface RateLimitClass { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -6696,6 +7627,16 @@ export interface RateLimitClass { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -6861,6 +7802,8 @@ export interface RateLimitClass { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -6938,6 +7881,9 @@ export interface RateLimitClass { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -7013,6 +7959,17 @@ export interface RateLimitClass { * * Storage root URL for managed tables within schema. * + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + * * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: * Anthropic, Cohere, AI21Labs, Amazon. * @@ -7022,15 +7979,6 @@ export interface RateLimitClass { * 'openai', and 'palm'.", * * - * The workload size of the served model. The workload size corresponds to a range of - * provisioned concurrency that the compute will autoscale between. - * A single unit of provisioned concurrency can process one request at a time. - * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 - * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). - * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each - * workload size will be 0. - * - * * The workload type of the served model. The workload type selects which type of compute to * use in the endpoint. The default value for this parameter is * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload @@ -7039,6 +7987,9 @@ export interface RateLimitClass { * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). * * + * Key field for a serving endpoint rate limit. Currently, only 'user' and 'endpoint' are + * supported, with 'endpoint' being the default if not specified. + * * Renewal period field for a serving endpoint rate limit. Currently, only 'minute' is * supported. * @@ -7069,63 +8020,20 @@ export interface RateLimitClass { * * Read only field that indicates whether a schedule is paused or not. */ -export enum Key { - Endpoint = "endpoint", - User = "user", +export enum WorkloadSize { + Large = "Large", + Medium = "Medium", + Small = "Small", } /** - * Renewal period field for a serving endpoint rate limit. Currently, only 'minute' is - * supported. - * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. - * - * The key of an environment. It has to be unique within a job. - * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. - * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. - * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. - * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. - * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. - * - * URL of the repository to be cloned by this job. - * - * Name of the branch which the job is imported from. - * - * Path of the job YAML file that contains the job specification. + * The workload type of the served model. The workload type selects which type of compute to + * use in the endpoint. The default value for this parameter is + * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload + * types like GPU_SMALL and others. + * See the available [GPU + * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If @@ -7244,6 +8152,45 @@ export enum Key { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -7415,6 +8362,16 @@ export enum Key { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -7580,6 +8537,8 @@ export enum Key { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -7657,6 +8616,9 @@ export enum Key { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -7732,6 +8694,17 @@ export enum Key { * * Storage root URL for managed tables within schema. * + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + * * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: * Anthropic, Cohere, AI21Labs, Amazon. * @@ -7742,25 +8715,20 @@ export enum Key { * * * The workload size of the served model. The workload size corresponds to a range of - * provisioned concurrency that the compute will autoscale between. - * A single unit of provisioned concurrency can process one request at a time. - * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 - * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). - * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each - * workload size will be 0. - * - * - * The workload type of the served model. The workload type selects which type of compute to - * use in the endpoint. The default value for this parameter is - * "CPU". For deep learning workloads, GPU acceleration is available by selecting workload - * types like GPU_SMALL and others. - * See the available [GPU - * types](https://docs.databricks.com/machine-learning/model-serving/create-manage-serving-endpoints.html#gpu-workload-types). + * provisioned concurrency that the compute will autoscale between. + * A single unit of provisioned concurrency can process one request at a time. + * Valid workload sizes are "Small" (4 - 4 provisioned concurrency), "Medium" (8 - 16 + * provisioned concurrency), and "Large" (16 - 64 provisioned concurrency). + * If scale-to-zero is enabled, the lower bound of the provisioned concurrency for each + * workload size will be 0. * * * Key field for a serving endpoint rate limit. Currently, only 'user' and 'endpoint' are * supported, with 'endpoint' being the default if not specified. * + * Renewal period field for a serving endpoint rate limit. Currently, only 'minute' is + * supported. + * * Current status of `model_version` * * Databricks Enhanced Autoscaling optimizes cluster utilization by automatically @@ -7788,11 +8756,51 @@ export enum Key { * * Read only field that indicates whether a schedule is paused or not. */ -export enum RenewalPeriod { - Minute = "minute", +export enum WorkloadTypeEnum { + CPU = "CPU", + GPULarge = "GPU_LARGE", + GPUMedium = "GPU_MEDIUM", + GPUSmall = "GPU_SMALL", + MultigpuMedium = "MULTIGPU_MEDIUM", } -export interface BundleSchem3 { +export interface TrafficConfigClass { + /** + * The list of routes that define traffic to each served entity. + */ + routes?: Array | string; +} + +export interface RouteClass { + /** + * The name of the served model this route configures traffic for. + */ + served_model_name: string; + /** + * The percentage of endpoint traffic to send to this route. It must be an integer between 0 + * and 100 inclusive. + */ + traffic_percentage: number | string; +} + +export interface BundleSchem4 { + /** + * Used to specify how many calls are allowed for a key within the renewal_period. + */ + calls: number | string; + /** + * Key field for a serving endpoint rate limit. Currently, only 'user' and 'endpoint' are + * supported, with 'endpoint' being the default if not specified. + */ + key?: Key; + /** + * Renewal period field for a serving endpoint rate limit. Currently, only 'minute' is + * supported. + */ + renewal_period: RenewalPeriod; +} + +export interface BundleSchem5 { /** * Key field for a serving endpoint tag. */ @@ -7829,7 +8837,7 @@ export interface ModelClass { /** * Tags: Additional metadata key-value pairs for this `registered_model`. */ - tags?: Array | string; + tags?: Array | string; /** * User that created this `registered_model` */ @@ -7882,7 +8890,7 @@ export interface LatestVersionClass { /** * Tags: Additional metadata key-value pairs for this `model_version`. */ - tags?: Array | string; + tags?: Array | string; /** * User that created this `model_version`. */ @@ -7896,55 +8904,6 @@ export interface LatestVersionClass { /** * Current status of `model_version` * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. - * - * The key of an environment. It has to be unique within a job. - * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. - * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. - * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. - * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. - * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. - * - * URL of the repository to be cloned by this job. - * - * Name of the branch which the job is imported from. - * - * Path of the job YAML file that contains the job specification. - * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. - * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If * ommitted, nodes will be placed on instances without an IAM instance profile. The instance @@ -8062,6 +9021,45 @@ export interface LatestVersionClass { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -8233,6 +9231,16 @@ export interface LatestVersionClass { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -8398,6 +9406,8 @@ export interface LatestVersionClass { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -8475,6 +9485,9 @@ export interface LatestVersionClass { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -8550,6 +9563,17 @@ export interface LatestVersionClass { * * Storage root URL for managed tables within schema. * + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + * * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: * Anthropic, Cohere, AI21Labs, Amazon. * @@ -8613,7 +9637,7 @@ export enum Status { Ready = "READY", } -export interface BundleSchem4 { +export interface BundleSchem6 { /** * The tag key. */ @@ -8624,7 +9648,7 @@ export interface BundleSchem4 { value?: string; } -export interface BundleSchem5 { +export interface BundleSchem7 { /** * The tag key. */ @@ -8636,6 +9660,10 @@ export interface BundleSchem5 { } export interface PipelineClass { + /** + * Budget policy of this pipeline. + */ + budget_policy_id?: string; /** * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` @@ -8650,7 +9678,7 @@ export interface PipelineClass { /** * Cluster settings for this pipeline deployment. */ - clusters?: Array | string; + clusters?: Array | string; /** * String-String configuration for this pipeline execution. */ @@ -8662,7 +9690,7 @@ export interface PipelineClass { /** * Deployment type of this pipeline. */ - deployment?: BundleSchem7 | string; + deployment?: BundleSchem10 | string; /** * Whether the pipeline is in Development mode. Defaults to false. */ @@ -8691,7 +9719,7 @@ export interface PipelineClass { /** * Libraries or code needed by this deployment. */ - libraries?: Array | string; + libraries?: Array | string; /** * Friendly identifier for this pipeline. */ @@ -8705,6 +9733,11 @@ export interface PipelineClass { * Whether Photon is enabled for this pipeline. */ photon?: boolean | string; + /** + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + */ + schema?: string; /** * Whether serverless compute is enabled for this pipeline. */ @@ -8722,10 +9755,10 @@ export interface PipelineClass { /** * Which pipeline trigger to use. Deprecated: Use `continuous` instead. */ - trigger?: BundleSchem12 | string; + trigger?: BundleSchem15 | string; } -export interface ClusterClass { +export interface BundleSchem8 { /** * Note: This field won't be persisted. Only API users will check this field. */ @@ -8734,7 +9767,7 @@ export interface ClusterClass { * Parameters needed in order to automatically scale clusters up and down based on load. * Note: autoscaling works best with DB runtime versions 3.0 or later. */ - autoscale?: BundleSchem6 | string; + autoscale?: BundleSchem9 | string; /** * Attributes related to clusters running on Amazon Web Services. * If not specified at cluster creation, a set of default values will be used. @@ -8857,7 +9890,7 @@ export interface ClusterClass { ssh_public_keys?: string[] | string; } -export interface BundleSchem6 { +export interface BundleSchem9 { /** * The maximum number of workers to which the cluster can scale up when overloaded. * `max_workers` must be strictly greater than `min_workers`. @@ -8886,55 +9919,6 @@ export interface BundleSchem6 { * clusters. * * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. - * - * The key of an environment. It has to be unique within a job. - * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. - * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. - * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. - * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. - * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. - * - * URL of the repository to be cloned by this job. - * - * Name of the branch which the job is imported from. - * - * Path of the job YAML file that contains the job specification. - * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. - * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If * ommitted, nodes will be placed on instances without an IAM instance profile. The instance @@ -9052,6 +10036,45 @@ export interface BundleSchem6 { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -9223,6 +10246,16 @@ export interface BundleSchem6 { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -9388,6 +10421,8 @@ export interface BundleSchem6 { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -9465,6 +10500,9 @@ export interface BundleSchem6 { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -9540,6 +10578,17 @@ export interface BundleSchem6 { * * Storage root URL for managed tables within schema. * + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + * * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: * Anthropic, Cohere, AI21Labs, Amazon. * @@ -9597,7 +10646,7 @@ export enum Mode { Legacy = "LEGACY", } -export interface BundleSchem7 { +export interface BundleSchem10 { /** * The deployment method that manages the pipeline. */ @@ -9608,6 +10657,16 @@ export interface BundleSchem7 { metadata_file_path?: string; } +/** + * The deployment method that manages the pipeline. + * + * The deployment method that manages the pipeline: + * - BUNDLE: The pipeline is managed by a Databricks Asset Bundle. + */ +export enum Kind { + Bundle = "BUNDLE", +} + export interface FiltersClass { /** * Paths to exclude. @@ -9669,14 +10728,14 @@ export interface ObjectClass { /** * Select tables from a specific source schema. */ - schema?: BundleSchem8 | string; + schema?: BundleSchem11 | string; /** * Select tables from a specific source table. */ - table?: BundleSchem9 | string; + table?: BundleSchem12 | string; } -export interface BundleSchem8 { +export interface BundleSchem11 { /** * Required. Destination catalog to store tables. */ @@ -9722,55 +10781,6 @@ export interface TableConfigurationClass { /** * The SCD type to use to ingest the table. * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. - * - * The key of an environment. It has to be unique within a job. - * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. - * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. - * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. - * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. - * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. - * - * URL of the repository to be cloned by this job. - * - * Name of the branch which the job is imported from. - * - * Path of the job YAML file that contains the job specification. - * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. - * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If * ommitted, nodes will be placed on instances without an IAM instance profile. The instance @@ -9888,6 +10898,45 @@ export interface TableConfigurationClass { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -10059,6 +11108,16 @@ export interface TableConfigurationClass { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -10224,6 +11283,8 @@ export interface TableConfigurationClass { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -10301,6 +11362,9 @@ export interface TableConfigurationClass { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -10376,6 +11440,17 @@ export interface TableConfigurationClass { * * Storage root URL for managed tables within schema. * + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + * * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: * Anthropic, Cohere, AI21Labs, Amazon. * @@ -10438,7 +11513,7 @@ export enum ScdType { ScdType2 = "SCD_TYPE_2", } -export interface BundleSchem9 { +export interface BundleSchem12 { /** * Required. Destination catalog to store table. */ @@ -10471,11 +11546,11 @@ export interface BundleSchem9 { table_configuration?: TableConfigurationClass | string; } -export interface BundleSchem10 { +export interface BundleSchem13 { /** * The path to a file that defines a pipeline and is stored in the Databricks Repos. */ - file?: BundleSchem11 | string; + file?: BundleSchem14 | string; /** * URI of the jar to be installed. Currently only DBFS is supported. */ @@ -10494,7 +11569,7 @@ export interface BundleSchem10 { whl?: string; } -export interface BundleSchem11 { +export interface BundleSchem14 { /** * The absolute path of the file. */ @@ -10525,7 +11600,7 @@ export interface NotificationClass { email_recipients?: string[] | string; } -export interface BundleSchem12 { +export interface BundleSchem15 { cron?: CronClass | string; manual?: ManualClass | string; } @@ -10573,7 +11648,7 @@ export interface QualityMonitorClass { /** * The schedule for automatically updating and refreshing metric tables. */ - schedule?: BundleSchem13 | string; + schedule?: BundleSchem16 | string; /** * Whether to skip creating a default dashboard summarizing data quality metrics. */ @@ -10649,55 +11724,6 @@ export interface CustomMetricClass { * - CUSTOM_METRIC_TYPE_DRIFT: depend on previously computed aggregate or derived metrics * * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. - * - * The key of an environment. It has to be unique within a job. - * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. - * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. - * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. - * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. - * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. - * - * URL of the repository to be cloned by this job. - * - * Name of the branch which the job is imported from. - * - * Path of the job YAML file that contains the job specification. - * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. - * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If * ommitted, nodes will be placed on instances without an IAM instance profile. The instance @@ -10815,6 +11841,45 @@ export interface CustomMetricClass { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -10986,6 +12051,16 @@ export interface CustomMetricClass { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -11151,6 +12226,8 @@ export interface CustomMetricClass { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -11228,6 +12305,9 @@ export interface CustomMetricClass { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -11303,6 +12383,17 @@ export interface CustomMetricClass { * * Storage root URL for managed tables within schema. * + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + * * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: * Anthropic, Cohere, AI21Labs, Amazon. * @@ -11394,74 +12485,25 @@ export interface InferenceLogClass { * probability for a given * sample. The map should be of PySpark MapType(). */ - prediction_proba_col?: string; - /** - * Problem type the model aims to solve. Determines the type of model-quality metrics that - * will be computed. - */ - problem_type: ProblemType; - /** - * Column that contains the timestamps of requests. The column must be one of the following: - * - A ``TimestampType`` column - * - A column whose values can be converted to timestamps through the pyspark - * ``to_timestamp`` - * [function](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_timestamp.html). - */ - timestamp_col: string; -} - -/** - * Problem type the model aims to solve. Determines the type of model-quality metrics that - * will be computed. - * - * Location where artifacts for the experiment are stored. - * - * Unique identifier for the experiment. - * - * Current life cycle stage of the experiment: "active" or "deleted". - * Deleted experiments are not returned by APIs. - * - * Human readable name that identifies the experiment. - * - * The tag key. - * - * The tag value. - * - * Path of the file that contains deployment metadata. - * - * An optional description for the job. The maximum length is 27700 characters in UTF-8 - * encoding. - * - * The key of an environment. It has to be unique within a job. - * - * Client version used by the environment - * The client is the user-facing environment of the runtime. - * Each client comes with a specific set of pre-installed libraries. - * The version is a string, consisting of the major client version. - * - * Name of the branch to be checked out and used by this job. This field cannot be specified - * in conjunction with git_tag or git_commit. - * - * Commit to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_tag. - * - * Commit that was used to execute the run. If git_branch was specified, this points to the - * HEAD of the branch at the time of the run; if git_tag was specified, this points to the - * commit the tag points to. - * - * Name of the tag to be checked out and used by this job. This field cannot be specified in - * conjunction with git_branch or git_commit. - * - * URL of the repository to be cloned by this job. - * - * Name of the branch which the job is imported from. - * - * Path of the job YAML file that contains the job specification. - * - * A unique name for the job cluster. This field is required and must be unique within the - * job. - * `JobTaskSettings` may refer to this field to determine which cluster to launch for the - * task execution. + prediction_proba_col?: string; + /** + * Problem type the model aims to solve. Determines the type of model-quality metrics that + * will be computed. + */ + problem_type: ProblemType; + /** + * Column that contains the timestamps of requests. The column must be one of the following: + * - A ``TimestampType`` column + * - A column whose values can be converted to timestamps through the pyspark + * ``to_timestamp`` + * [function](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.to_timestamp.html). + */ + timestamp_col: string; +} + +/** + * Problem type the model aims to solve. Determines the type of model-quality metrics that + * will be computed. * * Nodes for this cluster will only be placed on AWS instances with this instance profile. * If @@ -11580,6 +12622,45 @@ export interface InferenceLogClass { * the :method:clusters/sparkVersions API call. * * + * Location where artifacts for the experiment are stored. + * + * Unique identifier for the experiment. + * + * Current life cycle stage of the experiment: "active" or "deleted". + * Deleted experiments are not returned by APIs. + * + * Human readable name that identifies the experiment. + * + * The tag key. + * + * The tag value. + * + * An optional description for the job. The maximum length is 27700 characters in UTF-8 + * encoding. + * + * The key of an environment. It has to be unique within a job. + * + * Client version used by the environment + * The client is the user-facing environment of the runtime. + * Each client comes with a specific set of pre-installed libraries. + * The version is a string, consisting of the major client version. + * + * Name of the branch to be checked out and used by this job. This field cannot be specified + * in conjunction with git_tag or git_commit. + * + * Commit to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_tag. + * + * Name of the tag to be checked out and used by this job. This field cannot be specified in + * conjunction with git_branch or git_commit. + * + * URL of the repository to be cloned by this job. + * + * A unique name for the job cluster. This field is required and must be unique within the + * job. + * `JobTaskSettings` may refer to this field to determine which cluster to launch for the + * task execution. + * * An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding. * * Default value of the parameter. @@ -11751,6 +12832,16 @@ export interface InferenceLogClass { * URL to be monitored for file arrivals. The path must point to the root or a subpath of * the external location. * + * The name of the catalog in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the catalog + * name. + * + * The name of the schema in Unity Catalog. Required when enabling inference tables. NOTE: + * On update, you have to disable inference table first in order to change the schema name. + * + * The prefix of the table in Unity Catalog. NOTE: On update, you have to disable inference + * table first in order to change the prefix name. + * * The name of the catalog in Unity Catalog. NOTE: On update, you cannot change the catalog * name if the inference table is already enabled. * @@ -11916,6 +13007,8 @@ export interface InferenceLogClass { * * User that created this `registered_model` * + * Budget policy of this pipeline. + * * A catalog in Unity Catalog to publish data from this pipeline to. If `target` is * specified, tables in this pipeline are published to a `target` schema inside `catalog` * (for example, `catalog`.`target`.`table`). If `target` is not specified, no data is @@ -11993,6 +13086,9 @@ export interface InferenceLogClass { * * Friendly identifier for this pipeline. * + * The default schema (database) where tables are read from or published to. The presence of + * this field implies that the pipeline is in direct publishing mode. + * * DBFS root directory for storing checkpoints and tables. * * Target schema (database) to add tables in this pipeline to. If not specified, no data is @@ -12068,6 +13164,17 @@ export interface InferenceLogClass { * * Storage root URL for managed tables within schema. * + * Behavior for PII filter. Currently only 'BLOCK' is supported. If 'BLOCK' is set for the + * input guardrail and the request contains PII, the request is not sent to the model server + * and 400 status code is returned; if 'BLOCK' is set for the output guardrail and the model + * response contains PII, the PII info in the response is redacted and 400 status code is + * returned. + * + * Key field for a rate limit. Currently, only 'user' and 'endpoint' are supported, with + * 'endpoint' being the default if not specified. + * + * Renewal period field for a rate limit. Currently, only 'minute' is supported. + * * The underlying provider in Amazon Bedrock. Supported values (case insensitive) include: * Anthropic, Cohere, AI21Labs, Amazon. * @@ -12150,7 +13257,7 @@ export interface OnNewClassificationTagDetectedClass { email_addresses?: string[] | string; } -export interface BundleSchem13 { +export interface BundleSchem16 { /** * Read only field that indicates whether a schedule is paused or not. */ @@ -12216,7 +13323,7 @@ export interface GrantClass { privileges: string[] | string; } -export interface BundleSchem14 { +export interface BundleSchem17 { /** * Name of parent catalog. */ @@ -12246,6 +13353,7 @@ export interface SyncClass { export interface TargetClass { artifacts?: {[key: string]: ArtifactClass | string} | string; bundle?: BundleClass | string; + cluster_id?: string; compute_id?: string; default?: boolean | string; git?: GitClass | string; @@ -12256,10 +13364,10 @@ export interface TargetClass { run_as?: RunAsClass | string; sync?: SyncClass | string; variables?: {[key: string]: any} | string; - workspace?: BundleSchem15 | string; + workspace?: BundleSchem18 | string; } -export interface BundleSchem15 { +export interface BundleSchem18 { artifact_path?: string; auth_type?: string; azure_client_id?: string; @@ -12273,6 +13381,7 @@ export interface BundleSchem15 { google_service_account?: string; host?: string; profile?: string; + resource_path?: string; root_path?: string; state_path?: string; } @@ -12503,234 +13612,614 @@ const typeMap: any = { BundleSchema: o( [ { - json: "artifacts", - js: "artifacts", - typ: u(undefined, u(m(u(r("ArtifactClass"), "")), "")), + json: "artifacts", + js: "artifacts", + typ: u(undefined, u(m(u(r("ArtifactClass"), "")), "")), + }, + { + json: "bundle", + js: "bundle", + typ: u(undefined, u(r("BundleClass"), "")), + }, + { + json: "experimental", + js: "experimental", + typ: u(undefined, u(r("ExperimentalClass"), "")), + }, + {json: "include", js: "include", typ: u(undefined, u(a(""), ""))}, + { + json: "permissions", + js: "permissions", + typ: u(undefined, u(a(u(r("PermissionClass"), "")), "")), + }, + { + json: "presets", + js: "presets", + typ: u(undefined, u(r("PresetsClass"), "")), + }, + { + json: "resources", + js: "resources", + typ: u(undefined, u(r("ResourcesClass"), "")), + }, + { + json: "run_as", + js: "run_as", + typ: u(undefined, u(r("RunAsClass"), "")), + }, + { + json: "sync", + js: "sync", + typ: u(undefined, u(r("SyncClass"), "")), + }, + { + json: "targets", + js: "targets", + typ: u(undefined, u(m(u(r("TargetClass"), "")), "")), + }, + { + json: "variables", + js: "variables", + typ: u(undefined, u(m(r("VariableValue")), "")), + }, + { + json: "workspace", + js: "workspace", + typ: u(undefined, u(r("BundleSchem18"), "")), + }, + ], + false + ), + ArtifactClass: o( + [ + {json: "build", js: "build", typ: u(undefined, "")}, + {json: "executable", js: "executable", typ: u(undefined, "")}, + { + json: "files", + js: "files", + typ: u(undefined, u(a(u(r("PurpleBundleSchem"), "")), "")), + }, + {json: "path", js: "path", typ: u(undefined, "")}, + {json: "type", js: "type", typ: ""}, + ], + false + ), + PurpleBundleSchem: o([{json: "source", js: "source", typ: ""}], false), + BundleClass: o( + [ + {json: "cluster_id", js: "cluster_id", typ: u(undefined, "")}, + {json: "compute_id", js: "compute_id", typ: u(undefined, "")}, + { + json: "databricks_cli_version", + js: "databricks_cli_version", + typ: u(undefined, ""), + }, + { + json: "deployment", + js: "deployment", + typ: u(undefined, u(r("FluffyBundleSchem"), "")), + }, + {json: "git", js: "git", typ: u(undefined, u(r("GitClass"), ""))}, + {json: "name", js: "name", typ: ""}, + ], + false + ), + FluffyBundleSchem: o( + [ + { + json: "fail_on_active_runs", + js: "fail_on_active_runs", + typ: u(undefined, u(true, "")), + }, + { + json: "lock", + js: "lock", + typ: u(undefined, u(r("LockClass"), "")), + }, + ], + false + ), + LockClass: o( + [ + {json: "enabled", js: "enabled", typ: u(undefined, u(true, ""))}, + {json: "force", js: "force", typ: u(undefined, u(true, ""))}, + ], + false + ), + GitClass: o( + [ + {json: "branch", js: "branch", typ: u(undefined, "")}, + {json: "origin_url", js: "origin_url", typ: u(undefined, "")}, + ], + false + ), + ExperimentalClass: o( + [ + { + json: "pydabs", + js: "pydabs", + typ: u(undefined, u(r("PydabsClass"), "")), + }, + { + json: "python_wheel_wrapper", + js: "python_wheel_wrapper", + typ: u(undefined, u(true, "")), + }, + {json: "scripts", js: "scripts", typ: u(undefined, u(m(""), ""))}, + { + json: "use_legacy_run_as", + js: "use_legacy_run_as", + typ: u(undefined, u(true, "")), + }, + ], + false + ), + PydabsClass: o( + [ + {json: "enabled", js: "enabled", typ: u(undefined, u(true, ""))}, + {json: "import", js: "import", typ: u(undefined, u(a(""), ""))}, + {json: "venv_path", js: "venv_path", typ: u(undefined, "")}, + ], + false + ), + PermissionClass: o( + [ + {json: "group_name", js: "group_name", typ: u(undefined, "")}, + {json: "level", js: "level", typ: ""}, + { + json: "service_principal_name", + js: "service_principal_name", + typ: u(undefined, ""), + }, + {json: "user_name", js: "user_name", typ: u(undefined, "")}, + ], + false + ), + PresetsClass: o( + [ + { + json: "jobs_max_concurrent_runs", + js: "jobs_max_concurrent_runs", + typ: u(undefined, u(0, "")), + }, + {json: "name_prefix", js: "name_prefix", typ: u(undefined, "")}, + { + json: "pipelines_development", + js: "pipelines_development", + typ: u(undefined, u(true, "")), + }, + {json: "tags", js: "tags", typ: u(undefined, u(m(""), ""))}, + { + json: "trigger_pause_status", + js: "trigger_pause_status", + typ: u(undefined, ""), + }, + ], + false + ), + ResourcesClass: o( + [ + { + json: "clusters", + js: "clusters", + typ: u(undefined, u(m(u(r("TentacledBundleSchem"), "")), "")), + }, + { + json: "experiments", + js: "experiments", + typ: u(undefined, u(m(u(r("ExperimentClass"), "")), "")), + }, + { + json: "jobs", + js: "jobs", + typ: u(undefined, u(m(u(r("JobClass"), "")), "")), + }, + { + json: "model_serving_endpoints", + js: "model_serving_endpoints", + typ: u( + undefined, + u(m(u(r("ModelServingEndpointClass"), "")), "") + ), + }, + { + json: "models", + js: "models", + typ: u(undefined, u(m(u(r("ModelClass"), "")), "")), + }, + { + json: "pipelines", + js: "pipelines", + typ: u(undefined, u(m(u(r("PipelineClass"), "")), "")), + }, + { + json: "quality_monitors", + js: "quality_monitors", + typ: u(undefined, u(m(u(r("QualityMonitorClass"), "")), "")), + }, + { + json: "registered_models", + js: "registered_models", + typ: u(undefined, u(m(u(r("RegisteredModelClass"), "")), "")), + }, + { + json: "schemas", + js: "schemas", + typ: u(undefined, u(m(u(r("BundleSchem17"), "")), "")), + }, + ], + false + ), + TentacledBundleSchem: o( + [ + { + json: "apply_policy_default_values", + js: "apply_policy_default_values", + typ: u(undefined, u(true, "")), }, { - json: "bundle", - js: "bundle", - typ: u(undefined, u(r("BundleClass"), "")), + json: "autoscale", + js: "autoscale", + typ: u(undefined, u(r("StickyBundleSchem"), "")), }, { - json: "experimental", - js: "experimental", - typ: u(undefined, u(r("ExperimentalClass"), "")), + json: "autotermination_minutes", + js: "autotermination_minutes", + typ: u(undefined, u(0, "")), + }, + { + json: "aws_attributes", + js: "aws_attributes", + typ: u(undefined, u(r("AwsAttributesClass"), "")), + }, + { + json: "azure_attributes", + js: "azure_attributes", + typ: u(undefined, u(r("AzureAttributesClass"), "")), + }, + { + json: "cluster_log_conf", + js: "cluster_log_conf", + typ: u(undefined, u(r("ClusterLogConfClass"), "")), + }, + {json: "cluster_name", js: "cluster_name", typ: u(undefined, "")}, + { + json: "custom_tags", + js: "custom_tags", + typ: u(undefined, u(m(""), "")), + }, + { + json: "data_security_mode", + js: "data_security_mode", + typ: u(undefined, r("DataSecurityMode")), + }, + { + json: "docker_image", + js: "docker_image", + typ: u(undefined, u(r("DockerImageClass"), "")), + }, + { + json: "driver_instance_pool_id", + js: "driver_instance_pool_id", + typ: u(undefined, ""), + }, + { + json: "driver_node_type_id", + js: "driver_node_type_id", + typ: u(undefined, ""), + }, + { + json: "enable_elastic_disk", + js: "enable_elastic_disk", + typ: u(undefined, u(true, "")), + }, + { + json: "enable_local_disk_encryption", + js: "enable_local_disk_encryption", + typ: u(undefined, u(true, "")), + }, + { + json: "gcp_attributes", + js: "gcp_attributes", + typ: u(undefined, u(r("GcpAttributesClass"), "")), + }, + { + json: "init_scripts", + js: "init_scripts", + typ: u(undefined, u(a(u(r("InitScriptClass"), "")), "")), + }, + { + json: "instance_pool_id", + js: "instance_pool_id", + typ: u(undefined, ""), + }, + {json: "node_type_id", js: "node_type_id", typ: u(undefined, "")}, + { + json: "num_workers", + js: "num_workers", + typ: u(undefined, u(0, "")), }, - {json: "include", js: "include", typ: u(undefined, u(a(""), ""))}, { json: "permissions", js: "permissions", typ: u(undefined, u(a(u(r("PermissionClass"), "")), "")), }, + {json: "policy_id", js: "policy_id", typ: u(undefined, "")}, { - json: "presets", - js: "presets", - typ: u(undefined, u(r("PresetsClass"), "")), + json: "runtime_engine", + js: "runtime_engine", + typ: u(undefined, r("RuntimeEngine")), }, { - json: "resources", - js: "resources", - typ: u(undefined, u(r("ResourcesClass"), "")), + json: "single_user_name", + js: "single_user_name", + typ: u(undefined, ""), }, { - json: "run_as", - js: "run_as", - typ: u(undefined, u(r("RunAsClass"), "")), + json: "spark_conf", + js: "spark_conf", + typ: u(undefined, u(m(""), "")), }, { - json: "sync", - js: "sync", - typ: u(undefined, u(r("SyncClass"), "")), + json: "spark_env_vars", + js: "spark_env_vars", + typ: u(undefined, u(m(""), "")), }, + {json: "spark_version", js: "spark_version", typ: u(undefined, "")}, { - json: "targets", - js: "targets", - typ: u(undefined, u(m(u(r("TargetClass"), "")), "")), + json: "ssh_public_keys", + js: "ssh_public_keys", + typ: u(undefined, u(a(""), "")), + }, + { + json: "workload_type", + js: "workload_type", + typ: u(undefined, u(r("WorkloadTypeClass"), "")), + }, + ], + false + ), + StickyBundleSchem: o( + [ + { + json: "max_workers", + js: "max_workers", + typ: u(undefined, u(0, "")), + }, + { + json: "min_workers", + js: "min_workers", + typ: u(undefined, u(0, "")), + }, + ], + false + ), + AwsAttributesClass: o( + [ + { + json: "availability", + js: "availability", + typ: u(undefined, r("AwsAttributesAvailability")), + }, + { + json: "ebs_volume_count", + js: "ebs_volume_count", + typ: u(undefined, u(0, "")), + }, + { + json: "ebs_volume_iops", + js: "ebs_volume_iops", + typ: u(undefined, u(0, "")), + }, + { + json: "ebs_volume_size", + js: "ebs_volume_size", + typ: u(undefined, u(0, "")), + }, + { + json: "ebs_volume_throughput", + js: "ebs_volume_throughput", + typ: u(undefined, u(0, "")), + }, + { + json: "ebs_volume_type", + js: "ebs_volume_type", + typ: u(undefined, r("EbsVolumeType")), + }, + { + json: "first_on_demand", + js: "first_on_demand", + typ: u(undefined, u(0, "")), + }, + { + json: "instance_profile_arn", + js: "instance_profile_arn", + typ: u(undefined, ""), + }, + { + json: "spot_bid_price_percent", + js: "spot_bid_price_percent", + typ: u(undefined, u(0, "")), + }, + {json: "zone_id", js: "zone_id", typ: u(undefined, "")}, + ], + false + ), + AzureAttributesClass: o( + [ + { + json: "availability", + js: "availability", + typ: u(undefined, r("AzureAttributesAvailability")), + }, + { + json: "first_on_demand", + js: "first_on_demand", + typ: u(undefined, u(0, "")), }, { - json: "variables", - js: "variables", - typ: u(undefined, u(m(r("VariableValue")), "")), + json: "log_analytics_info", + js: "log_analytics_info", + typ: u(undefined, u(r("LogAnalyticsInfoClass"), "")), }, { - json: "workspace", - js: "workspace", - typ: u(undefined, u(r("BundleSchem15"), "")), + json: "spot_bid_max_price", + js: "spot_bid_max_price", + typ: u(undefined, u(3.14, "")), }, ], false ), - ArtifactClass: o( + LogAnalyticsInfoClass: o( [ - {json: "build", js: "build", typ: u(undefined, "")}, - {json: "executable", js: "executable", typ: u(undefined, "")}, { - json: "files", - js: "files", - typ: u(undefined, u(a(u(r("PurpleBundleSchem"), "")), "")), + json: "log_analytics_primary_key", + js: "log_analytics_primary_key", + typ: u(undefined, ""), + }, + { + json: "log_analytics_workspace_id", + js: "log_analytics_workspace_id", + typ: u(undefined, ""), }, - {json: "path", js: "path", typ: u(undefined, "")}, - {json: "type", js: "type", typ: ""}, ], false ), - PurpleBundleSchem: o([{json: "source", js: "source", typ: ""}], false), - BundleClass: o( + ClusterLogConfClass: o( [ - {json: "compute_id", js: "compute_id", typ: u(undefined, "")}, - { - json: "databricks_cli_version", - js: "databricks_cli_version", - typ: u(undefined, ""), - }, { - json: "deployment", - js: "deployment", - typ: u(undefined, u(r("FluffyBundleSchem"), "")), + json: "dbfs", + js: "dbfs", + typ: u(undefined, u(r("DbfsClass"), "")), }, - {json: "git", js: "git", typ: u(undefined, u(r("GitClass"), ""))}, - {json: "name", js: "name", typ: ""}, + {json: "s3", js: "s3", typ: u(undefined, u(r("S3Class"), ""))}, ], false ), - FluffyBundleSchem: o( + DbfsClass: o([{json: "destination", js: "destination", typ: ""}], false), + S3Class: o( [ + {json: "canned_acl", js: "canned_acl", typ: u(undefined, "")}, + {json: "destination", js: "destination", typ: ""}, { - json: "fail_on_active_runs", - js: "fail_on_active_runs", + json: "enable_encryption", + js: "enable_encryption", typ: u(undefined, u(true, "")), }, { - json: "lock", - js: "lock", - typ: u(undefined, u(r("LockClass"), "")), + json: "encryption_type", + js: "encryption_type", + typ: u(undefined, ""), }, + {json: "endpoint", js: "endpoint", typ: u(undefined, "")}, + {json: "kms_key", js: "kms_key", typ: u(undefined, "")}, + {json: "region", js: "region", typ: u(undefined, "")}, ], false ), - LockClass: o( + DockerImageClass: o( [ - {json: "enabled", js: "enabled", typ: u(undefined, u(true, ""))}, - {json: "force", js: "force", typ: u(undefined, u(true, ""))}, + { + json: "basic_auth", + js: "basic_auth", + typ: u(undefined, u(r("BasicAuthClass"), "")), + }, + {json: "url", js: "url", typ: u(undefined, "")}, ], false ), - GitClass: o( + BasicAuthClass: o( [ - {json: "branch", js: "branch", typ: u(undefined, "")}, - {json: "origin_url", js: "origin_url", typ: u(undefined, "")}, + {json: "password", js: "password", typ: u(undefined, "")}, + {json: "username", js: "username", typ: u(undefined, "")}, ], false ), - ExperimentalClass: o( + GcpAttributesClass: o( [ { - json: "pydabs", - js: "pydabs", - typ: u(undefined, u(r("PydabsClass"), "")), - }, - { - json: "python_wheel_wrapper", - js: "python_wheel_wrapper", - typ: u(undefined, u(true, "")), + json: "availability", + js: "availability", + typ: u(undefined, r("GcpAttributesAvailability")), }, - {json: "scripts", js: "scripts", typ: u(undefined, u(m(""), ""))}, { - json: "use_legacy_run_as", - js: "use_legacy_run_as", - typ: u(undefined, u(true, "")), + json: "boot_disk_size", + js: "boot_disk_size", + typ: u(undefined, u(0, "")), }, - ], - false - ), - PydabsClass: o( - [ - {json: "enabled", js: "enabled", typ: u(undefined, u(true, ""))}, - {json: "import", js: "import", typ: u(undefined, u(a(""), ""))}, - {json: "venv_path", js: "venv_path", typ: u(undefined, "")}, - ], - false - ), - PermissionClass: o( - [ - {json: "group_name", js: "group_name", typ: u(undefined, "")}, - {json: "level", js: "level", typ: ""}, { - json: "service_principal_name", - js: "service_principal_name", + json: "google_service_account", + js: "google_service_account", typ: u(undefined, ""), }, - {json: "user_name", js: "user_name", typ: u(undefined, "")}, - ], - false - ), - PresetsClass: o( - [ { - json: "jobs_max_concurrent_runs", - js: "jobs_max_concurrent_runs", + json: "local_ssd_count", + js: "local_ssd_count", typ: u(undefined, u(0, "")), }, - {json: "name_prefix", js: "name_prefix", typ: u(undefined, "")}, { - json: "pipelines_development", - js: "pipelines_development", + json: "use_preemptible_executors", + js: "use_preemptible_executors", typ: u(undefined, u(true, "")), }, - {json: "tags", js: "tags", typ: u(undefined, u(m(""), ""))}, - { - json: "trigger_pause_status", - js: "trigger_pause_status", - typ: u(undefined, ""), - }, + {json: "zone_id", js: "zone_id", typ: u(undefined, "")}, ], false ), - ResourcesClass: o( + InitScriptClass: o( [ { - json: "experiments", - js: "experiments", - typ: u(undefined, u(m(u(r("ExperimentClass"), "")), "")), - }, - { - json: "jobs", - js: "jobs", - typ: u(undefined, u(m(u(r("JobClass"), "")), "")), - }, - { - json: "model_serving_endpoints", - js: "model_serving_endpoints", - typ: u( - undefined, - u(m(u(r("ModelServingEndpointClass"), "")), "") - ), + json: "abfss", + js: "abfss", + typ: u(undefined, u(r("AbfssClass"), "")), }, { - json: "models", - js: "models", - typ: u(undefined, u(m(u(r("ModelClass"), "")), "")), + json: "dbfs", + js: "dbfs", + typ: u(undefined, u(r("DbfsClass"), "")), }, { - json: "pipelines", - js: "pipelines", - typ: u(undefined, u(m(u(r("PipelineClass"), "")), "")), + json: "file", + js: "file", + typ: u(undefined, u(r("IndigoBundleSchem"), "")), }, + {json: "gcs", js: "gcs", typ: u(undefined, u(r("GcsClass"), ""))}, + {json: "s3", js: "s3", typ: u(undefined, u(r("S3Class"), ""))}, { - json: "quality_monitors", - js: "quality_monitors", - typ: u(undefined, u(m(u(r("QualityMonitorClass"), "")), "")), + json: "volumes", + js: "volumes", + typ: u(undefined, u(r("VolumesClass"), "")), }, { - json: "registered_models", - js: "registered_models", - typ: u(undefined, u(m(u(r("RegisteredModelClass"), "")), "")), + json: "workspace", + js: "workspace", + typ: u(undefined, u(r("IndecentBundleSchem"), "")), }, + ], + false + ), + AbfssClass: o([{json: "destination", js: "destination", typ: ""}], false), + IndigoBundleSchem: o( + [{json: "destination", js: "destination", typ: ""}], + false + ), + GcsClass: o([{json: "destination", js: "destination", typ: ""}], false), + VolumesClass: o([{json: "destination", js: "destination", typ: ""}], false), + IndecentBundleSchem: o( + [{json: "destination", js: "destination", typ: ""}], + false + ), + WorkloadTypeClass: o( + [{json: "clients", js: "clients", typ: u(r("ClientsClass"), "")}], + false + ), + ClientsClass: o( + [ + {json: "jobs", js: "jobs", typ: u(undefined, u(true, ""))}, { - json: "schemas", - js: "schemas", - typ: u(undefined, u(m(u(r("BundleSchem14"), "")), "")), + json: "notebooks", + js: "notebooks", + typ: u(undefined, u(true, "")), }, ], false @@ -12767,12 +14256,12 @@ const typeMap: any = { { json: "tags", js: "tags", - typ: u(undefined, u(a(u(r("TentacledBundleSchem"), "")), "")), + typ: u(undefined, u(a(u(r("HilariousBundleSchem"), "")), "")), }, ], false ), - TentacledBundleSchem: o( + HilariousBundleSchem: o( [ {json: "key", js: "key", typ: u(undefined, "")}, {json: "value", js: "value", typ: u(undefined, "")}, @@ -12786,28 +14275,17 @@ const typeMap: any = { js: "continuous", typ: u(undefined, u(r("ContinuousClass"), "")), }, - { - json: "deployment", - js: "deployment", - typ: u(undefined, u(r("StickyBundleSchem"), "")), - }, {json: "description", js: "description", typ: u(undefined, "")}, - { - json: "edit_mode", - js: "edit_mode", - typ: u(undefined, r("EditMode")), - }, { json: "email_notifications", js: "email_notifications", - typ: u(undefined, u(r("IndigoBundleSchem"), "")), + typ: u(undefined, u(r("AmbitiousBundleSchem"), "")), }, { json: "environments", js: "environments", typ: u(undefined, u(a(u(r("EnvironmentClass"), "")), "")), }, - {json: "format", js: "format", typ: u(undefined, r("Format"))}, { json: "git_source", js: "git_source", @@ -12893,18 +14371,7 @@ const typeMap: any = { ], false ), - StickyBundleSchem: o( - [ - {json: "kind", js: "kind", typ: r("Kind")}, - { - json: "metadata_file_path", - js: "metadata_file_path", - typ: u(undefined, ""), - }, - ], - false - ), - IndigoBundleSchem: o( + AmbitiousBundleSchem: o( [ { json: "no_alert_for_skipped_runs", @@ -12952,48 +14419,18 @@ const typeMap: any = { { json: "dependencies", js: "dependencies", - typ: u(undefined, u(a(""), "")), - }, - ], - false - ), - GitSourceClass: o( - [ - {json: "git_branch", js: "git_branch", typ: u(undefined, "")}, - {json: "git_commit", js: "git_commit", typ: u(undefined, "")}, - {json: "git_provider", js: "git_provider", typ: r("GitProvider")}, - { - json: "git_snapshot", - js: "git_snapshot", - typ: u(undefined, u(r("GitSnapshotClass"), "")), - }, - {json: "git_tag", js: "git_tag", typ: u(undefined, "")}, - {json: "git_url", js: "git_url", typ: ""}, - { - json: "job_source", - js: "job_source", - typ: u(undefined, u(r("JobSourceClass"), "")), + typ: u(undefined, u(a(""), "")), }, ], false ), - GitSnapshotClass: o( - [{json: "used_commit", js: "used_commit", typ: u(undefined, "")}], - false - ), - JobSourceClass: o( + GitSourceClass: o( [ - { - json: "dirty_state", - js: "dirty_state", - typ: u(undefined, r("DirtyState")), - }, - { - json: "import_from_git_branch", - js: "import_from_git_branch", - typ: "", - }, - {json: "job_config_path", js: "job_config_path", typ: ""}, + {json: "git_branch", js: "git_branch", typ: u(undefined, "")}, + {json: "git_commit", js: "git_commit", typ: u(undefined, "")}, + {json: "git_provider", js: "git_provider", typ: r("GitProvider")}, + {json: "git_tag", js: "git_tag", typ: u(undefined, "")}, + {json: "git_url", js: "git_url", typ: ""}, ], false ), @@ -13036,7 +14473,7 @@ const typeMap: any = { { json: "autoscale", js: "autoscale", - typ: u(undefined, u(r("IndecentBundleSchem"), "")), + typ: u(undefined, u(r("StickyBundleSchem"), "")), }, { json: "autotermination_minutes", @@ -13072,325 +14509,80 @@ const typeMap: any = { { json: "docker_image", js: "docker_image", - typ: u(undefined, u(r("DockerImageClass"), "")), - }, - { - json: "driver_instance_pool_id", - js: "driver_instance_pool_id", - typ: u(undefined, ""), - }, - { - json: "driver_node_type_id", - js: "driver_node_type_id", - typ: u(undefined, ""), - }, - { - json: "enable_elastic_disk", - js: "enable_elastic_disk", - typ: u(undefined, u(true, "")), - }, - { - json: "enable_local_disk_encryption", - js: "enable_local_disk_encryption", - typ: u(undefined, u(true, "")), - }, - { - json: "gcp_attributes", - js: "gcp_attributes", - typ: u(undefined, u(r("GcpAttributesClass"), "")), - }, - { - json: "init_scripts", - js: "init_scripts", - typ: u(undefined, u(a(u(r("InitScriptClass"), "")), "")), - }, - { - json: "instance_pool_id", - js: "instance_pool_id", - typ: u(undefined, ""), - }, - {json: "node_type_id", js: "node_type_id", typ: u(undefined, "")}, - { - json: "num_workers", - js: "num_workers", - typ: u(undefined, u(0, "")), - }, - {json: "policy_id", js: "policy_id", typ: u(undefined, "")}, - { - json: "runtime_engine", - js: "runtime_engine", - typ: u(undefined, r("RuntimeEngine")), - }, - { - json: "single_user_name", - js: "single_user_name", - typ: u(undefined, ""), - }, - { - json: "spark_conf", - js: "spark_conf", - typ: u(undefined, u(m(""), "")), - }, - { - json: "spark_env_vars", - js: "spark_env_vars", - typ: u(undefined, u(m(""), "")), - }, - {json: "spark_version", js: "spark_version", typ: u(undefined, "")}, - { - json: "ssh_public_keys", - js: "ssh_public_keys", - typ: u(undefined, u(a(""), "")), - }, - { - json: "workload_type", - js: "workload_type", - typ: u(undefined, u(r("WorkloadTypeClass"), "")), - }, - ], - false - ), - IndecentBundleSchem: o( - [ - { - json: "max_workers", - js: "max_workers", - typ: u(undefined, u(0, "")), - }, - { - json: "min_workers", - js: "min_workers", - typ: u(undefined, u(0, "")), - }, - ], - false - ), - AwsAttributesClass: o( - [ - { - json: "availability", - js: "availability", - typ: u(undefined, r("AwsAttributesAvailability")), - }, - { - json: "ebs_volume_count", - js: "ebs_volume_count", - typ: u(undefined, u(0, "")), - }, - { - json: "ebs_volume_iops", - js: "ebs_volume_iops", - typ: u(undefined, u(0, "")), - }, - { - json: "ebs_volume_size", - js: "ebs_volume_size", - typ: u(undefined, u(0, "")), - }, - { - json: "ebs_volume_throughput", - js: "ebs_volume_throughput", - typ: u(undefined, u(0, "")), - }, - { - json: "ebs_volume_type", - js: "ebs_volume_type", - typ: u(undefined, r("EbsVolumeType")), - }, - { - json: "first_on_demand", - js: "first_on_demand", - typ: u(undefined, u(0, "")), - }, - { - json: "instance_profile_arn", - js: "instance_profile_arn", - typ: u(undefined, ""), - }, - { - json: "spot_bid_price_percent", - js: "spot_bid_price_percent", - typ: u(undefined, u(0, "")), - }, - {json: "zone_id", js: "zone_id", typ: u(undefined, "")}, - ], - false - ), - AzureAttributesClass: o( - [ - { - json: "availability", - js: "availability", - typ: u(undefined, r("AzureAttributesAvailability")), - }, - { - json: "first_on_demand", - js: "first_on_demand", - typ: u(undefined, u(0, "")), - }, - { - json: "log_analytics_info", - js: "log_analytics_info", - typ: u(undefined, u(r("LogAnalyticsInfoClass"), "")), - }, - { - json: "spot_bid_max_price", - js: "spot_bid_max_price", - typ: u(undefined, u(3.14, "")), - }, - ], - false - ), - LogAnalyticsInfoClass: o( - [ - { - json: "log_analytics_primary_key", - js: "log_analytics_primary_key", - typ: u(undefined, ""), - }, - { - json: "log_analytics_workspace_id", - js: "log_analytics_workspace_id", - typ: u(undefined, ""), - }, - ], - false - ), - ClusterLogConfClass: o( - [ - { - json: "dbfs", - js: "dbfs", - typ: u(undefined, u(r("DbfsClass"), "")), - }, - {json: "s3", js: "s3", typ: u(undefined, u(r("S3Class"), ""))}, - ], - false - ), - DbfsClass: o([{json: "destination", js: "destination", typ: ""}], false), - S3Class: o( - [ - {json: "canned_acl", js: "canned_acl", typ: u(undefined, "")}, - {json: "destination", js: "destination", typ: ""}, - { - json: "enable_encryption", - js: "enable_encryption", - typ: u(undefined, u(true, "")), - }, - { - json: "encryption_type", - js: "encryption_type", - typ: u(undefined, ""), - }, - {json: "endpoint", js: "endpoint", typ: u(undefined, "")}, - {json: "kms_key", js: "kms_key", typ: u(undefined, "")}, - {json: "region", js: "region", typ: u(undefined, "")}, - ], - false - ), - DockerImageClass: o( - [ - { - json: "basic_auth", - js: "basic_auth", - typ: u(undefined, u(r("BasicAuthClass"), "")), - }, - {json: "url", js: "url", typ: u(undefined, "")}, - ], - false - ), - BasicAuthClass: o( - [ - {json: "password", js: "password", typ: u(undefined, "")}, - {json: "username", js: "username", typ: u(undefined, "")}, - ], - false - ), - GcpAttributesClass: o( - [ - { - json: "availability", - js: "availability", - typ: u(undefined, r("GcpAttributesAvailability")), + typ: u(undefined, u(r("DockerImageClass"), "")), }, { - json: "boot_disk_size", - js: "boot_disk_size", - typ: u(undefined, u(0, "")), + json: "driver_instance_pool_id", + js: "driver_instance_pool_id", + typ: u(undefined, ""), }, { - json: "google_service_account", - js: "google_service_account", + json: "driver_node_type_id", + js: "driver_node_type_id", typ: u(undefined, ""), }, { - json: "local_ssd_count", - js: "local_ssd_count", - typ: u(undefined, u(0, "")), + json: "enable_elastic_disk", + js: "enable_elastic_disk", + typ: u(undefined, u(true, "")), }, { - json: "use_preemptible_executors", - js: "use_preemptible_executors", + json: "enable_local_disk_encryption", + js: "enable_local_disk_encryption", typ: u(undefined, u(true, "")), }, - {json: "zone_id", js: "zone_id", typ: u(undefined, "")}, - ], - false - ), - InitScriptClass: o( - [ { - json: "abfss", - js: "abfss", - typ: u(undefined, u(r("AbfssClass"), "")), + json: "gcp_attributes", + js: "gcp_attributes", + typ: u(undefined, u(r("GcpAttributesClass"), "")), }, { - json: "dbfs", - js: "dbfs", - typ: u(undefined, u(r("DbfsClass"), "")), + json: "init_scripts", + js: "init_scripts", + typ: u(undefined, u(a(u(r("InitScriptClass"), "")), "")), }, { - json: "file", - js: "file", - typ: u(undefined, u(r("HilariousBundleSchem"), "")), + json: "instance_pool_id", + js: "instance_pool_id", + typ: u(undefined, ""), }, - {json: "gcs", js: "gcs", typ: u(undefined, u(r("GcsClass"), ""))}, - {json: "s3", js: "s3", typ: u(undefined, u(r("S3Class"), ""))}, + {json: "node_type_id", js: "node_type_id", typ: u(undefined, "")}, { - json: "volumes", - js: "volumes", - typ: u(undefined, u(r("VolumesClass"), "")), + json: "num_workers", + js: "num_workers", + typ: u(undefined, u(0, "")), }, + {json: "policy_id", js: "policy_id", typ: u(undefined, "")}, { - json: "workspace", - js: "workspace", - typ: u(undefined, u(r("AmbitiousBundleSchem"), "")), + json: "runtime_engine", + js: "runtime_engine", + typ: u(undefined, r("RuntimeEngine")), }, - ], - false - ), - AbfssClass: o([{json: "destination", js: "destination", typ: ""}], false), - HilariousBundleSchem: o( - [{json: "destination", js: "destination", typ: ""}], - false - ), - GcsClass: o([{json: "destination", js: "destination", typ: ""}], false), - VolumesClass: o([{json: "destination", js: "destination", typ: ""}], false), - AmbitiousBundleSchem: o( - [{json: "destination", js: "destination", typ: ""}], - false - ), - WorkloadTypeClass: o( - [{json: "clients", js: "clients", typ: u(r("ClientsClass"), "")}], - false - ), - ClientsClass: o( - [ - {json: "jobs", js: "jobs", typ: u(undefined, u(true, ""))}, { - json: "notebooks", - js: "notebooks", - typ: u(undefined, u(true, "")), + json: "single_user_name", + js: "single_user_name", + typ: u(undefined, ""), + }, + { + json: "spark_conf", + js: "spark_conf", + typ: u(undefined, u(m(""), "")), + }, + { + json: "spark_env_vars", + js: "spark_env_vars", + typ: u(undefined, u(m(""), "")), + }, + {json: "spark_version", js: "spark_version", typ: u(undefined, "")}, + { + json: "ssh_public_keys", + js: "ssh_public_keys", + typ: u(undefined, u(a(""), "")), + }, + { + json: "workload_type", + js: "workload_type", + typ: u(undefined, u(r("WorkloadTypeClass"), "")), }, ], false @@ -14102,6 +15294,11 @@ const typeMap: any = { ), ModelServingEndpointClass: o( [ + { + json: "ai_gateway", + js: "ai_gateway", + typ: u(undefined, u(r("AIGatewayClass"), "")), + }, {json: "config", js: "config", typ: u(r("ConfigClass"), "")}, {json: "name", js: "name", typ: ""}, { @@ -14112,7 +15309,7 @@ const typeMap: any = { { json: "rate_limits", js: "rate_limits", - typ: u(undefined, u(a(u(r("RateLimitClass"), "")), "")), + typ: u(undefined, u(a(u(r("BundleSchem4"), "")), "")), }, { json: "route_optimized", @@ -14122,11 +15319,101 @@ const typeMap: any = { { json: "tags", js: "tags", + typ: u(undefined, u(a(u(r("BundleSchem5"), "")), "")), + }, + ], + false + ), + AIGatewayClass: o( + [ + { + json: "guardrails", + js: "guardrails", + typ: u(undefined, u(r("GuardrailsClass"), "")), + }, + { + json: "inference_table_config", + js: "inference_table_config", + typ: u(undefined, u(r("InferenceTableConfigClass"), "")), + }, + { + json: "rate_limits", + js: "rate_limits", typ: u(undefined, u(a(u(r("BundleSchem3"), "")), "")), }, + { + json: "usage_tracking_config", + js: "usage_tracking_config", + typ: u(undefined, u(r("UsageTrackingConfigClass"), "")), + }, + ], + false + ), + GuardrailsClass: o( + [ + { + json: "input", + js: "input", + typ: u(undefined, u(r("InputClass"), "")), + }, + { + json: "output", + js: "output", + typ: u(undefined, u(r("InputClass"), "")), + }, + ], + false + ), + InputClass: o( + [ + { + json: "invalid_keywords", + js: "invalid_keywords", + typ: u(undefined, u(a(""), "")), + }, + {json: "pii", js: "pii", typ: u(undefined, u(r("PiiClass"), ""))}, + {json: "safety", js: "safety", typ: u(undefined, u(true, ""))}, + { + json: "valid_topics", + js: "valid_topics", + typ: u(undefined, u(a(""), "")), + }, + ], + false + ), + PiiClass: o( + [{json: "behavior", js: "behavior", typ: r("Behavior")}], + false + ), + InferenceTableConfigClass: o( + [ + {json: "catalog_name", js: "catalog_name", typ: u(undefined, "")}, + {json: "enabled", js: "enabled", typ: u(undefined, u(true, ""))}, + {json: "schema_name", js: "schema_name", typ: u(undefined, "")}, + { + json: "table_name_prefix", + js: "table_name_prefix", + typ: u(undefined, ""), + }, + ], + false + ), + BundleSchem3: o( + [ + {json: "calls", js: "calls", typ: u(0, "")}, + {json: "key", js: "key", typ: u(undefined, r("Key"))}, + { + json: "renewal_period", + js: "renewal_period", + typ: r("RenewalPeriod"), + }, ], false ), + UsageTrackingConfigClass: o( + [{json: "enabled", js: "enabled", typ: u(undefined, u(true, ""))}], + false + ), ConfigClass: o( [ { @@ -14509,7 +15796,7 @@ const typeMap: any = { ], false ), - RateLimitClass: o( + BundleSchem4: o( [ {json: "calls", js: "calls", typ: u(0, "")}, {json: "key", js: "key", typ: u(undefined, r("Key"))}, @@ -14521,7 +15808,7 @@ const typeMap: any = { ], false ), - BundleSchem3: o( + BundleSchem5: o( [ {json: "key", js: "key", typ: ""}, {json: "value", js: "value", typ: u(undefined, "")}, @@ -14555,7 +15842,7 @@ const typeMap: any = { { json: "tags", js: "tags", - typ: u(undefined, u(a(u(r("BundleSchem5"), "")), "")), + typ: u(undefined, u(a(u(r("BundleSchem7"), "")), "")), }, {json: "user_id", js: "user_id", typ: u(undefined, "")}, ], @@ -14588,21 +15875,21 @@ const typeMap: any = { { json: "tags", js: "tags", - typ: u(undefined, u(a(u(r("BundleSchem4"), "")), "")), + typ: u(undefined, u(a(u(r("BundleSchem6"), "")), "")), }, {json: "user_id", js: "user_id", typ: u(undefined, "")}, {json: "version", js: "version", typ: u(undefined, "")}, ], false ), - BundleSchem4: o( + BundleSchem6: o( [ {json: "key", js: "key", typ: u(undefined, "")}, {json: "value", js: "value", typ: u(undefined, "")}, ], false ), - BundleSchem5: o( + BundleSchem7: o( [ {json: "key", js: "key", typ: u(undefined, "")}, {json: "value", js: "value", typ: u(undefined, "")}, @@ -14611,12 +15898,17 @@ const typeMap: any = { ), PipelineClass: o( [ + { + json: "budget_policy_id", + js: "budget_policy_id", + typ: u(undefined, ""), + }, {json: "catalog", js: "catalog", typ: u(undefined, "")}, {json: "channel", js: "channel", typ: u(undefined, "")}, { json: "clusters", js: "clusters", - typ: u(undefined, u(a(u(r("ClusterClass"), "")), "")), + typ: u(undefined, u(a(u(r("BundleSchem8"), "")), "")), }, { json: "configuration", @@ -14631,7 +15923,7 @@ const typeMap: any = { { json: "deployment", js: "deployment", - typ: u(undefined, u(r("BundleSchem7"), "")), + typ: u(undefined, u(r("BundleSchem10"), "")), }, { json: "development", @@ -14658,7 +15950,7 @@ const typeMap: any = { { json: "libraries", js: "libraries", - typ: u(undefined, u(a(u(r("BundleSchem10"), "")), "")), + typ: u(undefined, u(a(u(r("BundleSchem13"), "")), "")), }, {json: "name", js: "name", typ: u(undefined, "")}, { @@ -14672,6 +15964,7 @@ const typeMap: any = { typ: u(undefined, u(a(u(r("PermissionClass"), "")), "")), }, {json: "photon", js: "photon", typ: u(undefined, u(true, ""))}, + {json: "schema", js: "schema", typ: u(undefined, "")}, { json: "serverless", js: "serverless", @@ -14682,12 +15975,12 @@ const typeMap: any = { { json: "trigger", js: "trigger", - typ: u(undefined, u(r("BundleSchem12"), "")), + typ: u(undefined, u(r("BundleSchem15"), "")), }, ], false ), - ClusterClass: o( + BundleSchem8: o( [ { json: "apply_policy_default_values", @@ -14697,7 +15990,7 @@ const typeMap: any = { { json: "autoscale", js: "autoscale", - typ: u(undefined, u(r("BundleSchem6"), "")), + typ: u(undefined, u(r("BundleSchem9"), "")), }, { json: "aws_attributes", @@ -14775,7 +16068,7 @@ const typeMap: any = { ], false ), - BundleSchem6: o( + BundleSchem9: o( [ {json: "max_workers", js: "max_workers", typ: u(0, "")}, {json: "min_workers", js: "min_workers", typ: u(0, "")}, @@ -14783,7 +16076,7 @@ const typeMap: any = { ], false ), - BundleSchem7: o( + BundleSchem10: o( [ {json: "kind", js: "kind", typ: u(undefined, r("Kind"))}, { @@ -14852,17 +16145,17 @@ const typeMap: any = { { json: "schema", js: "schema", - typ: u(undefined, u(r("BundleSchem8"), "")), + typ: u(undefined, u(r("BundleSchem11"), "")), }, { json: "table", js: "table", - typ: u(undefined, u(r("BundleSchem9"), "")), + typ: u(undefined, u(r("BundleSchem12"), "")), }, ], false ), - BundleSchem8: o( + BundleSchem11: o( [ { json: "destination_catalog", @@ -14904,7 +16197,7 @@ const typeMap: any = { ], false ), - BundleSchem9: o( + BundleSchem12: o( [ { json: "destination_catalog", @@ -14936,12 +16229,12 @@ const typeMap: any = { ], false ), - BundleSchem10: o( + BundleSchem13: o( [ { json: "file", js: "file", - typ: u(undefined, u(r("BundleSchem11"), "")), + typ: u(undefined, u(r("BundleSchem14"), "")), }, {json: "jar", js: "jar", typ: u(undefined, "")}, { @@ -14958,7 +16251,7 @@ const typeMap: any = { ], false ), - BundleSchem11: o( + BundleSchem14: o( [{json: "path", js: "path", typ: u(undefined, "")}], false ), @@ -14977,7 +16270,7 @@ const typeMap: any = { ], false ), - BundleSchem12: o( + BundleSchem15: o( [ { json: "cron", @@ -15036,7 +16329,7 @@ const typeMap: any = { { json: "schedule", js: "schedule", - typ: u(undefined, u(r("BundleSchem13"), "")), + typ: u(undefined, u(r("BundleSchem16"), "")), }, { json: "skip_builtin_dashboard", @@ -15123,7 +16416,7 @@ const typeMap: any = { ], false ), - BundleSchem13: o( + BundleSchem16: o( [ { json: "pause_status", @@ -15173,7 +16466,7 @@ const typeMap: any = { ], false ), - BundleSchem14: o( + BundleSchem17: o( [ {json: "catalog_name", js: "catalog_name", typ: ""}, {json: "comment", js: "comment", typ: u(undefined, "")}, @@ -15212,6 +16505,7 @@ const typeMap: any = { js: "bundle", typ: u(undefined, u(r("BundleClass"), "")), }, + {json: "cluster_id", js: "cluster_id", typ: u(undefined, "")}, {json: "compute_id", js: "compute_id", typ: u(undefined, "")}, {json: "default", js: "default", typ: u(undefined, u(true, ""))}, {json: "git", js: "git", typ: u(undefined, u(r("GitClass"), ""))}, @@ -15249,12 +16543,12 @@ const typeMap: any = { { json: "workspace", js: "workspace", - typ: u(undefined, u(r("BundleSchem15"), "")), + typ: u(undefined, u(r("BundleSchem18"), "")), }, ], false ), - BundleSchem15: o( + BundleSchem18: o( [ {json: "artifact_path", js: "artifact_path", typ: u(undefined, "")}, {json: "auth_type", js: "auth_type", typ: u(undefined, "")}, @@ -15297,6 +16591,7 @@ const typeMap: any = { }, {json: "host", js: "host", typ: u(undefined, "")}, {json: "profile", js: "profile", typ: u(undefined, "")}, + {json: "resource_path", js: "resource_path", typ: u(undefined, "")}, {json: "root_path", js: "root_path", typ: u(undefined, "")}, {json: "state_path", js: "state_path", typ: u(undefined, "")}, ], @@ -15339,29 +16634,6 @@ const typeMap: any = { ], false ), - PauseStatus: ["PAUSED", "UNPAUSED"], - Kind: ["BUNDLE"], - EditMode: ["EDITABLE", "UI_LOCKED"], - Format: ["MULTI_TASK", "SINGLE_TASK"], - GitProvider: [ - "awsCodeCommit", - "azureDevOpsServices", - "bitbucketCloud", - "bitbucketServer", - "gitHub", - "gitHubEnterprise", - "gitLab", - "gitLabEnterpriseEdition", - ], - DirtyState: ["DISCONNECTED", "NOT_SYNCED"], - Metric: [ - "RUN_DURATION_SECONDS", - "STREAMING_BACKLOG_BYTES", - "STREAMING_BACKLOG_FILES", - "STREAMING_BACKLOG_RECORDS", - "STREAMING_BACKLOG_SECONDS", - ], - RuleOp: ["GREATER_THAN"], AwsAttributesAvailability: ["ON_DEMAND", "SPOT", "SPOT_WITH_FALLBACK"], EbsVolumeType: ["GENERAL_PURPOSE_SSD", "THROUGHPUT_OPTIMIZED_HDD"], AzureAttributesAvailability: [ @@ -15384,6 +16656,25 @@ const typeMap: any = { "PREEMPTIBLE_WITH_FALLBACK_GCP", ], RuntimeEngine: ["NULL", "PHOTON", "STANDARD"], + PauseStatus: ["PAUSED", "UNPAUSED"], + GitProvider: [ + "awsCodeCommit", + "azureDevOpsServices", + "bitbucketCloud", + "bitbucketServer", + "gitHub", + "gitHubEnterprise", + "gitLab", + "gitLabEnterpriseEdition", + ], + Metric: [ + "RUN_DURATION_SECONDS", + "STREAMING_BACKLOG_BYTES", + "STREAMING_BACKLOG_FILES", + "STREAMING_BACKLOG_RECORDS", + "STREAMING_BACKLOG_SECONDS", + ], + RuleOp: ["GREATER_THAN"], ConditionTaskOp: [ "EQUAL_TO", "GREATER_THAN", @@ -15403,6 +16694,9 @@ const typeMap: any = { ], Unit: ["DAYS", "HOURS", "WEEKS"], Condition: ["ALL_UPDATED", "ANY_UPDATED"], + Behavior: ["BLOCK", "NONE"], + Key: ["endpoint", "user"], + RenewalPeriod: ["minute"], BedrockProvider: ["ai21labs", "amazon", "anthropic", "cohere"], Provider: [ "ai21labs", @@ -15422,10 +16716,9 @@ const typeMap: any = { "GPU_SMALL", "MULTIGPU_MEDIUM", ], - Key: ["endpoint", "user"], - RenewalPeriod: ["minute"], Status: ["FAILED_REGISTRATION", "PENDING_REGISTRATION", "READY"], Mode: ["ENHANCED", "LEGACY"], + Kind: ["BUNDLE"], ScdType: ["SCD_TYPE_1", "SCD_TYPE_2"], Type: [ "CUSTOM_METRIC_TYPE_AGGREGATE", diff --git a/packages/databricks-vscode/src/bundle/models/BundleValidateModel.ts b/packages/databricks-vscode/src/bundle/models/BundleValidateModel.ts index 5b9a33e0a..e958b84c4 100644 --- a/packages/databricks-vscode/src/bundle/models/BundleValidateModel.ts +++ b/packages/databricks-vscode/src/bundle/models/BundleValidateModel.ts @@ -83,7 +83,9 @@ export class BundleValidateModel extends BaseModelWithStateCache { await openFile("hello.py"); + // We enable the run command when the active editor is changed. + // We wait here to avoid race conditions between the extension logic enabling this command and tests executing it. + await sleep(1000); }); it("should run a python file on a cluster", async () => { @@ -54,7 +57,6 @@ describe("Run files", async function () { .openDebugConsoleView(); while (true) { - await dismissNotifications(); await sleep(2000); const text = await (await debugOutput.elem).getHTML(); if (text && text.includes("hello world")) { @@ -66,7 +68,6 @@ describe("Run files", async function () { it("should run a python file as a workflow", async () => { const workbench = await driver.getWorkbench(); await workbench.executeQuickPick("Databricks: Run File as Workflow"); - await dismissNotifications(); await waitForWorkflowWebview("hello world"); }); }); diff --git a/packages/databricks-vscode/src/test/e2e/run_notebooks.e2e.ts b/packages/databricks-vscode/src/test/e2e/run_notebooks.e2e.ts index e2a46ae02..f8b66c4ac 100644 --- a/packages/databricks-vscode/src/test/e2e/run_notebooks.e2e.ts +++ b/packages/databricks-vscode/src/test/e2e/run_notebooks.e2e.ts @@ -1,6 +1,7 @@ import path from "node:path"; import * as fs from "fs/promises"; import assert from "node:assert"; +import {sleep} from "wdio-vscode-service"; import { dismissNotifications, openFile, @@ -73,17 +74,21 @@ describe("Run notebooks", async function () { it("should run a notebook.py file as a workflow", async () => { await openFile("notebook.py"); + // We enable the run command when the active editor is changed. + // We wait here to avoid race conditions between the extension logic enabling this command and tests executing it. + await sleep(1000); const workbench = await driver.getWorkbench(); await workbench.executeQuickPick("Databricks: Run File as Workflow"); - await dismissNotifications(); await waitForWorkflowWebview("a/b c"); }); it("should run a notebook.ipynb file as a workflow", async () => { await openFile("notebook.ipynb"); + // We enable the run command when the active editor is changed. + // We wait here to avoid race conditions between the extension logic enabling this command and tests executing it. + await sleep(1000); const workbench = await driver.getWorkbench(); await workbench.executeQuickPick("Databricks: Run File as Workflow"); - await dismissNotifications(); await waitForWorkflowWebview("hello world"); }); }); diff --git a/packages/databricks-vscode/src/test/e2e/utils/commonUtils.ts b/packages/databricks-vscode/src/test/e2e/utils/commonUtils.ts index 32c1c252e..6dec66ba4 100644 --- a/packages/databricks-vscode/src/test/e2e/utils/commonUtils.ts +++ b/packages/databricks-vscode/src/test/e2e/utils/commonUtils.ts @@ -233,7 +233,23 @@ export function getUniqueResourceName(name?: string) { export async function waitForWorkflowWebview(expectedOutput: string) { const workbench = await browser.getWorkbench(); - const webView = await workbench.getWebviewByTitle(/Databricks Job Run/); + const title = /Databricks Job Run/; + await browser.waitUntil( + async () => { + try { + const webView = await workbench.getWebviewByTitle(title); + return webView !== undefined; + } catch (e) { + return false; + } + }, + { + timeout: 5_000, + interval: 1_000, + timeoutMsg: "Webview did not open", + } + ); + const webView = await workbench.getWebviewByTitle(title); await webView.open(); await browser.waitUntil(