databricks-api
==============

|pypi| |pyversions|

.. |pypi| image:: https://img.shields.io/pypi/v/databricks-api.svg
    :target: https://pypi.python.org/pypi/databricks-api

.. |pyversions| image:: https://img.shields.io/pypi/pyversions/databricks-api.svg
    :target: https://pypi.python.org/pypi/databricks-api

*[This documentation is auto-generated]*

This package provides a simplified interface for the Databricks REST API.
The interface is autogenerated on instantiation using the underlying client
library used in the official ``databricks-cli`` python package.

Install using

.. code-block:: bash

    pip install databricks-api
    

The docs here describe the interface for version **0.17.0** of
the ``databricks-cli`` package for API version **2.0**.

The ``databricks-api`` package contains a ``DatabricksAPI`` class which provides
instance attributes for the ``databricks-cli`` ``ApiClient``, as well as each of
the available service instances. The attributes of a ``DatabricksAPI`` instance are:

* DatabricksAPI.client *<databricks_cli.sdk.api_client.ApiClient>*
* DatabricksAPI.jobs *<databricks_cli.sdk.service.JobsService>*
* DatabricksAPI.cluster *<databricks_cli.sdk.service.ClusterService>*
* DatabricksAPI.policy *<databricks_cli.sdk.service.PolicyService>*
* DatabricksAPI.managed_library *<databricks_cli.sdk.service.ManagedLibraryService>*
* DatabricksAPI.dbfs *<databricks_cli.sdk.service.DbfsService>*
* DatabricksAPI.workspace *<databricks_cli.sdk.service.WorkspaceService>*
* DatabricksAPI.secret *<databricks_cli.sdk.service.SecretService>*
* DatabricksAPI.groups *<databricks_cli.sdk.service.GroupsService>*
* DatabricksAPI.token *<databricks_cli.sdk.service.TokenService>*
* DatabricksAPI.instance_pool *<databricks_cli.sdk.service.InstancePoolService>*
* DatabricksAPI.delta_pipelines *<databricks_cli.sdk.service.DeltaPipelinesService>*
* DatabricksAPI.repos *<databricks_cli.sdk.service.ReposService>*

To instantiate the client, provide the databricks host and either a token or
user and password. Also shown is the full signature of the
underlying ``ApiClient.__init__``

.. code-block:: python

    from databricks_api import DatabricksAPI

    # Provide a host and token
    db = DatabricksAPI(
        host="example.cloud.databricks.com",
        token="dpapi123..."
    )

    # OR a host and user and password
    db = DatabricksAPI(
        host="example.cloud.databricks.com",
        user="me@example.com",
        password="password"
    )

    # Full __init__ signature
    db = DatabricksAPI(
        user=None,
        password=None,
        host=None,
        token=None,
        api_version='2.0',
        default_headers={},
        verify=True,
        command_name='',
        jobs_api_version=None
    )

Refer to the `official documentation <https://docs.databricks.com/api/index.html>`_
on the functionality and required arguments of each method below.

Each of the service instance attributes provides the following public methods:

DatabricksAPI.jobs
------------------

