com.databricks.sdk.service.compute.ClustersService Maven / Gradle / Ivy
// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
package com.databricks.sdk.service.compute;
import com.databricks.sdk.support.Generated;
/**
* The Clusters API allows you to create, start, edit, list, terminate, and delete clusters.
*
* Databricks maps cluster node instance types to compute units known as DBUs. See the instance
* type pricing page for a list of the supported instance types and their corresponding DBUs.
*
*
A Databricks cluster is a set of computation resources and configurations on which you run
* data engineering, data science, and data analytics workloads, such as production ETL pipelines,
* streaming analytics, ad-hoc analytics, and machine learning.
*
*
You run these workloads as a set of commands in a notebook or as an automated job. Databricks
* makes a distinction between all-purpose clusters and job clusters. You use all-purpose clusters
* to analyze data collaboratively using interactive notebooks. You use job clusters to run fast and
* robust automated jobs.
*
*
You can create an all-purpose cluster using the UI, CLI, or REST API. You can manually
* terminate and restart an all-purpose cluster. Multiple users can share such clusters to do
* collaborative interactive analysis.
*
*
IMPORTANT: Databricks retains cluster configuration information for terminated clusters for 30
* days. To keep an all-purpose cluster configuration even after it has been terminated for more
* than 30 days, an administrator can pin a cluster to the cluster list.
*
*
This is the high-level interface, that contains generated methods.
*
*
Evolving: this interface is under development. Method signatures may change.
*/
@Generated
public interface ClustersService {
/**
* Change cluster owner.
*
*
Change the owner of the cluster. You must be an admin and the cluster must be terminated to
* perform this operation. The service principal application ID can be supplied as an argument to
* `owner_username`.
*/
void changeOwner(ChangeClusterOwner changeClusterOwner);
/**
* Create new cluster.
*
*
Creates a new Spark cluster. This method will acquire new instances from the cloud provider
* if necessary. Note: Databricks may not be able to acquire some of the requested nodes, due to
* cloud provider limitations (account limits, spot price, etc.) or transient network issues.
*
*
If Databricks acquires at least 85% of the requested on-demand nodes, cluster creation will
* succeed. Otherwise the cluster will terminate with an informative error message.
*/
CreateClusterResponse create(CreateCluster createCluster);
/**
* Terminate cluster.
*
*
Terminates the Spark cluster with the specified ID. The cluster is removed asynchronously.
* Once the termination has completed, the cluster will be in a `TERMINATED` state. If the cluster
* is already in a `TERMINATING` or `TERMINATED` state, nothing will happen.
*/
void delete(DeleteCluster deleteCluster);
/**
* Update cluster configuration.
*
*
Updates the configuration of a cluster to match the provided attributes and size. A cluster
* can be updated if it is in a `RUNNING` or `TERMINATED` state.
*
*
If a cluster is updated while in a `RUNNING` state, it will be restarted so that the new
* attributes can take effect.
*
*
If a cluster is updated while in a `TERMINATED` state, it will remain `TERMINATED`. The next
* time it is started using the `clusters/start` API, the new attributes will take effect. Any
* attempt to update a cluster in any other state will be rejected with an `INVALID_STATE` error
* code.
*
*
Clusters created by the Databricks Jobs service cannot be edited.
*/
void edit(EditCluster editCluster);
/**
* List cluster activity events.
*
*
Retrieves a list of events about the activity of a cluster. This API is paginated. If there
* are more events to read, the response includes all the nparameters necessary to request the
* next page of events.
*/
GetEventsResponse events(GetEvents getEvents);
/**
* Get cluster info.
*
*
Retrieves the information for a cluster given its identifier. Clusters can be described
* while they are running, or up to 60 days after they are terminated.
*/
ClusterDetails get(GetClusterRequest getClusterRequest);
/**
* Get cluster permission levels.
*
*
Gets the permission levels that a user can have on an object.
*/
GetClusterPermissionLevelsResponse getPermissionLevels(
GetClusterPermissionLevelsRequest getClusterPermissionLevelsRequest);
/**
* Get cluster permissions.
*
*
Gets the permissions of a cluster. Clusters can inherit permissions from their root object.
*/
ClusterPermissions getPermissions(GetClusterPermissionsRequest getClusterPermissionsRequest);
/**
* List clusters.
*
*
Return information about all pinned and active clusters, and all clusters terminated within
* the last 30 days. Clusters terminated prior to this period are not included.
*/
ListClustersResponse list(ListClustersRequest listClustersRequest);
/**
* List node types.
*
*
Returns a list of supported Spark node types. These node types can be used to launch a
* cluster.
*/
ListNodeTypesResponse listNodeTypes();
/**
* List availability zones.
*
*
Returns a list of availability zones where clusters can be created in (For example,
* us-west-2a). These zones can be used to launch a cluster.
*/
ListAvailableZonesResponse listZones();
/**
* Permanently delete cluster.
*
*
Permanently deletes a Spark cluster. This cluster is terminated and resources are
* asynchronously removed.
*
*
In addition, users will no longer see permanently deleted clusters in the cluster list, and
* API users can no longer perform any action on permanently deleted clusters.
*/
void permanentDelete(PermanentDeleteCluster permanentDeleteCluster);
/**
* Pin cluster.
*
*
Pinning a cluster ensures that the cluster will always be returned by the ListClusters API.
* Pinning a cluster that is already pinned will have no effect. This API can only be called by
* workspace admins.
*/
void pin(PinCluster pinCluster);
/**
* Resize cluster.
*
*
Resizes a cluster to have a desired number of workers. This will fail unless the cluster is
* in a `RUNNING` state.
*/
void resize(ResizeCluster resizeCluster);
/**
* Restart cluster.
*
*
Restarts a Spark cluster with the supplied ID. If the cluster is not currently in a
* `RUNNING` state, nothing will happen.
*/
void restart(RestartCluster restartCluster);
/**
* Set cluster permissions.
*
*
Sets permissions on a cluster. Clusters can inherit permissions from their root object.
*/
ClusterPermissions setPermissions(ClusterPermissionsRequest clusterPermissionsRequest);
/**
* List available Spark versions.
*
*
Returns the list of available Spark versions. These versions can be used to launch a
* cluster.
*/
GetSparkVersionsResponse sparkVersions();
/**
* Start terminated cluster.
*
*
Starts a terminated Spark cluster with the supplied ID. This works similar to
* `createCluster` except:
*
*
* The previous cluster id and attributes are preserved. * The cluster starts with the last
* specified cluster size. * If the previous cluster was an autoscaling cluster, the current
* cluster starts with the minimum number of nodes. * If the cluster is not currently in a
* `TERMINATED` state, nothing will happen. * Clusters launched to run a job cannot be started.
*/
void start(StartCluster startCluster);
/**
* Unpin cluster.
*
*
Unpinning a cluster will allow the cluster to eventually be removed from the ListClusters
* API. Unpinning a cluster that is not pinned will have no effect. This API can only be called by
* workspace admins.
*/
void unpin(UnpinCluster unpinCluster);
/**
* Update cluster configuration (partial).
*
*
Updates the configuration of a cluster to match the partial set of attributes and size.
* Denote which fields to update using the `update_mask` field in the request body. A cluster can
* be updated if it is in a `RUNNING` or `TERMINATED` state. If a cluster is updated while in a
* `RUNNING` state, it will be restarted so that the new attributes can take effect. If a cluster
* is updated while in a `TERMINATED` state, it will remain `TERMINATED`. The updated attributes
* will take effect the next time the cluster is started using the `clusters/start` API. Attempts
* to update a cluster in any other state will be rejected with an `INVALID_STATE` error code.
* Clusters created by the Databricks Jobs service cannot be updated.
*/
void update(UpdateCluster updateCluster);
/**
* Update cluster permissions.
*
*
Updates the permissions on a cluster. Clusters can inherit permissions from their root
* object.
*/
ClusterPermissions updatePermissions(ClusterPermissionsRequest clusterPermissionsRequest);
}