.. code-block:: python

    db.jobs.cancel_run(
        run_id,
        headers=None,
        version=None,
    )

    db.jobs.create_job(
        name=None,
        existing_cluster_id=None,
        new_cluster=None,
        libraries=None,
        email_notifications=None,
        timeout_seconds=None,
        max_retries=None,
        min_retry_interval_millis=None,
        retry_on_timeout=None,
        schedule=None,
        notebook_task=None,
        spark_jar_task=None,
        spark_python_task=None,
        spark_submit_task=None,
        max_concurrent_runs=None,
        tasks=None,
        headers=None,
        version=None,
    )

    db.jobs.delete_job(
        job_id,
        headers=None,
        version=None,
    )

    db.jobs.delete_run(
        run_id=None,
        headers=None,
        version=None,
    )

    db.jobs.export_run(
        run_id,
        views_to_export=None,
        headers=None,
        version=None,
    )

    db.jobs.get_job(
        job_id,
        headers=None,
        version=None,
    )

    db.jobs.get_run(
        run_id=None,
        headers=None,
        version=None,
    )

    db.jobs.get_run_output(
        run_id,
        headers=None,
        version=None,
    )

    db.jobs.list_jobs(
        job_type=None,
        expand_tasks=None,
        limit=None,
        offset=None,
        headers=None,
        version=None,
    )

    db.jobs.list_runs(
        job_id=None,
        active_only=None,
        completed_only=None,
        offset=None,
        limit=None,
        headers=None,
        version=None,
    )

    db.jobs.reset_job(
        job_id,
        new_settings,
        headers=None,
        version=None,
    )

    db.jobs.run_now(
        job_id=None,
        jar_params=None,
        notebook_params=None,
        python_params=None,
        spark_submit_params=None,
        python_named_params=None,
        idempotency_token=None,
        headers=None,
        version=None,
    )

    db.jobs.submit_run(
        run_name=None,
        existing_cluster_id=None,
        new_cluster=None,
        libraries=None,
        notebook_task=None,
        spark_jar_task=None,
        spark_python_task=None,
        spark_submit_task=None,
        timeout_seconds=None,
        tasks=None,
        headers=None,
        version=None,
    )


DatabricksAPI.cluster
---------------------

.. code-block:: python

    db.cluster.create_cluster(
        num_workers=None,
        autoscale=None,
        cluster_name=None,
        spark_version=None,
        spark_conf=None,
        aws_attributes=None,
        node_type_id=None,
        driver_node_type_id=None,
        ssh_public_keys=None,
        custom_tags=None,
        cluster_log_conf=None,
        spark_env_vars=None,
        autotermination_minutes=None,
        enable_elastic_disk=None,
        cluster_source=None,
        instance_pool_id=None,
        headers=None,
    )

    db.cluster.delete_cluster(
        cluster_id,
        headers=None,
    )

    db.cluster.edit_cluster(
        cluster_id,
        num_workers=None,
        autoscale=None,
        cluster_name=None,
        spark_version=None,
        spark_conf=None,
        aws_attributes=None,
        node_type_id=None,
        driver_node_type_id=None,
        ssh_public_keys=None,
        custom_tags=None,
        cluster_log_conf=None,
        spark_env_vars=None,
        autotermination_minutes=None,
        enable_elastic_disk=None,
        cluster_source=None,
        instance_pool_id=None,
        headers=None,
    )

    db.cluster.get_cluster(
        cluster_id,
        headers=None,
    )

    db.cluster.get_events(
        cluster_id,
        start_time=None,
        end_time=None,
        order=None,
        event_types=None,
        offset=None,
        limit=None,
        headers=None,
    )

    db.cluster.list_available_zones(headers=None)

    db.cluster.list_clusters(headers=None)

    db.cluster.list_node_types(headers=None)

    db.cluster.list_spark_versions(headers=None)

    db.cluster.permanent_delete_cluster(
        cluster_id,
        headers=None,
    )

    db.cluster.pin_cluster(
        cluster_id,
        headers=None,
    )

    db.cluster.resize_cluster(
        cluster_id,
        num_workers=None,
        autoscale=None,
        headers=None,
    )

    db.cluster.restart_cluster(
        cluster_id,
        headers=None,
    )

    db.cluster.start_cluster(
        cluster_id,
        headers=None,
    )

    db.cluster.unpin_cluster(
        cluster_id,
        headers=None,
    )


DatabricksAPI.policy
--------------------

.. code-block:: python

    db.policy.create_policy(
        policy_name,
        definition,
        headers=None,
    )

    db.policy.delete_policy(
        policy_id,
        headers=None,
    )

    db.policy.edit_policy(
        policy_id,
        policy_name,
        definition,
        headers=None,
    )

    db.policy.get_policy(
        policy_id,
        headers=None,
    )

    db.policy.list_policies(headers=None)


DatabricksAPI.managed_library
-----------------------------

.. code-block:: python

    db.managed_library.all_cluster_statuses(headers=None)

    db.managed_library.cluster_status(
        cluster_id,
        headers=None,
    )

    db.managed_library.install_libraries(
        cluster_id,
        libraries=None,
        headers=None,
    )

    db.managed_library.uninstall_libraries(
        cluster_id,
        libraries=None,
        headers=None,
    )


DatabricksAPI.dbfs
------------------

.. code-block:: python

    db.dbfs.add_block(
        handle,
        data,
        headers=None,
    )

    db.dbfs.add_block_test(
        handle,
        data,
        headers=None,
    )

    db.dbfs.close(
        handle,
        headers=None,
    )

    db.dbfs.close_test(
        handle,
        headers=None,
    )

    db.dbfs.create(
        path,
        overwrite=None,
        headers=None,
    )

    db.dbfs.create_test(
        path,
        overwrite=None,
        headers=None,
    )

    db.dbfs.delete(
        path,
        recursive=None,
        headers=None,
    )

    db.dbfs.delete_test(
        path,
        recursive=None,
        headers=None,
    )

    db.dbfs.get_status(
        path,
        headers=None,
    )

    db.dbfs.get_status_test(
        path,
        headers=None,
    )

    db.dbfs.list(
        path,
        headers=None,
    )

    db.dbfs.list_test(
        path,
        headers=None,
    )

    db.dbfs.mkdirs(
        path,
        headers=None,
    )

    db.dbfs.mkdirs_test(
        path,
        headers=None,
    )

    db.dbfs.move(
        source_path,
        destination_path,
        headers=None,
    )

    db.dbfs.move_test(
        source_path,
        destination_path,
        headers=None,
    )

    db.dbfs.put(
        path,
        contents=None,
        overwrite=None,
        headers=None,
        src_path=None,
    )

    db.dbfs.put_test(
        path,
        contents=None,
        overwrite=None,
        headers=None,
        src_path=None,
    )

    db.dbfs.read(
        path,
        offset=None,
        length=None,
        headers=None,
    )

    db.dbfs.read_test(
        path,
        offset=None,
        length=None,
        headers=None,
    )


DatabricksAPI.workspace
-----------------------

.. code-block:: python

    db.workspace.delete(
        path,
        recursive=None,
        headers=None,
    )

    db.workspace.export_workspace(
        path,
        format=None,
        direct_download=None,
        headers=None,
    )

    db.workspace.get_status(
        path,
        headers=None,
    )

    db.workspace.import_workspace(
        path,
        format=None,
        language=None,
        content=None,
        overwrite=None,
        headers=None,
    )

    db.workspace.list(
        path,
        headers=None,
    )

    db.workspace.mkdirs(
        path,
        headers=None,
    )


DatabricksAPI.secret
--------------------

.. code-block:: python

    db.secret.create_scope(
        scope,
        initial_manage_principal=None,
        scope_backend_type=None,
        backend_azure_keyvault=None,
        headers=None,
    )

    db.secret.delete_acl(
        scope,
        principal,
        headers=None,
    )

    db.secret.delete_scope(
        scope,
        headers=None,
    )

    db.secret.delete_secret(
        scope,
        key,
        headers=None,
    )

    db.secret.get_acl(
        scope,
        principal,
        headers=None,
    )

    db.secret.list_acls(
        scope,
        headers=None,
    )

    db.secret.list_scopes(headers=None)

    db.secret.list_secrets(
        scope,
        headers=None,
    )

    db.secret.put_acl(
        scope,
        principal,
        permission,
        headers=None,
    )

    db.secret.put_secret(
        scope,
        key,
        string_value=None,
        bytes_value=None,
        headers=None,
    )


DatabricksAPI.groups
--------------------

.. code-block:: python

    db.groups.add_to_group(
        parent_name,
        user_name=None,
        group_name=None,
        headers=None,
    )

    db.groups.create_group(
        group_name,
        headers=None,
    )

    db.groups.get_group_members(
        group_name,
        headers=None,
    )

    db.groups.get_groups(headers=None)

    db.groups.get_groups_for_principal(
        user_name=None,
        group_name=None,
        headers=None,
    )

    db.groups.remove_from_group(
        parent_name,
        user_name=None,
        group_name=None,
        headers=None,
    )

    db.groups.remove_group(
        group_name,
        headers=None,
    )


DatabricksAPI.token
-------------------

.. code-block:: python

    db.token.create_token(
        lifetime_seconds=None,
        comment=None,
        headers=None,
    )

    db.token.list_tokens(headers=None)

    db.token.revoke_token(
        token_id,
        headers=None,
    )


DatabricksAPI.instance_pool
---------------------------

.. code-block:: python

    db.instance_pool.create_instance_pool(
        instance_pool_name=None,
        min_idle_instances=None,
        max_capacity=None,
        aws_attributes=None,
        node_type_id=None,
        custom_tags=None,
        idle_instance_autotermination_minutes=None,
        enable_elastic_disk=None,
        disk_spec=None,
        preloaded_spark_versions=None,
        headers=None,
    )

    db.instance_pool.delete_instance_pool(
        instance_pool_id=None,
        headers=None,
    )

    db.instance_pool.edit_instance_pool(
        instance_pool_id,
        instance_pool_name=None,
        min_idle_instances=None,
        max_capacity=None,
        aws_attributes=None,
        node_type_id=None,
        custom_tags=None,
        idle_instance_autotermination_minutes=None,
        enable_elastic_disk=None,
        disk_spec=None,
        preloaded_spark_versions=None,
        headers=None,
    )

    db.instance_pool.get_instance_pool(
        instance_pool_id=None,
        headers=None,
    )

    db.instance_pool.list_instance_pools(headers=None)


DatabricksAPI.delta_pipelines
-----------------------------

.. code-block:: python

    db.delta_pipelines.create(
        id=None,
        name=None,
        storage=None,
        configuration=None,
        clusters=None,
        libraries=None,
        trigger=None,
        filters=None,
        allow_duplicate_names=None,
        headers=None,
    )

    db.delta_pipelines.delete(
        pipeline_id=None,
        headers=None,
    )

    db.delta_pipelines.deploy(
        pipeline_id=None,
        id=None,
        name=None,
        storage=None,
        configuration=None,
        clusters=None,
        libraries=None,
        trigger=None,
        filters=None,
        allow_duplicate_names=None,
        headers=None,
    )

    db.delta_pipelines.get(
        pipeline_id=None,
        headers=None,
    )

    db.delta_pipelines.list(
        pagination=None,
        headers=None,
    )

    db.delta_pipelines.reset(
        pipeline_id=None,
        headers=None,
    )

    db.delta_pipelines.run(
        pipeline_id=None,
        headers=None,
    )

    db.delta_pipelines.start_update(
        pipeline_id=None,
        full_refresh=None,
        headers=None,
    )

    db.delta_pipelines.stop(
        pipeline_id=None,
        headers=None,
    )


DatabricksAPI.repos
-------------------

.. code-block:: python

    db.repos.create_repo(
        url,
        provider,
        path=None,
        headers=None,
    )

    db.repos.delete_repo(
        id,
        headers=None,
    )

    db.repos.get_repo(
        id,
        headers=None,
    )

    db.repos.list_repos(
        path_prefix=None,
        next_page_token=None,
        headers=None,
    )

    db.repos.update_repo(
        id,
        branch=None,
        tag=None,
        headers=None,
    )


