From f2b551d6f318785d3ccb400306a95b47f86326c2 Mon Sep 17 00:00:00 2001 From: Gleb Kanterov Date: Fri, 31 Oct 2025 14:24:21 +0100 Subject: [PATCH 1/3] [Python] Move python directory --- .codegen.json | 8 ++++---- .github/workflows/push.yml | 4 ++-- .github/workflows/python_push.yml | 10 +++++----- .github/workflows/release.yml | 4 ++-- .wsignore | 4 ++-- acceptance/acceptance_test.go | 2 +- bundle/config/mutator/python/python_mutator_test.go | 2 +- libs/dyn/dynvar/ref.go | 2 +- {experimental/python => python}/.gitignore | 0 {experimental/python => python}/LICENSE | 0 {experimental/python => python}/Makefile | 0 {experimental/python => python}/README.md | 2 +- .../python => python}/codegen/codegen/code_builder.py | 0 .../codegen/codegen/generated_dataclass.py | 0 .../codegen/codegen/generated_dataclass_patch.py | 0 .../codegen/codegen/generated_enum.py | 0 .../codegen/codegen/generated_imports.py | 0 .../python => python}/codegen/codegen/jsonschema.py | 7 +++---- .../codegen/codegen/jsonschema_patch.py | 0 .../python => python}/codegen/codegen/main.py | 0 .../python => python}/codegen/codegen/packages.py | 0 .../codegen/codegen_tests/__init__.py | 0 .../codegen/codegen_tests/test_generated_dataclass.py | 0 .../codegen/codegen_tests/test_generated_enum.py | 0 .../codegen/codegen_tests/test_jsonschema.py | 0 {experimental/python => python}/codegen/pyproject.toml | 0 {experimental/python => python}/codegen/uv.lock | 0 {experimental/python => python}/databricks/__init__.py | 0 .../python => python}/databricks/bundles/__init__.py | 0 .../python => python}/databricks/bundles/build.py | 2 +- .../databricks/bundles/core/__init__.py | 0 .../databricks/bundles/core/_bundle.py | 0 .../databricks/bundles/core/_diagnostics.py | 0 .../python => python}/databricks/bundles/core/_load.py | 0 .../databricks/bundles/core/_location.py | 0 .../databricks/bundles/core/_resource.py | 0 .../databricks/bundles/core/_resource_mutator.py | 0 .../databricks/bundles/core/_resource_type.py | 0 .../databricks/bundles/core/_resources.py | 0 .../databricks/bundles/core/_transform.py | 0 .../databricks/bundles/core/_transform_to_json.py | 0 .../databricks/bundles/core/_variable.py | 0 .../databricks/bundles/jobs/__init__.py | 0 .../databricks/bundles/jobs/_models/adlsgen2_info.py | 0 .../bundles/jobs/_models/authentication_method.py | 0 .../databricks/bundles/jobs/_models/auto_scale.py | 0 .../databricks/bundles/jobs/_models/aws_attributes.py | 0 .../bundles/jobs/_models/aws_availability.py | 0 .../bundles/jobs/_models/azure_attributes.py | 0 .../bundles/jobs/_models/azure_availability.py | 0 .../bundles/jobs/_models/clean_rooms_notebook_task.py | 0 .../databricks/bundles/jobs/_models/clients_types.py | 0 .../bundles/jobs/_models/cluster_log_conf.py | 0 .../databricks/bundles/jobs/_models/cluster_spec.py | 0 .../databricks/bundles/jobs/_models/compute_config.py | 0 .../databricks/bundles/jobs/_models/condition.py | 0 .../databricks/bundles/jobs/_models/condition_task.py | 0 .../bundles/jobs/_models/condition_task_op.py | 0 .../databricks/bundles/jobs/_models/continuous.py | 0 .../databricks/bundles/jobs/_models/cron_schedule.py | 0 .../databricks/bundles/jobs/_models/dashboard_task.py | 0 .../bundles/jobs/_models/data_security_mode.py | 0 .../bundles/jobs/_models/dbfs_storage_info.py | 0 .../bundles/jobs/_models/dbt_platform_task.py | 0 .../databricks/bundles/jobs/_models/dbt_task.py | 0 .../bundles/jobs/_models/docker_basic_auth.py | 0 .../databricks/bundles/jobs/_models/docker_image.py | 0 .../databricks/bundles/jobs/_models/ebs_volume_type.py | 0 .../databricks/bundles/jobs/_models/environment.py | 0 .../jobs/_models/file_arrival_trigger_configuration.py | 0 .../databricks/bundles/jobs/_models/for_each_task.py | 0 .../databricks/bundles/jobs/_models/gcp_attributes.py | 0 .../bundles/jobs/_models/gcp_availability.py | 0 .../bundles/jobs/_models/gcs_storage_info.py | 0 .../bundles/jobs/_models/gen_ai_compute_task.py | 0 .../databricks/bundles/jobs/_models/git_provider.py | 0 .../databricks/bundles/jobs/_models/git_source.py | 0 .../bundles/jobs/_models/init_script_info.py | 0 .../databricks/bundles/jobs/_models/job.py | 0 .../databricks/bundles/jobs/_models/job_cluster.py | 0 .../bundles/jobs/_models/job_email_notifications.py | 0 .../databricks/bundles/jobs/_models/job_environment.py | 0 .../bundles/jobs/_models/job_notification_settings.py | 0 .../bundles/jobs/_models/job_parameter_definition.py | 0 .../databricks/bundles/jobs/_models/job_permission.py | 0 .../bundles/jobs/_models/job_permission_level.py | 0 .../databricks/bundles/jobs/_models/job_run_as.py | 0 .../bundles/jobs/_models/jobs_health_metric.py | 0 .../bundles/jobs/_models/jobs_health_operator.py | 0 .../bundles/jobs/_models/jobs_health_rule.py | 0 .../bundles/jobs/_models/jobs_health_rules.py | 0 .../databricks/bundles/jobs/_models/kind.py | 0 .../databricks/bundles/jobs/_models/library.py | 0 .../databricks/bundles/jobs/_models/lifecycle.py | 0 .../databricks/bundles/jobs/_models/local_file_info.py | 0 .../bundles/jobs/_models/log_analytics_info.py | 0 .../databricks/bundles/jobs/_models/maven_library.py | 0 .../databricks/bundles/jobs/_models/notebook_task.py | 0 .../databricks/bundles/jobs/_models/pause_status.py | 0 .../bundles/jobs/_models/performance_target.py | 0 .../jobs/_models/periodic_trigger_configuration.py | 0 .../periodic_trigger_configuration_time_unit.py | 0 .../databricks/bundles/jobs/_models/pipeline_params.py | 0 .../databricks/bundles/jobs/_models/pipeline_task.py | 0 .../databricks/bundles/jobs/_models/power_bi_model.py | 0 .../databricks/bundles/jobs/_models/power_bi_table.py | 0 .../databricks/bundles/jobs/_models/power_bi_task.py | 0 .../bundles/jobs/_models/python_py_pi_library.py | 0 .../bundles/jobs/_models/python_wheel_task.py | 0 .../databricks/bundles/jobs/_models/queue_settings.py | 0 .../databricks/bundles/jobs/_models/r_cran_library.py | 0 .../databricks/bundles/jobs/_models/run_if.py | 0 .../databricks/bundles/jobs/_models/run_job_task.py | 0 .../databricks/bundles/jobs/_models/runtime_engine.py | 0 .../databricks/bundles/jobs/_models/s3_storage_info.py | 0 .../databricks/bundles/jobs/_models/source.py | 0 .../databricks/bundles/jobs/_models/spark_jar_task.py | 0 .../bundles/jobs/_models/spark_python_task.py | 0 .../bundles/jobs/_models/spark_submit_task.py | 0 .../databricks/bundles/jobs/_models/sql_task.py | 0 .../databricks/bundles/jobs/_models/sql_task_alert.py | 0 .../bundles/jobs/_models/sql_task_dashboard.py | 0 .../databricks/bundles/jobs/_models/sql_task_file.py | 0 .../databricks/bundles/jobs/_models/sql_task_query.py | 0 .../bundles/jobs/_models/sql_task_subscription.py | 0 .../databricks/bundles/jobs/_models/storage_mode.py | 0 .../databricks/bundles/jobs/_models/subscription.py | 0 .../bundles/jobs/_models/subscription_subscriber.py | 0 .../jobs/_models/table_update_trigger_configuration.py | 0 .../databricks/bundles/jobs/_models/task.py | 0 .../databricks/bundles/jobs/_models/task_dependency.py | 0 .../bundles/jobs/_models/task_email_notifications.py | 0 .../bundles/jobs/_models/task_notification_settings.py | 0 .../databricks/bundles/jobs/_models/task_retry_mode.py | 0 .../bundles/jobs/_models/trigger_settings.py | 0 .../bundles/jobs/_models/volumes_storage_info.py | 0 .../databricks/bundles/jobs/_models/webhook.py | 0 .../bundles/jobs/_models/webhook_notifications.py | 0 .../databricks/bundles/jobs/_models/workload_type.py | 0 .../bundles/jobs/_models/workspace_storage_info.py | 0 .../databricks/bundles/pipelines/__init__.py | 0 .../bundles/pipelines/_models/adlsgen2_info.py | 0 .../bundles/pipelines/_models/aws_attributes.py | 0 .../bundles/pipelines/_models/aws_availability.py | 0 .../bundles/pipelines/_models/azure_attributes.py | 0 .../bundles/pipelines/_models/azure_availability.py | 0 .../bundles/pipelines/_models/cluster_log_conf.py | 0 .../bundles/pipelines/_models/day_of_week.py | 0 .../bundles/pipelines/_models/dbfs_storage_info.py | 0 .../bundles/pipelines/_models/ebs_volume_type.py | 0 .../bundles/pipelines/_models/event_log_spec.py | 0 .../bundles/pipelines/_models/file_library.py | 0 .../databricks/bundles/pipelines/_models/filters.py | 0 .../bundles/pipelines/_models/gcp_attributes.py | 0 .../bundles/pipelines/_models/gcp_availability.py | 0 .../bundles/pipelines/_models/gcs_storage_info.py | 0 .../bundles/pipelines/_models/ingestion_config.py | 0 .../_models/ingestion_gateway_pipeline_definition.py | 0 .../pipelines/_models/ingestion_pipeline_definition.py | 0 ...ble_specific_config_query_based_connector_config.py | 0 ...on_pipeline_definition_workday_report_parameters.py | 0 ...nition_workday_report_parameters_query_key_value.py | 0 .../bundles/pipelines/_models/init_script_info.py | 0 .../databricks/bundles/pipelines/_models/lifecycle.py | 0 .../bundles/pipelines/_models/local_file_info.py | 0 .../bundles/pipelines/_models/log_analytics_info.py | 0 .../bundles/pipelines/_models/maven_library.py | 0 .../bundles/pipelines/_models/notebook_library.py | 0 .../bundles/pipelines/_models/notifications.py | 0 .../bundles/pipelines/_models/path_pattern.py | 0 .../databricks/bundles/pipelines/_models/pipeline.py | 0 .../bundles/pipelines/_models/pipeline_cluster.py | 0 .../pipelines/_models/pipeline_cluster_autoscale.py | 0 .../_models/pipeline_cluster_autoscale_mode.py | 0 .../bundles/pipelines/_models/pipeline_library.py | 0 .../bundles/pipelines/_models/pipeline_permission.py | 0 .../pipelines/_models/pipeline_permission_level.py | 0 .../bundles/pipelines/_models/pipelines_environment.py | 0 .../pipelines/_models/postgres_catalog_config.py | 0 .../bundles/pipelines/_models/postgres_slot_config.py | 0 .../bundles/pipelines/_models/report_spec.py | 0 .../bundles/pipelines/_models/restart_window.py | 0 .../databricks/bundles/pipelines/_models/run_as.py | 0 .../bundles/pipelines/_models/s3_storage_info.py | 0 .../bundles/pipelines/_models/schema_spec.py | 0 .../bundles/pipelines/_models/source_catalog_config.py | 0 .../bundles/pipelines/_models/source_config.py | 0 .../databricks/bundles/pipelines/_models/table_spec.py | 0 .../bundles/pipelines/_models/table_specific_config.py | 0 .../_models/table_specific_config_scd_type.py | 0 .../bundles/pipelines/_models/volumes_storage_info.py | 0 .../pipelines/_models/workspace_storage_info.py | 0 .../python => python}/databricks/bundles/py.typed | 0 .../databricks/bundles/schemas/__init__.py | 0 .../databricks/bundles/schemas/_models/lifecycle.py | 0 .../databricks/bundles/schemas/_models/schema.py | 0 .../databricks/bundles/schemas/_models/schema_grant.py | 0 .../bundles/schemas/_models/schema_grant_privilege.py | 0 .../python => python}/databricks/bundles/version.py | 0 .../databricks/bundles/volumes/__init__.py | 0 .../databricks/bundles/volumes/_models/lifecycle.py | 0 .../databricks/bundles/volumes/_models/volume.py | 0 .../databricks/bundles/volumes/_models/volume_grant.py | 0 .../bundles/volumes/_models/volume_grant_privilege.py | 0 .../databricks/bundles/volumes/_models/volume_type.py | 0 .../python => python}/databricks_tests/__init__.py | 0 .../databricks_tests/bundles/test_hello_world.py | 0 .../databricks_tests/core/test_bundle.py | 0 .../databricks_tests/core/test_diagnostics.py | 0 .../databricks_tests/core/test_import.py | 0 .../databricks_tests/core/test_load.py | 0 .../databricks_tests/core/test_location.py | 0 .../databricks_tests/core/test_resources.py | 0 .../databricks_tests/core/test_transform.py | 0 .../databricks_tests/core/test_transform_to_json.py | 0 .../databricks_tests/core/test_transform_variable.py | 0 .../databricks_tests/core/test_variable.py | 0 .../databricks_tests/fixtures/__init__.py | 0 .../databricks_tests/fixtures/dummy_module.py | 0 .../databricks_tests/fixtures/error_module.py | 0 .../python => python}/databricks_tests/test_build.py | 0 {experimental/python => python}/docs/conf.py | 0 .../python => python}/docs/databricks.bundles.core.rst | 0 .../python => python}/docs/databricks.bundles.jobs.rst | 0 .../docs/databricks.bundles.pipelines.rst | 0 .../docs/databricks.bundles.schemas.rst | 0 .../docs/databricks.bundles.volumes.rst | 0 .../docs/ext/autodoc_databricks_bundles.py | 0 .../python => python}/docs/images/databricks-logo.svg | 0 {experimental/python => python}/docs/index.rst | 0 {experimental/python => python}/pyproject.toml | 0 {experimental/python => python}/uv.lock | 0 tools/post-generate.sh | 2 +- 233 files changed, 24 insertions(+), 25 deletions(-) rename {experimental/python => python}/.gitignore (100%) rename {experimental/python => python}/LICENSE (100%) rename {experimental/python => python}/Makefile (100%) rename {experimental/python => python}/README.md (97%) rename {experimental/python => python}/codegen/codegen/code_builder.py (100%) rename {experimental/python => python}/codegen/codegen/generated_dataclass.py (100%) rename {experimental/python => python}/codegen/codegen/generated_dataclass_patch.py (100%) rename {experimental/python => python}/codegen/codegen/generated_enum.py (100%) rename {experimental/python => python}/codegen/codegen/generated_imports.py (100%) rename {experimental/python => python}/codegen/codegen/jsonschema.py (95%) rename {experimental/python => python}/codegen/codegen/jsonschema_patch.py (100%) rename {experimental/python => python}/codegen/codegen/main.py (100%) rename {experimental/python => python}/codegen/codegen/packages.py (100%) rename {experimental/python => python}/codegen/codegen_tests/__init__.py (100%) rename {experimental/python => python}/codegen/codegen_tests/test_generated_dataclass.py (100%) rename {experimental/python => python}/codegen/codegen_tests/test_generated_enum.py (100%) rename {experimental/python => python}/codegen/codegen_tests/test_jsonschema.py (100%) rename {experimental/python => python}/codegen/pyproject.toml (100%) rename {experimental/python => python}/codegen/uv.lock (100%) rename {experimental/python => python}/databricks/__init__.py (100%) rename {experimental/python => python}/databricks/bundles/__init__.py (100%) rename {experimental/python => python}/databricks/bundles/build.py (99%) rename {experimental/python => python}/databricks/bundles/core/__init__.py (100%) rename {experimental/python => python}/databricks/bundles/core/_bundle.py (100%) rename {experimental/python => python}/databricks/bundles/core/_diagnostics.py (100%) rename {experimental/python => python}/databricks/bundles/core/_load.py (100%) rename {experimental/python => python}/databricks/bundles/core/_location.py (100%) rename {experimental/python => python}/databricks/bundles/core/_resource.py (100%) rename {experimental/python => python}/databricks/bundles/core/_resource_mutator.py (100%) rename {experimental/python => python}/databricks/bundles/core/_resource_type.py (100%) rename {experimental/python => python}/databricks/bundles/core/_resources.py (100%) rename {experimental/python => python}/databricks/bundles/core/_transform.py (100%) rename {experimental/python => python}/databricks/bundles/core/_transform_to_json.py (100%) rename {experimental/python => python}/databricks/bundles/core/_variable.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/__init__.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/adlsgen2_info.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/authentication_method.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/auto_scale.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/aws_attributes.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/aws_availability.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/azure_attributes.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/azure_availability.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/clean_rooms_notebook_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/clients_types.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/cluster_log_conf.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/cluster_spec.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/compute_config.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/condition.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/condition_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/condition_task_op.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/continuous.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/cron_schedule.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/dashboard_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/data_security_mode.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/dbfs_storage_info.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/dbt_platform_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/dbt_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/docker_basic_auth.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/docker_image.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/ebs_volume_type.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/environment.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/file_arrival_trigger_configuration.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/for_each_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/gcp_attributes.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/gcp_availability.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/gcs_storage_info.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/gen_ai_compute_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/git_provider.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/git_source.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/init_script_info.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/job.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/job_cluster.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/job_email_notifications.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/job_environment.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/job_notification_settings.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/job_parameter_definition.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/job_permission.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/job_permission_level.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/job_run_as.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/jobs_health_metric.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/jobs_health_operator.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/jobs_health_rule.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/jobs_health_rules.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/kind.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/library.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/lifecycle.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/local_file_info.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/log_analytics_info.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/maven_library.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/notebook_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/pause_status.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/performance_target.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/periodic_trigger_configuration.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/periodic_trigger_configuration_time_unit.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/pipeline_params.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/pipeline_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/power_bi_model.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/power_bi_table.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/power_bi_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/python_py_pi_library.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/python_wheel_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/queue_settings.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/r_cran_library.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/run_if.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/run_job_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/runtime_engine.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/s3_storage_info.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/source.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/spark_jar_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/spark_python_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/spark_submit_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/sql_task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/sql_task_alert.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/sql_task_dashboard.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/sql_task_file.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/sql_task_query.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/sql_task_subscription.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/storage_mode.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/subscription.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/subscription_subscriber.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/table_update_trigger_configuration.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/task.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/task_dependency.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/task_email_notifications.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/task_notification_settings.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/task_retry_mode.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/trigger_settings.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/volumes_storage_info.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/webhook.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/webhook_notifications.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/workload_type.py (100%) rename {experimental/python => python}/databricks/bundles/jobs/_models/workspace_storage_info.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/__init__.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/adlsgen2_info.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/aws_attributes.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/aws_availability.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/azure_attributes.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/azure_availability.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/cluster_log_conf.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/day_of_week.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/dbfs_storage_info.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/ebs_volume_type.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/event_log_spec.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/file_library.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/filters.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/gcp_attributes.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/gcp_availability.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/gcs_storage_info.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/ingestion_config.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/ingestion_gateway_pipeline_definition.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/ingestion_pipeline_definition.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_table_specific_config_query_based_connector_config.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_workday_report_parameters.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_workday_report_parameters_query_key_value.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/init_script_info.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/lifecycle.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/local_file_info.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/log_analytics_info.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/maven_library.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/notebook_library.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/notifications.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/path_pattern.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/pipeline.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/pipeline_cluster.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/pipeline_cluster_autoscale.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/pipeline_cluster_autoscale_mode.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/pipeline_library.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/pipeline_permission.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/pipeline_permission_level.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/pipelines_environment.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/postgres_catalog_config.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/postgres_slot_config.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/report_spec.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/restart_window.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/run_as.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/s3_storage_info.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/schema_spec.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/source_catalog_config.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/source_config.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/table_spec.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/table_specific_config.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/table_specific_config_scd_type.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/volumes_storage_info.py (100%) rename {experimental/python => python}/databricks/bundles/pipelines/_models/workspace_storage_info.py (100%) rename {experimental/python => python}/databricks/bundles/py.typed (100%) rename {experimental/python => python}/databricks/bundles/schemas/__init__.py (100%) rename {experimental/python => python}/databricks/bundles/schemas/_models/lifecycle.py (100%) rename {experimental/python => python}/databricks/bundles/schemas/_models/schema.py (100%) rename {experimental/python => python}/databricks/bundles/schemas/_models/schema_grant.py (100%) rename {experimental/python => python}/databricks/bundles/schemas/_models/schema_grant_privilege.py (100%) rename {experimental/python => python}/databricks/bundles/version.py (100%) rename {experimental/python => python}/databricks/bundles/volumes/__init__.py (100%) rename {experimental/python => python}/databricks/bundles/volumes/_models/lifecycle.py (100%) rename {experimental/python => python}/databricks/bundles/volumes/_models/volume.py (100%) rename {experimental/python => python}/databricks/bundles/volumes/_models/volume_grant.py (100%) rename {experimental/python => python}/databricks/bundles/volumes/_models/volume_grant_privilege.py (100%) rename {experimental/python => python}/databricks/bundles/volumes/_models/volume_type.py (100%) rename {experimental/python => python}/databricks_tests/__init__.py (100%) rename {experimental/python => python}/databricks_tests/bundles/test_hello_world.py (100%) rename {experimental/python => python}/databricks_tests/core/test_bundle.py (100%) rename {experimental/python => python}/databricks_tests/core/test_diagnostics.py (100%) rename {experimental/python => python}/databricks_tests/core/test_import.py (100%) rename {experimental/python => python}/databricks_tests/core/test_load.py (100%) rename {experimental/python => python}/databricks_tests/core/test_location.py (100%) rename {experimental/python => python}/databricks_tests/core/test_resources.py (100%) rename {experimental/python => python}/databricks_tests/core/test_transform.py (100%) rename {experimental/python => python}/databricks_tests/core/test_transform_to_json.py (100%) rename {experimental/python => python}/databricks_tests/core/test_transform_variable.py (100%) rename {experimental/python => python}/databricks_tests/core/test_variable.py (100%) rename {experimental/python => python}/databricks_tests/fixtures/__init__.py (100%) rename {experimental/python => python}/databricks_tests/fixtures/dummy_module.py (100%) rename {experimental/python => python}/databricks_tests/fixtures/error_module.py (100%) rename {experimental/python => python}/databricks_tests/test_build.py (100%) rename {experimental/python => python}/docs/conf.py (100%) rename {experimental/python => python}/docs/databricks.bundles.core.rst (100%) rename {experimental/python => python}/docs/databricks.bundles.jobs.rst (100%) rename {experimental/python => python}/docs/databricks.bundles.pipelines.rst (100%) rename {experimental/python => python}/docs/databricks.bundles.schemas.rst (100%) rename {experimental/python => python}/docs/databricks.bundles.volumes.rst (100%) rename {experimental/python => python}/docs/ext/autodoc_databricks_bundles.py (100%) rename {experimental/python => python}/docs/images/databricks-logo.svg (100%) rename {experimental/python => python}/docs/index.rst (100%) rename {experimental/python => python}/pyproject.toml (100%) rename {experimental/python => python}/uv.lock (100%) diff --git a/.codegen.json b/.codegen.json index 484b30aa2a..175688cecc 100644 --- a/.codegen.json +++ b/.codegen.json @@ -3,10 +3,10 @@ "api_changelog": true, "formatter": "go run golang.org/x/tools/cmd/goimports@latest -w $FILENAMES && go fmt ./...", "version": { - "experimental/python/README.md": "version $VERSION or above", - "experimental/python/databricks/bundles/version.py": "__version__ = \"$VERSION\"", - "experimental/python/pyproject.toml": "version = \"$VERSION\"", - "experimental/python/uv.lock": "name = \"databricks-bundles\"\nversion = \"$VERSION\"", + "python/README.md": "version $VERSION or above", + "python/databricks/bundles/version.py": "__version__ = \"$VERSION\"", + "python/pyproject.toml": "version = \"$VERSION\"", + "python/uv.lock": "name = \"databricks-bundles\"\nversion = \"$VERSION\"", "libs/template/templates/experimental-jobs-as-code/library/versions.tmpl": "{{define \"latest_databricks_bundles_version\" -}}$VERSION{{- end}}", "libs/template/templates/default/library/versions.tmpl": "{{define \"latest_databricks_bundles_version\" -}}$VERSION{{- end}}" }, diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 56e0d3aa9f..c7932a867f 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -214,12 +214,12 @@ jobs: version: "0.6.5" - name: Verify that python/codegen is up to date - working-directory: experimental/python + working-directory: python run: |- make codegen if ! ( git diff --exit-code ); then - echo "Generated Python code is not up-to-date. Please run 'pushd experimental/python && make codegen' and commit the changes." + echo "Generated Python code is not up-to-date. Please run 'pushd python && make codegen' and commit the changes." exit 1 fi diff --git a/.github/workflows/python_push.yml b/.github/workflows/python_push.yml index 5de633321f..9601732740 100644 --- a/.github/workflows/python_push.yml +++ b/.github/workflows/python_push.yml @@ -4,11 +4,11 @@ on: pull_request: types: [opened, synchronize] paths: - - experimental/python/** + - python/** merge_group: types: [checks_requested] paths: - - experimental/python/** + - python/** push: # Always run on push to main. The build cache can only be reused # if it was saved by a run from the repository's default branch. @@ -39,7 +39,7 @@ jobs: version: "0.6.5" - name: Run tests - working-directory: experimental/python + working-directory: python run: make test python_linters: @@ -56,7 +56,7 @@ jobs: version: "0.6.5" - name: Run lint - working-directory: experimental/python + working-directory: python run: make lint python_docs: @@ -73,5 +73,5 @@ jobs: version: "0.6.5" - name: Run docs - working-directory: experimental/python + working-directory: python run: make docs diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index aca2d33880..97c86a037a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -183,10 +183,10 @@ jobs: version: "0.6.5" - name: Build wheel - working-directory: experimental/python + working-directory: python run: make build - name: Publish package distributions to PyPI uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0 with: - packages-dir: experimental/python/dist + packages-dir: python/dist diff --git a/.wsignore b/.wsignore index 76279e3073..0be6584879 100644 --- a/.wsignore +++ b/.wsignore @@ -3,7 +3,7 @@ .codegen/_openapi_sha .release_metadata.json bundle/schema/jsonschema.json -experimental/python/docs/images/databricks-logo.svg +python/docs/images/databricks-logo.svg **/*.dist-info/METADATA **/*.dist-info/WHEEL @@ -25,7 +25,7 @@ cmd/workspace/**/*.go cmd/account/**/*.go # Extra whitespace in generated Python models -experimental/python/databricks/bundles/*/_models/*.py +python/databricks/bundles/*/_models/*.py # Developed elsewhere: internal/genkit/tagging.py diff --git a/acceptance/acceptance_test.go b/acceptance/acceptance_test.go index 7a5209601e..7c0ccaea27 100644 --- a/acceptance/acceptance_test.go +++ b/acceptance/acceptance_test.go @@ -1241,7 +1241,7 @@ func buildDatabricksBundlesWheel(t *testing.T, buildDir string) string { // so we prepare here by keeping only one. _ = prepareWheelBuildDirectory(t, buildDir) - RunCommand(t, []string{"uv", "build", "--no-cache", "-q", "--wheel", "--out-dir", buildDir}, "../experimental/python") + RunCommand(t, []string{"uv", "build", "--no-cache", "-q", "--wheel", "--out-dir", buildDir}, "../python") latestWheel := prepareWheelBuildDirectory(t, buildDir) if latestWheel == "" { diff --git a/bundle/config/mutator/python/python_mutator_test.go b/bundle/config/mutator/python/python_mutator_test.go index db52ace807..285d1b3b87 100644 --- a/bundle/config/mutator/python/python_mutator_test.go +++ b/bundle/config/mutator/python/python_mutator_test.go @@ -394,7 +394,7 @@ func TestGetOps_PyDABs(t *testing.T) { }, }, PythonMutatorPhaseLoadResources) - assert.Error(t, err, "experimental/pydabs is deprecated, use experimental/python instead (https://docs.databricks.com/dev-tools/bundles/python)") + assert.Error(t, err, "experimental/pydabs is deprecated, use python instead (https://docs.databricks.com/dev-tools/bundles/python)") } func TestGetOps_empty(t *testing.T) { diff --git a/libs/dyn/dynvar/ref.go b/libs/dyn/dynvar/ref.go index 0bce2a4405..a048c80cb8 100644 --- a/libs/dyn/dynvar/ref.go +++ b/libs/dyn/dynvar/ref.go @@ -10,7 +10,7 @@ import ( var ( // !!! Should be in sync with _variable_regex in Python code. // !!! - // !!! See experimental/python/databricks/bundles/core/_transform.py + // !!! See python/databricks/bundles/core/_transform.py baseVarDef = `[a-zA-Z]+([-_]*[a-zA-Z0-9]+)*` re = regexp.MustCompile(fmt.Sprintf(`\$\{(%s(\.%s(\[[0-9]+\])*)*(\[[0-9]+\])*)\}`, baseVarDef, baseVarDef)) ) diff --git a/experimental/python/.gitignore b/python/.gitignore similarity index 100% rename from experimental/python/.gitignore rename to python/.gitignore diff --git a/experimental/python/LICENSE b/python/LICENSE similarity index 100% rename from experimental/python/LICENSE rename to python/LICENSE diff --git a/experimental/python/Makefile b/python/Makefile similarity index 100% rename from experimental/python/Makefile rename to python/Makefile diff --git a/experimental/python/README.md b/python/README.md similarity index 97% rename from experimental/python/README.md rename to python/README.md index 556a3878b9..2a86f47c12 100644 --- a/experimental/python/README.md +++ b/python/README.md @@ -7,7 +7,7 @@ Python for Databricks Asset Bundles extends [Databricks Asset Bundles](https://d Documentation is available at https://docs.databricks.com/dev-tools/cli/databricks-cli.html. -Reference documentation is available at https://databricks.github.io/cli/experimental/python/ +Reference documentation is available at https://databricks.github.io/cli/python/ ## Getting started diff --git a/experimental/python/codegen/codegen/code_builder.py b/python/codegen/codegen/code_builder.py similarity index 100% rename from experimental/python/codegen/codegen/code_builder.py rename to python/codegen/codegen/code_builder.py diff --git a/experimental/python/codegen/codegen/generated_dataclass.py b/python/codegen/codegen/generated_dataclass.py similarity index 100% rename from experimental/python/codegen/codegen/generated_dataclass.py rename to python/codegen/codegen/generated_dataclass.py diff --git a/experimental/python/codegen/codegen/generated_dataclass_patch.py b/python/codegen/codegen/generated_dataclass_patch.py similarity index 100% rename from experimental/python/codegen/codegen/generated_dataclass_patch.py rename to python/codegen/codegen/generated_dataclass_patch.py diff --git a/experimental/python/codegen/codegen/generated_enum.py b/python/codegen/codegen/generated_enum.py similarity index 100% rename from experimental/python/codegen/codegen/generated_enum.py rename to python/codegen/codegen/generated_enum.py diff --git a/experimental/python/codegen/codegen/generated_imports.py b/python/codegen/codegen/generated_imports.py similarity index 100% rename from experimental/python/codegen/codegen/generated_imports.py rename to python/codegen/codegen/generated_imports.py diff --git a/experimental/python/codegen/codegen/jsonschema.py b/python/codegen/codegen/jsonschema.py similarity index 95% rename from experimental/python/codegen/codegen/jsonschema.py rename to python/codegen/codegen/jsonschema.py index f07f8d2d1d..ceed9203e7 100644 --- a/experimental/python/codegen/codegen/jsonschema.py +++ b/python/codegen/codegen/jsonschema.py @@ -124,10 +124,9 @@ def _parse_bool(value) -> Optional[bool]: def _load_spec() -> dict: path = ( - Path(__file__).parent # ./experimental/python/codegen/codegen - / ".." # ./experimental/python/codegen - / ".." # ./experimental/python/ - / ".." # ./experimental + Path(__file__).parent # ./python/codegen/codegen + / ".." # ./python/codegen + / ".." # ./python/ / ".." # ./ / "./bundle/schema/jsonschema.json" ) diff --git a/experimental/python/codegen/codegen/jsonschema_patch.py b/python/codegen/codegen/jsonschema_patch.py similarity index 100% rename from experimental/python/codegen/codegen/jsonschema_patch.py rename to python/codegen/codegen/jsonschema_patch.py diff --git a/experimental/python/codegen/codegen/main.py b/python/codegen/codegen/main.py similarity index 100% rename from experimental/python/codegen/codegen/main.py rename to python/codegen/codegen/main.py diff --git a/experimental/python/codegen/codegen/packages.py b/python/codegen/codegen/packages.py similarity index 100% rename from experimental/python/codegen/codegen/packages.py rename to python/codegen/codegen/packages.py diff --git a/experimental/python/codegen/codegen_tests/__init__.py b/python/codegen/codegen_tests/__init__.py similarity index 100% rename from experimental/python/codegen/codegen_tests/__init__.py rename to python/codegen/codegen_tests/__init__.py diff --git a/experimental/python/codegen/codegen_tests/test_generated_dataclass.py b/python/codegen/codegen_tests/test_generated_dataclass.py similarity index 100% rename from experimental/python/codegen/codegen_tests/test_generated_dataclass.py rename to python/codegen/codegen_tests/test_generated_dataclass.py diff --git a/experimental/python/codegen/codegen_tests/test_generated_enum.py b/python/codegen/codegen_tests/test_generated_enum.py similarity index 100% rename from experimental/python/codegen/codegen_tests/test_generated_enum.py rename to python/codegen/codegen_tests/test_generated_enum.py diff --git a/experimental/python/codegen/codegen_tests/test_jsonschema.py b/python/codegen/codegen_tests/test_jsonschema.py similarity index 100% rename from experimental/python/codegen/codegen_tests/test_jsonschema.py rename to python/codegen/codegen_tests/test_jsonschema.py diff --git a/experimental/python/codegen/pyproject.toml b/python/codegen/pyproject.toml similarity index 100% rename from experimental/python/codegen/pyproject.toml rename to python/codegen/pyproject.toml diff --git a/experimental/python/codegen/uv.lock b/python/codegen/uv.lock similarity index 100% rename from experimental/python/codegen/uv.lock rename to python/codegen/uv.lock diff --git a/experimental/python/databricks/__init__.py b/python/databricks/__init__.py similarity index 100% rename from experimental/python/databricks/__init__.py rename to python/databricks/__init__.py diff --git a/experimental/python/databricks/bundles/__init__.py b/python/databricks/bundles/__init__.py similarity index 100% rename from experimental/python/databricks/bundles/__init__.py rename to python/databricks/bundles/__init__.py diff --git a/experimental/python/databricks/bundles/build.py b/python/databricks/bundles/build.py similarity index 99% rename from experimental/python/databricks/bundles/build.py rename to python/databricks/bundles/build.py index b058e4510b..8f7166128e 100644 --- a/experimental/python/databricks/bundles/build.py +++ b/python/databricks/bundles/build.py @@ -173,7 +173,7 @@ def _read_conf(input: dict) -> tuple[_Conf, Diagnostics]: return ( _Conf(), Diagnostics.create_error( - "'experimental/pydabs' is not supported by 'databricks-bundles', use 'experimental/python' instead", + "'experimental/pydabs' is not supported by 'databricks-bundles', use 'python' instead", detail="", location=None, path=("experimental", "pydabs"), diff --git a/experimental/python/databricks/bundles/core/__init__.py b/python/databricks/bundles/core/__init__.py similarity index 100% rename from experimental/python/databricks/bundles/core/__init__.py rename to python/databricks/bundles/core/__init__.py diff --git a/experimental/python/databricks/bundles/core/_bundle.py b/python/databricks/bundles/core/_bundle.py similarity index 100% rename from experimental/python/databricks/bundles/core/_bundle.py rename to python/databricks/bundles/core/_bundle.py diff --git a/experimental/python/databricks/bundles/core/_diagnostics.py b/python/databricks/bundles/core/_diagnostics.py similarity index 100% rename from experimental/python/databricks/bundles/core/_diagnostics.py rename to python/databricks/bundles/core/_diagnostics.py diff --git a/experimental/python/databricks/bundles/core/_load.py b/python/databricks/bundles/core/_load.py similarity index 100% rename from experimental/python/databricks/bundles/core/_load.py rename to python/databricks/bundles/core/_load.py diff --git a/experimental/python/databricks/bundles/core/_location.py b/python/databricks/bundles/core/_location.py similarity index 100% rename from experimental/python/databricks/bundles/core/_location.py rename to python/databricks/bundles/core/_location.py diff --git a/experimental/python/databricks/bundles/core/_resource.py b/python/databricks/bundles/core/_resource.py similarity index 100% rename from experimental/python/databricks/bundles/core/_resource.py rename to python/databricks/bundles/core/_resource.py diff --git a/experimental/python/databricks/bundles/core/_resource_mutator.py b/python/databricks/bundles/core/_resource_mutator.py similarity index 100% rename from experimental/python/databricks/bundles/core/_resource_mutator.py rename to python/databricks/bundles/core/_resource_mutator.py diff --git a/experimental/python/databricks/bundles/core/_resource_type.py b/python/databricks/bundles/core/_resource_type.py similarity index 100% rename from experimental/python/databricks/bundles/core/_resource_type.py rename to python/databricks/bundles/core/_resource_type.py diff --git a/experimental/python/databricks/bundles/core/_resources.py b/python/databricks/bundles/core/_resources.py similarity index 100% rename from experimental/python/databricks/bundles/core/_resources.py rename to python/databricks/bundles/core/_resources.py diff --git a/experimental/python/databricks/bundles/core/_transform.py b/python/databricks/bundles/core/_transform.py similarity index 100% rename from experimental/python/databricks/bundles/core/_transform.py rename to python/databricks/bundles/core/_transform.py diff --git a/experimental/python/databricks/bundles/core/_transform_to_json.py b/python/databricks/bundles/core/_transform_to_json.py similarity index 100% rename from experimental/python/databricks/bundles/core/_transform_to_json.py rename to python/databricks/bundles/core/_transform_to_json.py diff --git a/experimental/python/databricks/bundles/core/_variable.py b/python/databricks/bundles/core/_variable.py similarity index 100% rename from experimental/python/databricks/bundles/core/_variable.py rename to python/databricks/bundles/core/_variable.py diff --git a/experimental/python/databricks/bundles/jobs/__init__.py b/python/databricks/bundles/jobs/__init__.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/__init__.py rename to python/databricks/bundles/jobs/__init__.py diff --git a/experimental/python/databricks/bundles/jobs/_models/adlsgen2_info.py b/python/databricks/bundles/jobs/_models/adlsgen2_info.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/adlsgen2_info.py rename to python/databricks/bundles/jobs/_models/adlsgen2_info.py diff --git a/experimental/python/databricks/bundles/jobs/_models/authentication_method.py b/python/databricks/bundles/jobs/_models/authentication_method.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/authentication_method.py rename to python/databricks/bundles/jobs/_models/authentication_method.py diff --git a/experimental/python/databricks/bundles/jobs/_models/auto_scale.py b/python/databricks/bundles/jobs/_models/auto_scale.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/auto_scale.py rename to python/databricks/bundles/jobs/_models/auto_scale.py diff --git a/experimental/python/databricks/bundles/jobs/_models/aws_attributes.py b/python/databricks/bundles/jobs/_models/aws_attributes.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/aws_attributes.py rename to python/databricks/bundles/jobs/_models/aws_attributes.py diff --git a/experimental/python/databricks/bundles/jobs/_models/aws_availability.py b/python/databricks/bundles/jobs/_models/aws_availability.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/aws_availability.py rename to python/databricks/bundles/jobs/_models/aws_availability.py diff --git a/experimental/python/databricks/bundles/jobs/_models/azure_attributes.py b/python/databricks/bundles/jobs/_models/azure_attributes.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/azure_attributes.py rename to python/databricks/bundles/jobs/_models/azure_attributes.py diff --git a/experimental/python/databricks/bundles/jobs/_models/azure_availability.py b/python/databricks/bundles/jobs/_models/azure_availability.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/azure_availability.py rename to python/databricks/bundles/jobs/_models/azure_availability.py diff --git a/experimental/python/databricks/bundles/jobs/_models/clean_rooms_notebook_task.py b/python/databricks/bundles/jobs/_models/clean_rooms_notebook_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/clean_rooms_notebook_task.py rename to python/databricks/bundles/jobs/_models/clean_rooms_notebook_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/clients_types.py b/python/databricks/bundles/jobs/_models/clients_types.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/clients_types.py rename to python/databricks/bundles/jobs/_models/clients_types.py diff --git a/experimental/python/databricks/bundles/jobs/_models/cluster_log_conf.py b/python/databricks/bundles/jobs/_models/cluster_log_conf.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/cluster_log_conf.py rename to python/databricks/bundles/jobs/_models/cluster_log_conf.py diff --git a/experimental/python/databricks/bundles/jobs/_models/cluster_spec.py b/python/databricks/bundles/jobs/_models/cluster_spec.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/cluster_spec.py rename to python/databricks/bundles/jobs/_models/cluster_spec.py diff --git a/experimental/python/databricks/bundles/jobs/_models/compute_config.py b/python/databricks/bundles/jobs/_models/compute_config.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/compute_config.py rename to python/databricks/bundles/jobs/_models/compute_config.py diff --git a/experimental/python/databricks/bundles/jobs/_models/condition.py b/python/databricks/bundles/jobs/_models/condition.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/condition.py rename to python/databricks/bundles/jobs/_models/condition.py diff --git a/experimental/python/databricks/bundles/jobs/_models/condition_task.py b/python/databricks/bundles/jobs/_models/condition_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/condition_task.py rename to python/databricks/bundles/jobs/_models/condition_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/condition_task_op.py b/python/databricks/bundles/jobs/_models/condition_task_op.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/condition_task_op.py rename to python/databricks/bundles/jobs/_models/condition_task_op.py diff --git a/experimental/python/databricks/bundles/jobs/_models/continuous.py b/python/databricks/bundles/jobs/_models/continuous.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/continuous.py rename to python/databricks/bundles/jobs/_models/continuous.py diff --git a/experimental/python/databricks/bundles/jobs/_models/cron_schedule.py b/python/databricks/bundles/jobs/_models/cron_schedule.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/cron_schedule.py rename to python/databricks/bundles/jobs/_models/cron_schedule.py diff --git a/experimental/python/databricks/bundles/jobs/_models/dashboard_task.py b/python/databricks/bundles/jobs/_models/dashboard_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/dashboard_task.py rename to python/databricks/bundles/jobs/_models/dashboard_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/data_security_mode.py b/python/databricks/bundles/jobs/_models/data_security_mode.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/data_security_mode.py rename to python/databricks/bundles/jobs/_models/data_security_mode.py diff --git a/experimental/python/databricks/bundles/jobs/_models/dbfs_storage_info.py b/python/databricks/bundles/jobs/_models/dbfs_storage_info.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/dbfs_storage_info.py rename to python/databricks/bundles/jobs/_models/dbfs_storage_info.py diff --git a/experimental/python/databricks/bundles/jobs/_models/dbt_platform_task.py b/python/databricks/bundles/jobs/_models/dbt_platform_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/dbt_platform_task.py rename to python/databricks/bundles/jobs/_models/dbt_platform_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/dbt_task.py b/python/databricks/bundles/jobs/_models/dbt_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/dbt_task.py rename to python/databricks/bundles/jobs/_models/dbt_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/docker_basic_auth.py b/python/databricks/bundles/jobs/_models/docker_basic_auth.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/docker_basic_auth.py rename to python/databricks/bundles/jobs/_models/docker_basic_auth.py diff --git a/experimental/python/databricks/bundles/jobs/_models/docker_image.py b/python/databricks/bundles/jobs/_models/docker_image.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/docker_image.py rename to python/databricks/bundles/jobs/_models/docker_image.py diff --git a/experimental/python/databricks/bundles/jobs/_models/ebs_volume_type.py b/python/databricks/bundles/jobs/_models/ebs_volume_type.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/ebs_volume_type.py rename to python/databricks/bundles/jobs/_models/ebs_volume_type.py diff --git a/experimental/python/databricks/bundles/jobs/_models/environment.py b/python/databricks/bundles/jobs/_models/environment.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/environment.py rename to python/databricks/bundles/jobs/_models/environment.py diff --git a/experimental/python/databricks/bundles/jobs/_models/file_arrival_trigger_configuration.py b/python/databricks/bundles/jobs/_models/file_arrival_trigger_configuration.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/file_arrival_trigger_configuration.py rename to python/databricks/bundles/jobs/_models/file_arrival_trigger_configuration.py diff --git a/experimental/python/databricks/bundles/jobs/_models/for_each_task.py b/python/databricks/bundles/jobs/_models/for_each_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/for_each_task.py rename to python/databricks/bundles/jobs/_models/for_each_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/gcp_attributes.py b/python/databricks/bundles/jobs/_models/gcp_attributes.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/gcp_attributes.py rename to python/databricks/bundles/jobs/_models/gcp_attributes.py diff --git a/experimental/python/databricks/bundles/jobs/_models/gcp_availability.py b/python/databricks/bundles/jobs/_models/gcp_availability.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/gcp_availability.py rename to python/databricks/bundles/jobs/_models/gcp_availability.py diff --git a/experimental/python/databricks/bundles/jobs/_models/gcs_storage_info.py b/python/databricks/bundles/jobs/_models/gcs_storage_info.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/gcs_storage_info.py rename to python/databricks/bundles/jobs/_models/gcs_storage_info.py diff --git a/experimental/python/databricks/bundles/jobs/_models/gen_ai_compute_task.py b/python/databricks/bundles/jobs/_models/gen_ai_compute_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/gen_ai_compute_task.py rename to python/databricks/bundles/jobs/_models/gen_ai_compute_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/git_provider.py b/python/databricks/bundles/jobs/_models/git_provider.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/git_provider.py rename to python/databricks/bundles/jobs/_models/git_provider.py diff --git a/experimental/python/databricks/bundles/jobs/_models/git_source.py b/python/databricks/bundles/jobs/_models/git_source.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/git_source.py rename to python/databricks/bundles/jobs/_models/git_source.py diff --git a/experimental/python/databricks/bundles/jobs/_models/init_script_info.py b/python/databricks/bundles/jobs/_models/init_script_info.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/init_script_info.py rename to python/databricks/bundles/jobs/_models/init_script_info.py diff --git a/experimental/python/databricks/bundles/jobs/_models/job.py b/python/databricks/bundles/jobs/_models/job.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/job.py rename to python/databricks/bundles/jobs/_models/job.py diff --git a/experimental/python/databricks/bundles/jobs/_models/job_cluster.py b/python/databricks/bundles/jobs/_models/job_cluster.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/job_cluster.py rename to python/databricks/bundles/jobs/_models/job_cluster.py diff --git a/experimental/python/databricks/bundles/jobs/_models/job_email_notifications.py b/python/databricks/bundles/jobs/_models/job_email_notifications.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/job_email_notifications.py rename to python/databricks/bundles/jobs/_models/job_email_notifications.py diff --git a/experimental/python/databricks/bundles/jobs/_models/job_environment.py b/python/databricks/bundles/jobs/_models/job_environment.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/job_environment.py rename to python/databricks/bundles/jobs/_models/job_environment.py diff --git a/experimental/python/databricks/bundles/jobs/_models/job_notification_settings.py b/python/databricks/bundles/jobs/_models/job_notification_settings.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/job_notification_settings.py rename to python/databricks/bundles/jobs/_models/job_notification_settings.py diff --git a/experimental/python/databricks/bundles/jobs/_models/job_parameter_definition.py b/python/databricks/bundles/jobs/_models/job_parameter_definition.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/job_parameter_definition.py rename to python/databricks/bundles/jobs/_models/job_parameter_definition.py diff --git a/experimental/python/databricks/bundles/jobs/_models/job_permission.py b/python/databricks/bundles/jobs/_models/job_permission.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/job_permission.py rename to python/databricks/bundles/jobs/_models/job_permission.py diff --git a/experimental/python/databricks/bundles/jobs/_models/job_permission_level.py b/python/databricks/bundles/jobs/_models/job_permission_level.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/job_permission_level.py rename to python/databricks/bundles/jobs/_models/job_permission_level.py diff --git a/experimental/python/databricks/bundles/jobs/_models/job_run_as.py b/python/databricks/bundles/jobs/_models/job_run_as.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/job_run_as.py rename to python/databricks/bundles/jobs/_models/job_run_as.py diff --git a/experimental/python/databricks/bundles/jobs/_models/jobs_health_metric.py b/python/databricks/bundles/jobs/_models/jobs_health_metric.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/jobs_health_metric.py rename to python/databricks/bundles/jobs/_models/jobs_health_metric.py diff --git a/experimental/python/databricks/bundles/jobs/_models/jobs_health_operator.py b/python/databricks/bundles/jobs/_models/jobs_health_operator.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/jobs_health_operator.py rename to python/databricks/bundles/jobs/_models/jobs_health_operator.py diff --git a/experimental/python/databricks/bundles/jobs/_models/jobs_health_rule.py b/python/databricks/bundles/jobs/_models/jobs_health_rule.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/jobs_health_rule.py rename to python/databricks/bundles/jobs/_models/jobs_health_rule.py diff --git a/experimental/python/databricks/bundles/jobs/_models/jobs_health_rules.py b/python/databricks/bundles/jobs/_models/jobs_health_rules.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/jobs_health_rules.py rename to python/databricks/bundles/jobs/_models/jobs_health_rules.py diff --git a/experimental/python/databricks/bundles/jobs/_models/kind.py b/python/databricks/bundles/jobs/_models/kind.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/kind.py rename to python/databricks/bundles/jobs/_models/kind.py diff --git a/experimental/python/databricks/bundles/jobs/_models/library.py b/python/databricks/bundles/jobs/_models/library.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/library.py rename to python/databricks/bundles/jobs/_models/library.py diff --git a/experimental/python/databricks/bundles/jobs/_models/lifecycle.py b/python/databricks/bundles/jobs/_models/lifecycle.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/lifecycle.py rename to python/databricks/bundles/jobs/_models/lifecycle.py diff --git a/experimental/python/databricks/bundles/jobs/_models/local_file_info.py b/python/databricks/bundles/jobs/_models/local_file_info.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/local_file_info.py rename to python/databricks/bundles/jobs/_models/local_file_info.py diff --git a/experimental/python/databricks/bundles/jobs/_models/log_analytics_info.py b/python/databricks/bundles/jobs/_models/log_analytics_info.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/log_analytics_info.py rename to python/databricks/bundles/jobs/_models/log_analytics_info.py diff --git a/experimental/python/databricks/bundles/jobs/_models/maven_library.py b/python/databricks/bundles/jobs/_models/maven_library.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/maven_library.py rename to python/databricks/bundles/jobs/_models/maven_library.py diff --git a/experimental/python/databricks/bundles/jobs/_models/notebook_task.py b/python/databricks/bundles/jobs/_models/notebook_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/notebook_task.py rename to python/databricks/bundles/jobs/_models/notebook_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/pause_status.py b/python/databricks/bundles/jobs/_models/pause_status.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/pause_status.py rename to python/databricks/bundles/jobs/_models/pause_status.py diff --git a/experimental/python/databricks/bundles/jobs/_models/performance_target.py b/python/databricks/bundles/jobs/_models/performance_target.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/performance_target.py rename to python/databricks/bundles/jobs/_models/performance_target.py diff --git a/experimental/python/databricks/bundles/jobs/_models/periodic_trigger_configuration.py b/python/databricks/bundles/jobs/_models/periodic_trigger_configuration.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/periodic_trigger_configuration.py rename to python/databricks/bundles/jobs/_models/periodic_trigger_configuration.py diff --git a/experimental/python/databricks/bundles/jobs/_models/periodic_trigger_configuration_time_unit.py b/python/databricks/bundles/jobs/_models/periodic_trigger_configuration_time_unit.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/periodic_trigger_configuration_time_unit.py rename to python/databricks/bundles/jobs/_models/periodic_trigger_configuration_time_unit.py diff --git a/experimental/python/databricks/bundles/jobs/_models/pipeline_params.py b/python/databricks/bundles/jobs/_models/pipeline_params.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/pipeline_params.py rename to python/databricks/bundles/jobs/_models/pipeline_params.py diff --git a/experimental/python/databricks/bundles/jobs/_models/pipeline_task.py b/python/databricks/bundles/jobs/_models/pipeline_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/pipeline_task.py rename to python/databricks/bundles/jobs/_models/pipeline_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/power_bi_model.py b/python/databricks/bundles/jobs/_models/power_bi_model.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/power_bi_model.py rename to python/databricks/bundles/jobs/_models/power_bi_model.py diff --git a/experimental/python/databricks/bundles/jobs/_models/power_bi_table.py b/python/databricks/bundles/jobs/_models/power_bi_table.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/power_bi_table.py rename to python/databricks/bundles/jobs/_models/power_bi_table.py diff --git a/experimental/python/databricks/bundles/jobs/_models/power_bi_task.py b/python/databricks/bundles/jobs/_models/power_bi_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/power_bi_task.py rename to python/databricks/bundles/jobs/_models/power_bi_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/python_py_pi_library.py b/python/databricks/bundles/jobs/_models/python_py_pi_library.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/python_py_pi_library.py rename to python/databricks/bundles/jobs/_models/python_py_pi_library.py diff --git a/experimental/python/databricks/bundles/jobs/_models/python_wheel_task.py b/python/databricks/bundles/jobs/_models/python_wheel_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/python_wheel_task.py rename to python/databricks/bundles/jobs/_models/python_wheel_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/queue_settings.py b/python/databricks/bundles/jobs/_models/queue_settings.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/queue_settings.py rename to python/databricks/bundles/jobs/_models/queue_settings.py diff --git a/experimental/python/databricks/bundles/jobs/_models/r_cran_library.py b/python/databricks/bundles/jobs/_models/r_cran_library.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/r_cran_library.py rename to python/databricks/bundles/jobs/_models/r_cran_library.py diff --git a/experimental/python/databricks/bundles/jobs/_models/run_if.py b/python/databricks/bundles/jobs/_models/run_if.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/run_if.py rename to python/databricks/bundles/jobs/_models/run_if.py diff --git a/experimental/python/databricks/bundles/jobs/_models/run_job_task.py b/python/databricks/bundles/jobs/_models/run_job_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/run_job_task.py rename to python/databricks/bundles/jobs/_models/run_job_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/runtime_engine.py b/python/databricks/bundles/jobs/_models/runtime_engine.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/runtime_engine.py rename to python/databricks/bundles/jobs/_models/runtime_engine.py diff --git a/experimental/python/databricks/bundles/jobs/_models/s3_storage_info.py b/python/databricks/bundles/jobs/_models/s3_storage_info.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/s3_storage_info.py rename to python/databricks/bundles/jobs/_models/s3_storage_info.py diff --git a/experimental/python/databricks/bundles/jobs/_models/source.py b/python/databricks/bundles/jobs/_models/source.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/source.py rename to python/databricks/bundles/jobs/_models/source.py diff --git a/experimental/python/databricks/bundles/jobs/_models/spark_jar_task.py b/python/databricks/bundles/jobs/_models/spark_jar_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/spark_jar_task.py rename to python/databricks/bundles/jobs/_models/spark_jar_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/spark_python_task.py b/python/databricks/bundles/jobs/_models/spark_python_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/spark_python_task.py rename to python/databricks/bundles/jobs/_models/spark_python_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/spark_submit_task.py b/python/databricks/bundles/jobs/_models/spark_submit_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/spark_submit_task.py rename to python/databricks/bundles/jobs/_models/spark_submit_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/sql_task.py b/python/databricks/bundles/jobs/_models/sql_task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/sql_task.py rename to python/databricks/bundles/jobs/_models/sql_task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/sql_task_alert.py b/python/databricks/bundles/jobs/_models/sql_task_alert.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/sql_task_alert.py rename to python/databricks/bundles/jobs/_models/sql_task_alert.py diff --git a/experimental/python/databricks/bundles/jobs/_models/sql_task_dashboard.py b/python/databricks/bundles/jobs/_models/sql_task_dashboard.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/sql_task_dashboard.py rename to python/databricks/bundles/jobs/_models/sql_task_dashboard.py diff --git a/experimental/python/databricks/bundles/jobs/_models/sql_task_file.py b/python/databricks/bundles/jobs/_models/sql_task_file.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/sql_task_file.py rename to python/databricks/bundles/jobs/_models/sql_task_file.py diff --git a/experimental/python/databricks/bundles/jobs/_models/sql_task_query.py b/python/databricks/bundles/jobs/_models/sql_task_query.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/sql_task_query.py rename to python/databricks/bundles/jobs/_models/sql_task_query.py diff --git a/experimental/python/databricks/bundles/jobs/_models/sql_task_subscription.py b/python/databricks/bundles/jobs/_models/sql_task_subscription.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/sql_task_subscription.py rename to python/databricks/bundles/jobs/_models/sql_task_subscription.py diff --git a/experimental/python/databricks/bundles/jobs/_models/storage_mode.py b/python/databricks/bundles/jobs/_models/storage_mode.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/storage_mode.py rename to python/databricks/bundles/jobs/_models/storage_mode.py diff --git a/experimental/python/databricks/bundles/jobs/_models/subscription.py b/python/databricks/bundles/jobs/_models/subscription.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/subscription.py rename to python/databricks/bundles/jobs/_models/subscription.py diff --git a/experimental/python/databricks/bundles/jobs/_models/subscription_subscriber.py b/python/databricks/bundles/jobs/_models/subscription_subscriber.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/subscription_subscriber.py rename to python/databricks/bundles/jobs/_models/subscription_subscriber.py diff --git a/experimental/python/databricks/bundles/jobs/_models/table_update_trigger_configuration.py b/python/databricks/bundles/jobs/_models/table_update_trigger_configuration.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/table_update_trigger_configuration.py rename to python/databricks/bundles/jobs/_models/table_update_trigger_configuration.py diff --git a/experimental/python/databricks/bundles/jobs/_models/task.py b/python/databricks/bundles/jobs/_models/task.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/task.py rename to python/databricks/bundles/jobs/_models/task.py diff --git a/experimental/python/databricks/bundles/jobs/_models/task_dependency.py b/python/databricks/bundles/jobs/_models/task_dependency.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/task_dependency.py rename to python/databricks/bundles/jobs/_models/task_dependency.py diff --git a/experimental/python/databricks/bundles/jobs/_models/task_email_notifications.py b/python/databricks/bundles/jobs/_models/task_email_notifications.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/task_email_notifications.py rename to python/databricks/bundles/jobs/_models/task_email_notifications.py diff --git a/experimental/python/databricks/bundles/jobs/_models/task_notification_settings.py b/python/databricks/bundles/jobs/_models/task_notification_settings.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/task_notification_settings.py rename to python/databricks/bundles/jobs/_models/task_notification_settings.py diff --git a/experimental/python/databricks/bundles/jobs/_models/task_retry_mode.py b/python/databricks/bundles/jobs/_models/task_retry_mode.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/task_retry_mode.py rename to python/databricks/bundles/jobs/_models/task_retry_mode.py diff --git a/experimental/python/databricks/bundles/jobs/_models/trigger_settings.py b/python/databricks/bundles/jobs/_models/trigger_settings.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/trigger_settings.py rename to python/databricks/bundles/jobs/_models/trigger_settings.py diff --git a/experimental/python/databricks/bundles/jobs/_models/volumes_storage_info.py b/python/databricks/bundles/jobs/_models/volumes_storage_info.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/volumes_storage_info.py rename to python/databricks/bundles/jobs/_models/volumes_storage_info.py diff --git a/experimental/python/databricks/bundles/jobs/_models/webhook.py b/python/databricks/bundles/jobs/_models/webhook.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/webhook.py rename to python/databricks/bundles/jobs/_models/webhook.py diff --git a/experimental/python/databricks/bundles/jobs/_models/webhook_notifications.py b/python/databricks/bundles/jobs/_models/webhook_notifications.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/webhook_notifications.py rename to python/databricks/bundles/jobs/_models/webhook_notifications.py diff --git a/experimental/python/databricks/bundles/jobs/_models/workload_type.py b/python/databricks/bundles/jobs/_models/workload_type.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/workload_type.py rename to python/databricks/bundles/jobs/_models/workload_type.py diff --git a/experimental/python/databricks/bundles/jobs/_models/workspace_storage_info.py b/python/databricks/bundles/jobs/_models/workspace_storage_info.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/workspace_storage_info.py rename to python/databricks/bundles/jobs/_models/workspace_storage_info.py diff --git a/experimental/python/databricks/bundles/pipelines/__init__.py b/python/databricks/bundles/pipelines/__init__.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/__init__.py rename to python/databricks/bundles/pipelines/__init__.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/adlsgen2_info.py b/python/databricks/bundles/pipelines/_models/adlsgen2_info.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/adlsgen2_info.py rename to python/databricks/bundles/pipelines/_models/adlsgen2_info.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/aws_attributes.py b/python/databricks/bundles/pipelines/_models/aws_attributes.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/aws_attributes.py rename to python/databricks/bundles/pipelines/_models/aws_attributes.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/aws_availability.py b/python/databricks/bundles/pipelines/_models/aws_availability.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/aws_availability.py rename to python/databricks/bundles/pipelines/_models/aws_availability.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/azure_attributes.py b/python/databricks/bundles/pipelines/_models/azure_attributes.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/azure_attributes.py rename to python/databricks/bundles/pipelines/_models/azure_attributes.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/azure_availability.py b/python/databricks/bundles/pipelines/_models/azure_availability.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/azure_availability.py rename to python/databricks/bundles/pipelines/_models/azure_availability.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/cluster_log_conf.py b/python/databricks/bundles/pipelines/_models/cluster_log_conf.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/cluster_log_conf.py rename to python/databricks/bundles/pipelines/_models/cluster_log_conf.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/day_of_week.py b/python/databricks/bundles/pipelines/_models/day_of_week.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/day_of_week.py rename to python/databricks/bundles/pipelines/_models/day_of_week.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/dbfs_storage_info.py b/python/databricks/bundles/pipelines/_models/dbfs_storage_info.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/dbfs_storage_info.py rename to python/databricks/bundles/pipelines/_models/dbfs_storage_info.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/ebs_volume_type.py b/python/databricks/bundles/pipelines/_models/ebs_volume_type.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/ebs_volume_type.py rename to python/databricks/bundles/pipelines/_models/ebs_volume_type.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/event_log_spec.py b/python/databricks/bundles/pipelines/_models/event_log_spec.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/event_log_spec.py rename to python/databricks/bundles/pipelines/_models/event_log_spec.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/file_library.py b/python/databricks/bundles/pipelines/_models/file_library.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/file_library.py rename to python/databricks/bundles/pipelines/_models/file_library.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/filters.py b/python/databricks/bundles/pipelines/_models/filters.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/filters.py rename to python/databricks/bundles/pipelines/_models/filters.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/gcp_attributes.py b/python/databricks/bundles/pipelines/_models/gcp_attributes.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/gcp_attributes.py rename to python/databricks/bundles/pipelines/_models/gcp_attributes.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/gcp_availability.py b/python/databricks/bundles/pipelines/_models/gcp_availability.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/gcp_availability.py rename to python/databricks/bundles/pipelines/_models/gcp_availability.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/gcs_storage_info.py b/python/databricks/bundles/pipelines/_models/gcs_storage_info.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/gcs_storage_info.py rename to python/databricks/bundles/pipelines/_models/gcs_storage_info.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/ingestion_config.py b/python/databricks/bundles/pipelines/_models/ingestion_config.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/ingestion_config.py rename to python/databricks/bundles/pipelines/_models/ingestion_config.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/ingestion_gateway_pipeline_definition.py b/python/databricks/bundles/pipelines/_models/ingestion_gateway_pipeline_definition.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/ingestion_gateway_pipeline_definition.py rename to python/databricks/bundles/pipelines/_models/ingestion_gateway_pipeline_definition.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition.py b/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition.py rename to python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_table_specific_config_query_based_connector_config.py b/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_table_specific_config_query_based_connector_config.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_table_specific_config_query_based_connector_config.py rename to python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_table_specific_config_query_based_connector_config.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_workday_report_parameters.py b/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_workday_report_parameters.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_workday_report_parameters.py rename to python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_workday_report_parameters.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_workday_report_parameters_query_key_value.py b/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_workday_report_parameters_query_key_value.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_workday_report_parameters_query_key_value.py rename to python/databricks/bundles/pipelines/_models/ingestion_pipeline_definition_workday_report_parameters_query_key_value.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/init_script_info.py b/python/databricks/bundles/pipelines/_models/init_script_info.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/init_script_info.py rename to python/databricks/bundles/pipelines/_models/init_script_info.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/lifecycle.py b/python/databricks/bundles/pipelines/_models/lifecycle.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/lifecycle.py rename to python/databricks/bundles/pipelines/_models/lifecycle.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/local_file_info.py b/python/databricks/bundles/pipelines/_models/local_file_info.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/local_file_info.py rename to python/databricks/bundles/pipelines/_models/local_file_info.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/log_analytics_info.py b/python/databricks/bundles/pipelines/_models/log_analytics_info.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/log_analytics_info.py rename to python/databricks/bundles/pipelines/_models/log_analytics_info.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/maven_library.py b/python/databricks/bundles/pipelines/_models/maven_library.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/maven_library.py rename to python/databricks/bundles/pipelines/_models/maven_library.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/notebook_library.py b/python/databricks/bundles/pipelines/_models/notebook_library.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/notebook_library.py rename to python/databricks/bundles/pipelines/_models/notebook_library.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/notifications.py b/python/databricks/bundles/pipelines/_models/notifications.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/notifications.py rename to python/databricks/bundles/pipelines/_models/notifications.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/path_pattern.py b/python/databricks/bundles/pipelines/_models/path_pattern.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/path_pattern.py rename to python/databricks/bundles/pipelines/_models/path_pattern.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/pipeline.py b/python/databricks/bundles/pipelines/_models/pipeline.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/pipeline.py rename to python/databricks/bundles/pipelines/_models/pipeline.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/pipeline_cluster.py b/python/databricks/bundles/pipelines/_models/pipeline_cluster.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/pipeline_cluster.py rename to python/databricks/bundles/pipelines/_models/pipeline_cluster.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/pipeline_cluster_autoscale.py b/python/databricks/bundles/pipelines/_models/pipeline_cluster_autoscale.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/pipeline_cluster_autoscale.py rename to python/databricks/bundles/pipelines/_models/pipeline_cluster_autoscale.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/pipeline_cluster_autoscale_mode.py b/python/databricks/bundles/pipelines/_models/pipeline_cluster_autoscale_mode.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/pipeline_cluster_autoscale_mode.py rename to python/databricks/bundles/pipelines/_models/pipeline_cluster_autoscale_mode.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/pipeline_library.py b/python/databricks/bundles/pipelines/_models/pipeline_library.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/pipeline_library.py rename to python/databricks/bundles/pipelines/_models/pipeline_library.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/pipeline_permission.py b/python/databricks/bundles/pipelines/_models/pipeline_permission.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/pipeline_permission.py rename to python/databricks/bundles/pipelines/_models/pipeline_permission.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/pipeline_permission_level.py b/python/databricks/bundles/pipelines/_models/pipeline_permission_level.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/pipeline_permission_level.py rename to python/databricks/bundles/pipelines/_models/pipeline_permission_level.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/pipelines_environment.py b/python/databricks/bundles/pipelines/_models/pipelines_environment.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/pipelines_environment.py rename to python/databricks/bundles/pipelines/_models/pipelines_environment.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/postgres_catalog_config.py b/python/databricks/bundles/pipelines/_models/postgres_catalog_config.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/postgres_catalog_config.py rename to python/databricks/bundles/pipelines/_models/postgres_catalog_config.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/postgres_slot_config.py b/python/databricks/bundles/pipelines/_models/postgres_slot_config.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/postgres_slot_config.py rename to python/databricks/bundles/pipelines/_models/postgres_slot_config.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/report_spec.py b/python/databricks/bundles/pipelines/_models/report_spec.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/report_spec.py rename to python/databricks/bundles/pipelines/_models/report_spec.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/restart_window.py b/python/databricks/bundles/pipelines/_models/restart_window.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/restart_window.py rename to python/databricks/bundles/pipelines/_models/restart_window.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/run_as.py b/python/databricks/bundles/pipelines/_models/run_as.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/run_as.py rename to python/databricks/bundles/pipelines/_models/run_as.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/s3_storage_info.py b/python/databricks/bundles/pipelines/_models/s3_storage_info.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/s3_storage_info.py rename to python/databricks/bundles/pipelines/_models/s3_storage_info.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/schema_spec.py b/python/databricks/bundles/pipelines/_models/schema_spec.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/schema_spec.py rename to python/databricks/bundles/pipelines/_models/schema_spec.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/source_catalog_config.py b/python/databricks/bundles/pipelines/_models/source_catalog_config.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/source_catalog_config.py rename to python/databricks/bundles/pipelines/_models/source_catalog_config.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/source_config.py b/python/databricks/bundles/pipelines/_models/source_config.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/source_config.py rename to python/databricks/bundles/pipelines/_models/source_config.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/table_spec.py b/python/databricks/bundles/pipelines/_models/table_spec.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/table_spec.py rename to python/databricks/bundles/pipelines/_models/table_spec.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/table_specific_config.py b/python/databricks/bundles/pipelines/_models/table_specific_config.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/table_specific_config.py rename to python/databricks/bundles/pipelines/_models/table_specific_config.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/table_specific_config_scd_type.py b/python/databricks/bundles/pipelines/_models/table_specific_config_scd_type.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/table_specific_config_scd_type.py rename to python/databricks/bundles/pipelines/_models/table_specific_config_scd_type.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/volumes_storage_info.py b/python/databricks/bundles/pipelines/_models/volumes_storage_info.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/volumes_storage_info.py rename to python/databricks/bundles/pipelines/_models/volumes_storage_info.py diff --git a/experimental/python/databricks/bundles/pipelines/_models/workspace_storage_info.py b/python/databricks/bundles/pipelines/_models/workspace_storage_info.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_models/workspace_storage_info.py rename to python/databricks/bundles/pipelines/_models/workspace_storage_info.py diff --git a/experimental/python/databricks/bundles/py.typed b/python/databricks/bundles/py.typed similarity index 100% rename from experimental/python/databricks/bundles/py.typed rename to python/databricks/bundles/py.typed diff --git a/experimental/python/databricks/bundles/schemas/__init__.py b/python/databricks/bundles/schemas/__init__.py similarity index 100% rename from experimental/python/databricks/bundles/schemas/__init__.py rename to python/databricks/bundles/schemas/__init__.py diff --git a/experimental/python/databricks/bundles/schemas/_models/lifecycle.py b/python/databricks/bundles/schemas/_models/lifecycle.py similarity index 100% rename from experimental/python/databricks/bundles/schemas/_models/lifecycle.py rename to python/databricks/bundles/schemas/_models/lifecycle.py diff --git a/experimental/python/databricks/bundles/schemas/_models/schema.py b/python/databricks/bundles/schemas/_models/schema.py similarity index 100% rename from experimental/python/databricks/bundles/schemas/_models/schema.py rename to python/databricks/bundles/schemas/_models/schema.py diff --git a/experimental/python/databricks/bundles/schemas/_models/schema_grant.py b/python/databricks/bundles/schemas/_models/schema_grant.py similarity index 100% rename from experimental/python/databricks/bundles/schemas/_models/schema_grant.py rename to python/databricks/bundles/schemas/_models/schema_grant.py diff --git a/experimental/python/databricks/bundles/schemas/_models/schema_grant_privilege.py b/python/databricks/bundles/schemas/_models/schema_grant_privilege.py similarity index 100% rename from experimental/python/databricks/bundles/schemas/_models/schema_grant_privilege.py rename to python/databricks/bundles/schemas/_models/schema_grant_privilege.py diff --git a/experimental/python/databricks/bundles/version.py b/python/databricks/bundles/version.py similarity index 100% rename from experimental/python/databricks/bundles/version.py rename to python/databricks/bundles/version.py diff --git a/experimental/python/databricks/bundles/volumes/__init__.py b/python/databricks/bundles/volumes/__init__.py similarity index 100% rename from experimental/python/databricks/bundles/volumes/__init__.py rename to python/databricks/bundles/volumes/__init__.py diff --git a/experimental/python/databricks/bundles/volumes/_models/lifecycle.py b/python/databricks/bundles/volumes/_models/lifecycle.py similarity index 100% rename from experimental/python/databricks/bundles/volumes/_models/lifecycle.py rename to python/databricks/bundles/volumes/_models/lifecycle.py diff --git a/experimental/python/databricks/bundles/volumes/_models/volume.py b/python/databricks/bundles/volumes/_models/volume.py similarity index 100% rename from experimental/python/databricks/bundles/volumes/_models/volume.py rename to python/databricks/bundles/volumes/_models/volume.py diff --git a/experimental/python/databricks/bundles/volumes/_models/volume_grant.py b/python/databricks/bundles/volumes/_models/volume_grant.py similarity index 100% rename from experimental/python/databricks/bundles/volumes/_models/volume_grant.py rename to python/databricks/bundles/volumes/_models/volume_grant.py diff --git a/experimental/python/databricks/bundles/volumes/_models/volume_grant_privilege.py b/python/databricks/bundles/volumes/_models/volume_grant_privilege.py similarity index 100% rename from experimental/python/databricks/bundles/volumes/_models/volume_grant_privilege.py rename to python/databricks/bundles/volumes/_models/volume_grant_privilege.py diff --git a/experimental/python/databricks/bundles/volumes/_models/volume_type.py b/python/databricks/bundles/volumes/_models/volume_type.py similarity index 100% rename from experimental/python/databricks/bundles/volumes/_models/volume_type.py rename to python/databricks/bundles/volumes/_models/volume_type.py diff --git a/experimental/python/databricks_tests/__init__.py b/python/databricks_tests/__init__.py similarity index 100% rename from experimental/python/databricks_tests/__init__.py rename to python/databricks_tests/__init__.py diff --git a/experimental/python/databricks_tests/bundles/test_hello_world.py b/python/databricks_tests/bundles/test_hello_world.py similarity index 100% rename from experimental/python/databricks_tests/bundles/test_hello_world.py rename to python/databricks_tests/bundles/test_hello_world.py diff --git a/experimental/python/databricks_tests/core/test_bundle.py b/python/databricks_tests/core/test_bundle.py similarity index 100% rename from experimental/python/databricks_tests/core/test_bundle.py rename to python/databricks_tests/core/test_bundle.py diff --git a/experimental/python/databricks_tests/core/test_diagnostics.py b/python/databricks_tests/core/test_diagnostics.py similarity index 100% rename from experimental/python/databricks_tests/core/test_diagnostics.py rename to python/databricks_tests/core/test_diagnostics.py diff --git a/experimental/python/databricks_tests/core/test_import.py b/python/databricks_tests/core/test_import.py similarity index 100% rename from experimental/python/databricks_tests/core/test_import.py rename to python/databricks_tests/core/test_import.py diff --git a/experimental/python/databricks_tests/core/test_load.py b/python/databricks_tests/core/test_load.py similarity index 100% rename from experimental/python/databricks_tests/core/test_load.py rename to python/databricks_tests/core/test_load.py diff --git a/experimental/python/databricks_tests/core/test_location.py b/python/databricks_tests/core/test_location.py similarity index 100% rename from experimental/python/databricks_tests/core/test_location.py rename to python/databricks_tests/core/test_location.py diff --git a/experimental/python/databricks_tests/core/test_resources.py b/python/databricks_tests/core/test_resources.py similarity index 100% rename from experimental/python/databricks_tests/core/test_resources.py rename to python/databricks_tests/core/test_resources.py diff --git a/experimental/python/databricks_tests/core/test_transform.py b/python/databricks_tests/core/test_transform.py similarity index 100% rename from experimental/python/databricks_tests/core/test_transform.py rename to python/databricks_tests/core/test_transform.py diff --git a/experimental/python/databricks_tests/core/test_transform_to_json.py b/python/databricks_tests/core/test_transform_to_json.py similarity index 100% rename from experimental/python/databricks_tests/core/test_transform_to_json.py rename to python/databricks_tests/core/test_transform_to_json.py diff --git a/experimental/python/databricks_tests/core/test_transform_variable.py b/python/databricks_tests/core/test_transform_variable.py similarity index 100% rename from experimental/python/databricks_tests/core/test_transform_variable.py rename to python/databricks_tests/core/test_transform_variable.py diff --git a/experimental/python/databricks_tests/core/test_variable.py b/python/databricks_tests/core/test_variable.py similarity index 100% rename from experimental/python/databricks_tests/core/test_variable.py rename to python/databricks_tests/core/test_variable.py diff --git a/experimental/python/databricks_tests/fixtures/__init__.py b/python/databricks_tests/fixtures/__init__.py similarity index 100% rename from experimental/python/databricks_tests/fixtures/__init__.py rename to python/databricks_tests/fixtures/__init__.py diff --git a/experimental/python/databricks_tests/fixtures/dummy_module.py b/python/databricks_tests/fixtures/dummy_module.py similarity index 100% rename from experimental/python/databricks_tests/fixtures/dummy_module.py rename to python/databricks_tests/fixtures/dummy_module.py diff --git a/experimental/python/databricks_tests/fixtures/error_module.py b/python/databricks_tests/fixtures/error_module.py similarity index 100% rename from experimental/python/databricks_tests/fixtures/error_module.py rename to python/databricks_tests/fixtures/error_module.py diff --git a/experimental/python/databricks_tests/test_build.py b/python/databricks_tests/test_build.py similarity index 100% rename from experimental/python/databricks_tests/test_build.py rename to python/databricks_tests/test_build.py diff --git a/experimental/python/docs/conf.py b/python/docs/conf.py similarity index 100% rename from experimental/python/docs/conf.py rename to python/docs/conf.py diff --git a/experimental/python/docs/databricks.bundles.core.rst b/python/docs/databricks.bundles.core.rst similarity index 100% rename from experimental/python/docs/databricks.bundles.core.rst rename to python/docs/databricks.bundles.core.rst diff --git a/experimental/python/docs/databricks.bundles.jobs.rst b/python/docs/databricks.bundles.jobs.rst similarity index 100% rename from experimental/python/docs/databricks.bundles.jobs.rst rename to python/docs/databricks.bundles.jobs.rst diff --git a/experimental/python/docs/databricks.bundles.pipelines.rst b/python/docs/databricks.bundles.pipelines.rst similarity index 100% rename from experimental/python/docs/databricks.bundles.pipelines.rst rename to python/docs/databricks.bundles.pipelines.rst diff --git a/experimental/python/docs/databricks.bundles.schemas.rst b/python/docs/databricks.bundles.schemas.rst similarity index 100% rename from experimental/python/docs/databricks.bundles.schemas.rst rename to python/docs/databricks.bundles.schemas.rst diff --git a/experimental/python/docs/databricks.bundles.volumes.rst b/python/docs/databricks.bundles.volumes.rst similarity index 100% rename from experimental/python/docs/databricks.bundles.volumes.rst rename to python/docs/databricks.bundles.volumes.rst diff --git a/experimental/python/docs/ext/autodoc_databricks_bundles.py b/python/docs/ext/autodoc_databricks_bundles.py similarity index 100% rename from experimental/python/docs/ext/autodoc_databricks_bundles.py rename to python/docs/ext/autodoc_databricks_bundles.py diff --git a/experimental/python/docs/images/databricks-logo.svg b/python/docs/images/databricks-logo.svg similarity index 100% rename from experimental/python/docs/images/databricks-logo.svg rename to python/docs/images/databricks-logo.svg diff --git a/experimental/python/docs/index.rst b/python/docs/index.rst similarity index 100% rename from experimental/python/docs/index.rst rename to python/docs/index.rst diff --git a/experimental/python/pyproject.toml b/python/pyproject.toml similarity index 100% rename from experimental/python/pyproject.toml rename to python/pyproject.toml diff --git a/experimental/python/uv.lock b/python/uv.lock similarity index 100% rename from experimental/python/uv.lock rename to python/uv.lock diff --git a/tools/post-generate.sh b/tools/post-generate.sh index f5aacf0908..84923c69a9 100755 --- a/tools/post-generate.sh +++ b/tools/post-generate.sh @@ -29,4 +29,4 @@ fi go tool -modfile=tools/go.mod yamlfmt .github/workflows/tagging.yml # Generate PyDABs code. -make -C experimental/python codegen +make -C python codegen From e0d3bacf02672204ce52a2f60adef56b4820e47d Mon Sep 17 00:00:00 2001 From: Gleb Kanterov Date: Fri, 31 Oct 2025 14:29:17 +0100 Subject: [PATCH 2/3] [Python] Generate code for apps --- python/codegen/codegen/packages.py | 4 +- python/databricks/bundles/apps/__init__.py | 209 +++++++++++++++ python/databricks/bundles/apps/_models/app.py | 252 ++++++++++++++++++ .../bundles/apps/_models/app_deployment.py | 72 +++++ .../apps/_models/app_deployment_artifacts.py | 32 +++ .../apps/_models/app_deployment_mode.py | 10 + .../apps/_models/app_deployment_state.py | 14 + .../apps/_models/app_deployment_status.py | 40 +++ .../bundles/apps/_models/app_permission.py | 48 ++++ .../apps/_models/app_permission_level.py | 10 + .../bundles/apps/_models/app_resource.py | 104 ++++++++ .../apps/_models/app_resource_database.py | 44 +++ ...p_resource_database_database_permission.py | 11 + .../apps/_models/app_resource_genie_space.py | 44 +++ ...urce_genie_space_genie_space_permission.py | 15 ++ .../bundles/apps/_models/app_resource_job.py | 40 +++ .../app_resource_job_job_permission.py | 15 ++ .../apps/_models/app_resource_secret.py | 44 +++ .../app_resource_secret_secret_permission.py | 17 ++ .../_models/app_resource_serving_endpoint.py | 42 +++ ...ng_endpoint_serving_endpoint_permission.py | 14 + .../_models/app_resource_sql_warehouse.py | 40 +++ ..._sql_warehouse_sql_warehouse_permission.py | 14 + .../apps/_models/app_resource_uc_securable.py | 48 ++++ ...ce_uc_securable_uc_securable_permission.py | 12 + ...resource_uc_securable_uc_securable_type.py | 11 + .../bundles/apps/_models/application_state.py | 14 + .../apps/_models/application_status.py | 40 +++ .../bundles/apps/_models/compute_size.py | 11 + .../bundles/apps/_models/compute_state.py | 20 ++ .../bundles/apps/_models/compute_status.py | 46 ++++ .../bundles/apps/_models/lifecycle.py | 38 +++ 32 files changed, 1374 insertions(+), 1 deletion(-) create mode 100644 python/databricks/bundles/apps/__init__.py create mode 100644 python/databricks/bundles/apps/_models/app.py create mode 100644 python/databricks/bundles/apps/_models/app_deployment.py create mode 100644 python/databricks/bundles/apps/_models/app_deployment_artifacts.py create mode 100644 python/databricks/bundles/apps/_models/app_deployment_mode.py create mode 100644 python/databricks/bundles/apps/_models/app_deployment_state.py create mode 100644 python/databricks/bundles/apps/_models/app_deployment_status.py create mode 100644 python/databricks/bundles/apps/_models/app_permission.py create mode 100644 python/databricks/bundles/apps/_models/app_permission_level.py create mode 100644 python/databricks/bundles/apps/_models/app_resource.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_database.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_database_database_permission.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_genie_space.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_genie_space_genie_space_permission.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_job.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_job_job_permission.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_secret.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_secret_secret_permission.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_serving_endpoint.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_serving_endpoint_serving_endpoint_permission.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_sql_warehouse.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_sql_warehouse_sql_warehouse_permission.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_uc_securable.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_uc_securable_uc_securable_permission.py create mode 100644 python/databricks/bundles/apps/_models/app_resource_uc_securable_uc_securable_type.py create mode 100644 python/databricks/bundles/apps/_models/application_state.py create mode 100644 python/databricks/bundles/apps/_models/application_status.py create mode 100644 python/databricks/bundles/apps/_models/compute_size.py create mode 100644 python/databricks/bundles/apps/_models/compute_state.py create mode 100644 python/databricks/bundles/apps/_models/compute_status.py create mode 100644 python/databricks/bundles/apps/_models/lifecycle.py diff --git a/python/codegen/codegen/packages.py b/python/codegen/codegen/packages.py index 48fe8270ab..de5b3cf576 100644 --- a/python/codegen/codegen/packages.py +++ b/python/codegen/codegen/packages.py @@ -3,6 +3,7 @@ # All supported resource types and their namespace RESOURCE_NAMESPACE = { + "resources.App": "apps", "resources.Job": "jobs", "resources.Pipeline": "pipelines", "resources.Schema": "schemas", @@ -15,11 +16,12 @@ # # We can't load all types because of errors while loading some of them. LOADED_NAMESPACES = [ + "apps", + "catalog", "compute", "jobs", "pipelines", "resources", - "catalog", ] RENAMES = { diff --git a/python/databricks/bundles/apps/__init__.py b/python/databricks/bundles/apps/__init__.py new file mode 100644 index 0000000000..17c6b768cc --- /dev/null +++ b/python/databricks/bundles/apps/__init__.py @@ -0,0 +1,209 @@ +__all__ = [ + "App", + "AppDeployment", + "AppDeploymentArtifacts", + "AppDeploymentArtifactsDict", + "AppDeploymentArtifactsParam", + "AppDeploymentDict", + "AppDeploymentMode", + "AppDeploymentModeParam", + "AppDeploymentParam", + "AppDeploymentState", + "AppDeploymentStateParam", + "AppDeploymentStatus", + "AppDeploymentStatusDict", + "AppDeploymentStatusParam", + "AppDict", + "AppParam", + "AppPermission", + "AppPermissionDict", + "AppPermissionLevel", + "AppPermissionLevelParam", + "AppPermissionParam", + "AppResource", + "AppResourceDatabase", + "AppResourceDatabaseDatabasePermission", + "AppResourceDatabaseDatabasePermissionParam", + "AppResourceDatabaseDict", + "AppResourceDatabaseParam", + "AppResourceDict", + "AppResourceGenieSpace", + "AppResourceGenieSpaceDict", + "AppResourceGenieSpaceGenieSpacePermission", + "AppResourceGenieSpaceGenieSpacePermissionParam", + "AppResourceGenieSpaceParam", + "AppResourceJob", + "AppResourceJobDict", + "AppResourceJobJobPermission", + "AppResourceJobJobPermissionParam", + "AppResourceJobParam", + "AppResourceParam", + "AppResourceSecret", + "AppResourceSecretDict", + "AppResourceSecretParam", + "AppResourceSecretSecretPermission", + "AppResourceSecretSecretPermissionParam", + "AppResourceServingEndpoint", + "AppResourceServingEndpointDict", + "AppResourceServingEndpointParam", + "AppResourceServingEndpointServingEndpointPermission", + "AppResourceServingEndpointServingEndpointPermissionParam", + "AppResourceSqlWarehouse", + "AppResourceSqlWarehouseDict", + "AppResourceSqlWarehouseParam", + "AppResourceSqlWarehouseSqlWarehousePermission", + "AppResourceSqlWarehouseSqlWarehousePermissionParam", + "AppResourceUcSecurable", + "AppResourceUcSecurableDict", + "AppResourceUcSecurableParam", + "AppResourceUcSecurableUcSecurablePermission", + "AppResourceUcSecurableUcSecurablePermissionParam", + "AppResourceUcSecurableUcSecurableType", + "AppResourceUcSecurableUcSecurableTypeParam", + "ApplicationState", + "ApplicationStateParam", + "ApplicationStatus", + "ApplicationStatusDict", + "ApplicationStatusParam", + "ComputeSize", + "ComputeSizeParam", + "ComputeState", + "ComputeStateParam", + "ComputeStatus", + "ComputeStatusDict", + "ComputeStatusParam", + "Lifecycle", + "LifecycleDict", + "LifecycleParam", +] + + +from databricks.bundles.apps._models.app import App, AppDict, AppParam +from databricks.bundles.apps._models.app_deployment import ( + AppDeployment, + AppDeploymentDict, + AppDeploymentParam, +) +from databricks.bundles.apps._models.app_deployment_artifacts import ( + AppDeploymentArtifacts, + AppDeploymentArtifactsDict, + AppDeploymentArtifactsParam, +) +from databricks.bundles.apps._models.app_deployment_mode import ( + AppDeploymentMode, + AppDeploymentModeParam, +) +from databricks.bundles.apps._models.app_deployment_state import ( + AppDeploymentState, + AppDeploymentStateParam, +) +from databricks.bundles.apps._models.app_deployment_status import ( + AppDeploymentStatus, + AppDeploymentStatusDict, + AppDeploymentStatusParam, +) +from databricks.bundles.apps._models.app_permission import ( + AppPermission, + AppPermissionDict, + AppPermissionParam, +) +from databricks.bundles.apps._models.app_permission_level import ( + AppPermissionLevel, + AppPermissionLevelParam, +) +from databricks.bundles.apps._models.app_resource import ( + AppResource, + AppResourceDict, + AppResourceParam, +) +from databricks.bundles.apps._models.app_resource_database import ( + AppResourceDatabase, + AppResourceDatabaseDict, + AppResourceDatabaseParam, +) +from databricks.bundles.apps._models.app_resource_database_database_permission import ( + AppResourceDatabaseDatabasePermission, + AppResourceDatabaseDatabasePermissionParam, +) +from databricks.bundles.apps._models.app_resource_genie_space import ( + AppResourceGenieSpace, + AppResourceGenieSpaceDict, + AppResourceGenieSpaceParam, +) +from databricks.bundles.apps._models.app_resource_genie_space_genie_space_permission import ( + AppResourceGenieSpaceGenieSpacePermission, + AppResourceGenieSpaceGenieSpacePermissionParam, +) +from databricks.bundles.apps._models.app_resource_job import ( + AppResourceJob, + AppResourceJobDict, + AppResourceJobParam, +) +from databricks.bundles.apps._models.app_resource_job_job_permission import ( + AppResourceJobJobPermission, + AppResourceJobJobPermissionParam, +) +from databricks.bundles.apps._models.app_resource_secret import ( + AppResourceSecret, + AppResourceSecretDict, + AppResourceSecretParam, +) +from databricks.bundles.apps._models.app_resource_secret_secret_permission import ( + AppResourceSecretSecretPermission, + AppResourceSecretSecretPermissionParam, +) +from databricks.bundles.apps._models.app_resource_serving_endpoint import ( + AppResourceServingEndpoint, + AppResourceServingEndpointDict, + AppResourceServingEndpointParam, +) +from databricks.bundles.apps._models.app_resource_serving_endpoint_serving_endpoint_permission import ( + AppResourceServingEndpointServingEndpointPermission, + AppResourceServingEndpointServingEndpointPermissionParam, +) +from databricks.bundles.apps._models.app_resource_sql_warehouse import ( + AppResourceSqlWarehouse, + AppResourceSqlWarehouseDict, + AppResourceSqlWarehouseParam, +) +from databricks.bundles.apps._models.app_resource_sql_warehouse_sql_warehouse_permission import ( + AppResourceSqlWarehouseSqlWarehousePermission, + AppResourceSqlWarehouseSqlWarehousePermissionParam, +) +from databricks.bundles.apps._models.app_resource_uc_securable import ( + AppResourceUcSecurable, + AppResourceUcSecurableDict, + AppResourceUcSecurableParam, +) +from databricks.bundles.apps._models.app_resource_uc_securable_uc_securable_permission import ( + AppResourceUcSecurableUcSecurablePermission, + AppResourceUcSecurableUcSecurablePermissionParam, +) +from databricks.bundles.apps._models.app_resource_uc_securable_uc_securable_type import ( + AppResourceUcSecurableUcSecurableType, + AppResourceUcSecurableUcSecurableTypeParam, +) +from databricks.bundles.apps._models.application_state import ( + ApplicationState, + ApplicationStateParam, +) +from databricks.bundles.apps._models.application_status import ( + ApplicationStatus, + ApplicationStatusDict, + ApplicationStatusParam, +) +from databricks.bundles.apps._models.compute_size import ComputeSize, ComputeSizeParam +from databricks.bundles.apps._models.compute_state import ( + ComputeState, + ComputeStateParam, +) +from databricks.bundles.apps._models.compute_status import ( + ComputeStatus, + ComputeStatusDict, + ComputeStatusParam, +) +from databricks.bundles.apps._models.lifecycle import ( + Lifecycle, + LifecycleDict, + LifecycleParam, +) diff --git a/python/databricks/bundles/apps/_models/app.py b/python/databricks/bundles/apps/_models/app.py new file mode 100644 index 0000000000..c3af63e008 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app.py @@ -0,0 +1,252 @@ +from dataclasses import dataclass, field +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_deployment import ( + AppDeployment, + AppDeploymentParam, +) +from databricks.bundles.apps._models.app_permission import ( + AppPermission, + AppPermissionParam, +) +from databricks.bundles.apps._models.app_resource import AppResource, AppResourceParam +from databricks.bundles.apps._models.application_status import ( + ApplicationStatus, + ApplicationStatusParam, +) +from databricks.bundles.apps._models.compute_size import ComputeSize, ComputeSizeParam +from databricks.bundles.apps._models.compute_status import ( + ComputeStatus, + ComputeStatusParam, +) +from databricks.bundles.apps._models.lifecycle import Lifecycle, LifecycleParam +from databricks.bundles.core._resource import Resource +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import ( + VariableOr, + VariableOrList, + VariableOrOptional, +) + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class App(Resource): + """""" + + name: VariableOr[str] + """ + The name of the app. The name must contain only lowercase alphanumeric characters and hyphens. + It must be unique within the workspace. + """ + + source_code_path: VariableOr[str] + + active_deployment: VariableOrOptional[AppDeployment] = None + """ + The active deployment of the app. A deployment is considered active when it has been deployed + to the app compute. + """ + + app_status: VariableOrOptional[ApplicationStatus] = None + + budget_policy_id: VariableOrOptional[str] = None + + compute_size: VariableOrOptional[ComputeSize] = None + + compute_status: VariableOrOptional[ComputeStatus] = None + + create_time: VariableOrOptional[str] = None + """ + The creation time of the app. Formatted timestamp in ISO 6801. + """ + + creator: VariableOrOptional[str] = None + """ + The email of the user that created the app. + """ + + default_source_code_path: VariableOrOptional[str] = None + """ + The default workspace file system path of the source code from which app deployment are + created. This field tracks the workspace source code path of the last active deployment. + """ + + description: VariableOrOptional[str] = None + """ + The description of the app. + """ + + effective_budget_policy_id: VariableOrOptional[str] = None + + effective_user_api_scopes: VariableOrList[str] = field(default_factory=list) + """ + The effective api scopes granted to the user access token. + """ + + id: VariableOrOptional[str] = None + """ + The unique identifier of the app. + """ + + lifecycle: VariableOrOptional[Lifecycle] = None + """ + Lifecycle is a struct that contains the lifecycle settings for a resource. It controls the behavior of the resource when it is deployed or destroyed. + """ + + oauth2_app_client_id: VariableOrOptional[str] = None + + oauth2_app_integration_id: VariableOrOptional[str] = None + + pending_deployment: VariableOrOptional[AppDeployment] = None + """ + The pending deployment of the app. A deployment is considered pending when it is being prepared + for deployment to the app compute. + """ + + permissions: VariableOrList[AppPermission] = field(default_factory=list) + + resources: VariableOrList[AppResource] = field(default_factory=list) + """ + Resources for the app. + """ + + service_principal_client_id: VariableOrOptional[str] = None + + service_principal_id: VariableOrOptional[int] = None + + service_principal_name: VariableOrOptional[str] = None + + update_time: VariableOrOptional[str] = None + """ + The update time of the app. Formatted timestamp in ISO 6801. + """ + + updater: VariableOrOptional[str] = None + """ + The email of the user that last updated the app. + """ + + url: VariableOrOptional[str] = None + """ + The URL of the app once it is deployed. + """ + + user_api_scopes: VariableOrList[str] = field(default_factory=list) + + @classmethod + def from_dict(cls, value: "AppDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppDict": + return _transform_to_json_value(self) # type:ignore + + +class AppDict(TypedDict, total=False): + """""" + + name: VariableOr[str] + """ + The name of the app. The name must contain only lowercase alphanumeric characters and hyphens. + It must be unique within the workspace. + """ + + source_code_path: VariableOr[str] + + active_deployment: VariableOrOptional[AppDeploymentParam] + """ + The active deployment of the app. A deployment is considered active when it has been deployed + to the app compute. + """ + + app_status: VariableOrOptional[ApplicationStatusParam] + + budget_policy_id: VariableOrOptional[str] + + compute_size: VariableOrOptional[ComputeSizeParam] + + compute_status: VariableOrOptional[ComputeStatusParam] + + create_time: VariableOrOptional[str] + """ + The creation time of the app. Formatted timestamp in ISO 6801. + """ + + creator: VariableOrOptional[str] + """ + The email of the user that created the app. + """ + + default_source_code_path: VariableOrOptional[str] + """ + The default workspace file system path of the source code from which app deployment are + created. This field tracks the workspace source code path of the last active deployment. + """ + + description: VariableOrOptional[str] + """ + The description of the app. + """ + + effective_budget_policy_id: VariableOrOptional[str] + + effective_user_api_scopes: VariableOrList[str] + """ + The effective api scopes granted to the user access token. + """ + + id: VariableOrOptional[str] + """ + The unique identifier of the app. + """ + + lifecycle: VariableOrOptional[LifecycleParam] + """ + Lifecycle is a struct that contains the lifecycle settings for a resource. It controls the behavior of the resource when it is deployed or destroyed. + """ + + oauth2_app_client_id: VariableOrOptional[str] + + oauth2_app_integration_id: VariableOrOptional[str] + + pending_deployment: VariableOrOptional[AppDeploymentParam] + """ + The pending deployment of the app. A deployment is considered pending when it is being prepared + for deployment to the app compute. + """ + + permissions: VariableOrList[AppPermissionParam] + + resources: VariableOrList[AppResourceParam] + """ + Resources for the app. + """ + + service_principal_client_id: VariableOrOptional[str] + + service_principal_id: VariableOrOptional[int] + + service_principal_name: VariableOrOptional[str] + + update_time: VariableOrOptional[str] + """ + The update time of the app. Formatted timestamp in ISO 6801. + """ + + updater: VariableOrOptional[str] + """ + The email of the user that last updated the app. + """ + + url: VariableOrOptional[str] + """ + The URL of the app once it is deployed. + """ + + user_api_scopes: VariableOrList[str] + + +AppParam = AppDict | App diff --git a/python/databricks/bundles/apps/_models/app_deployment.py b/python/databricks/bundles/apps/_models/app_deployment.py new file mode 100644 index 0000000000..53556a4caa --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_deployment.py @@ -0,0 +1,72 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_deployment_artifacts import ( + AppDeploymentArtifacts, + AppDeploymentArtifactsParam, +) +from databricks.bundles.apps._models.app_deployment_mode import ( + AppDeploymentMode, + AppDeploymentModeParam, +) +from databricks.bundles.apps._models.app_deployment_status import ( + AppDeploymentStatus, + AppDeploymentStatusParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOrOptional + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppDeployment: + """""" + + create_time: VariableOrOptional[str] = None + + creator: VariableOrOptional[str] = None + + deployment_artifacts: VariableOrOptional[AppDeploymentArtifacts] = None + + deployment_id: VariableOrOptional[str] = None + + mode: VariableOrOptional[AppDeploymentMode] = None + + source_code_path: VariableOrOptional[str] = None + + status: VariableOrOptional[AppDeploymentStatus] = None + + update_time: VariableOrOptional[str] = None + + @classmethod + def from_dict(cls, value: "AppDeploymentDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppDeploymentDict": + return _transform_to_json_value(self) # type:ignore + + +class AppDeploymentDict(TypedDict, total=False): + """""" + + create_time: VariableOrOptional[str] + + creator: VariableOrOptional[str] + + deployment_artifacts: VariableOrOptional[AppDeploymentArtifactsParam] + + deployment_id: VariableOrOptional[str] + + mode: VariableOrOptional[AppDeploymentModeParam] + + source_code_path: VariableOrOptional[str] + + status: VariableOrOptional[AppDeploymentStatusParam] + + update_time: VariableOrOptional[str] + + +AppDeploymentParam = AppDeploymentDict | AppDeployment diff --git a/python/databricks/bundles/apps/_models/app_deployment_artifacts.py b/python/databricks/bundles/apps/_models/app_deployment_artifacts.py new file mode 100644 index 0000000000..59eaf53f79 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_deployment_artifacts.py @@ -0,0 +1,32 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOrOptional + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppDeploymentArtifacts: + """""" + + source_code_path: VariableOrOptional[str] = None + + @classmethod + def from_dict(cls, value: "AppDeploymentArtifactsDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppDeploymentArtifactsDict": + return _transform_to_json_value(self) # type:ignore + + +class AppDeploymentArtifactsDict(TypedDict, total=False): + """""" + + source_code_path: VariableOrOptional[str] + + +AppDeploymentArtifactsParam = AppDeploymentArtifactsDict | AppDeploymentArtifacts diff --git a/python/databricks/bundles/apps/_models/app_deployment_mode.py b/python/databricks/bundles/apps/_models/app_deployment_mode.py new file mode 100644 index 0000000000..f6f567b9fe --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_deployment_mode.py @@ -0,0 +1,10 @@ +from enum import Enum +from typing import Literal + + +class AppDeploymentMode(Enum): + SNAPSHOT = "SNAPSHOT" + AUTO_SYNC = "AUTO_SYNC" + + +AppDeploymentModeParam = Literal["SNAPSHOT", "AUTO_SYNC"] | AppDeploymentMode diff --git a/python/databricks/bundles/apps/_models/app_deployment_state.py b/python/databricks/bundles/apps/_models/app_deployment_state.py new file mode 100644 index 0000000000..696135b807 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_deployment_state.py @@ -0,0 +1,14 @@ +from enum import Enum +from typing import Literal + + +class AppDeploymentState(Enum): + SUCCEEDED = "SUCCEEDED" + FAILED = "FAILED" + IN_PROGRESS = "IN_PROGRESS" + CANCELLED = "CANCELLED" + + +AppDeploymentStateParam = ( + Literal["SUCCEEDED", "FAILED", "IN_PROGRESS", "CANCELLED"] | AppDeploymentState +) diff --git a/python/databricks/bundles/apps/_models/app_deployment_status.py b/python/databricks/bundles/apps/_models/app_deployment_status.py new file mode 100644 index 0000000000..b8af981213 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_deployment_status.py @@ -0,0 +1,40 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_deployment_state import ( + AppDeploymentState, + AppDeploymentStateParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOrOptional + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppDeploymentStatus: + """""" + + message: VariableOrOptional[str] = None + + state: VariableOrOptional[AppDeploymentState] = None + + @classmethod + def from_dict(cls, value: "AppDeploymentStatusDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppDeploymentStatusDict": + return _transform_to_json_value(self) # type:ignore + + +class AppDeploymentStatusDict(TypedDict, total=False): + """""" + + message: VariableOrOptional[str] + + state: VariableOrOptional[AppDeploymentStateParam] + + +AppDeploymentStatusParam = AppDeploymentStatusDict | AppDeploymentStatus diff --git a/python/databricks/bundles/apps/_models/app_permission.py b/python/databricks/bundles/apps/_models/app_permission.py new file mode 100644 index 0000000000..577fba126b --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_permission.py @@ -0,0 +1,48 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_permission_level import ( + AppPermissionLevel, + AppPermissionLevelParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOr, VariableOrOptional + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppPermission: + """""" + + level: VariableOr[AppPermissionLevel] + + group_name: VariableOrOptional[str] = None + + service_principal_name: VariableOrOptional[str] = None + + user_name: VariableOrOptional[str] = None + + @classmethod + def from_dict(cls, value: "AppPermissionDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppPermissionDict": + return _transform_to_json_value(self) # type:ignore + + +class AppPermissionDict(TypedDict, total=False): + """""" + + level: VariableOr[AppPermissionLevelParam] + + group_name: VariableOrOptional[str] + + service_principal_name: VariableOrOptional[str] + + user_name: VariableOrOptional[str] + + +AppPermissionParam = AppPermissionDict | AppPermission diff --git a/python/databricks/bundles/apps/_models/app_permission_level.py b/python/databricks/bundles/apps/_models/app_permission_level.py new file mode 100644 index 0000000000..ca07c4a803 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_permission_level.py @@ -0,0 +1,10 @@ +from enum import Enum +from typing import Literal + + +class AppPermissionLevel(Enum): + CAN_MANAGE = "CAN_MANAGE" + CAN_USE = "CAN_USE" + + +AppPermissionLevelParam = Literal["CAN_MANAGE", "CAN_USE"] | AppPermissionLevel diff --git a/python/databricks/bundles/apps/_models/app_resource.py b/python/databricks/bundles/apps/_models/app_resource.py new file mode 100644 index 0000000000..89199babe7 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource.py @@ -0,0 +1,104 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_resource_database import ( + AppResourceDatabase, + AppResourceDatabaseParam, +) +from databricks.bundles.apps._models.app_resource_genie_space import ( + AppResourceGenieSpace, + AppResourceGenieSpaceParam, +) +from databricks.bundles.apps._models.app_resource_job import ( + AppResourceJob, + AppResourceJobParam, +) +from databricks.bundles.apps._models.app_resource_secret import ( + AppResourceSecret, + AppResourceSecretParam, +) +from databricks.bundles.apps._models.app_resource_serving_endpoint import ( + AppResourceServingEndpoint, + AppResourceServingEndpointParam, +) +from databricks.bundles.apps._models.app_resource_sql_warehouse import ( + AppResourceSqlWarehouse, + AppResourceSqlWarehouseParam, +) +from databricks.bundles.apps._models.app_resource_uc_securable import ( + AppResourceUcSecurable, + AppResourceUcSecurableParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOr, VariableOrOptional + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppResource: + """""" + + name: VariableOr[str] + """ + Name of the App Resource. + """ + + database: VariableOrOptional[AppResourceDatabase] = None + + description: VariableOrOptional[str] = None + """ + Description of the App Resource. + """ + + genie_space: VariableOrOptional[AppResourceGenieSpace] = None + + job: VariableOrOptional[AppResourceJob] = None + + secret: VariableOrOptional[AppResourceSecret] = None + + serving_endpoint: VariableOrOptional[AppResourceServingEndpoint] = None + + sql_warehouse: VariableOrOptional[AppResourceSqlWarehouse] = None + + uc_securable: VariableOrOptional[AppResourceUcSecurable] = None + + @classmethod + def from_dict(cls, value: "AppResourceDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppResourceDict": + return _transform_to_json_value(self) # type:ignore + + +class AppResourceDict(TypedDict, total=False): + """""" + + name: VariableOr[str] + """ + Name of the App Resource. + """ + + database: VariableOrOptional[AppResourceDatabaseParam] + + description: VariableOrOptional[str] + """ + Description of the App Resource. + """ + + genie_space: VariableOrOptional[AppResourceGenieSpaceParam] + + job: VariableOrOptional[AppResourceJobParam] + + secret: VariableOrOptional[AppResourceSecretParam] + + serving_endpoint: VariableOrOptional[AppResourceServingEndpointParam] + + sql_warehouse: VariableOrOptional[AppResourceSqlWarehouseParam] + + uc_securable: VariableOrOptional[AppResourceUcSecurableParam] + + +AppResourceParam = AppResourceDict | AppResource diff --git a/python/databricks/bundles/apps/_models/app_resource_database.py b/python/databricks/bundles/apps/_models/app_resource_database.py new file mode 100644 index 0000000000..5f9d293628 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_database.py @@ -0,0 +1,44 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_resource_database_database_permission import ( + AppResourceDatabaseDatabasePermission, + AppResourceDatabaseDatabasePermissionParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOr + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppResourceDatabase: + """""" + + database_name: VariableOr[str] + + instance_name: VariableOr[str] + + permission: VariableOr[AppResourceDatabaseDatabasePermission] + + @classmethod + def from_dict(cls, value: "AppResourceDatabaseDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppResourceDatabaseDict": + return _transform_to_json_value(self) # type:ignore + + +class AppResourceDatabaseDict(TypedDict, total=False): + """""" + + database_name: VariableOr[str] + + instance_name: VariableOr[str] + + permission: VariableOr[AppResourceDatabaseDatabasePermissionParam] + + +AppResourceDatabaseParam = AppResourceDatabaseDict | AppResourceDatabase diff --git a/python/databricks/bundles/apps/_models/app_resource_database_database_permission.py b/python/databricks/bundles/apps/_models/app_resource_database_database_permission.py new file mode 100644 index 0000000000..6dbb0e7815 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_database_database_permission.py @@ -0,0 +1,11 @@ +from enum import Enum +from typing import Literal + + +class AppResourceDatabaseDatabasePermission(Enum): + CAN_CONNECT_AND_CREATE = "CAN_CONNECT_AND_CREATE" + + +AppResourceDatabaseDatabasePermissionParam = ( + Literal["CAN_CONNECT_AND_CREATE"] | AppResourceDatabaseDatabasePermission +) diff --git a/python/databricks/bundles/apps/_models/app_resource_genie_space.py b/python/databricks/bundles/apps/_models/app_resource_genie_space.py new file mode 100644 index 0000000000..e0a2acf326 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_genie_space.py @@ -0,0 +1,44 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_resource_genie_space_genie_space_permission import ( + AppResourceGenieSpaceGenieSpacePermission, + AppResourceGenieSpaceGenieSpacePermissionParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOr + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppResourceGenieSpace: + """""" + + name: VariableOr[str] + + permission: VariableOr[AppResourceGenieSpaceGenieSpacePermission] + + space_id: VariableOr[str] + + @classmethod + def from_dict(cls, value: "AppResourceGenieSpaceDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppResourceGenieSpaceDict": + return _transform_to_json_value(self) # type:ignore + + +class AppResourceGenieSpaceDict(TypedDict, total=False): + """""" + + name: VariableOr[str] + + permission: VariableOr[AppResourceGenieSpaceGenieSpacePermissionParam] + + space_id: VariableOr[str] + + +AppResourceGenieSpaceParam = AppResourceGenieSpaceDict | AppResourceGenieSpace diff --git a/python/databricks/bundles/apps/_models/app_resource_genie_space_genie_space_permission.py b/python/databricks/bundles/apps/_models/app_resource_genie_space_genie_space_permission.py new file mode 100644 index 0000000000..72ea7f5ed1 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_genie_space_genie_space_permission.py @@ -0,0 +1,15 @@ +from enum import Enum +from typing import Literal + + +class AppResourceGenieSpaceGenieSpacePermission(Enum): + CAN_MANAGE = "CAN_MANAGE" + CAN_EDIT = "CAN_EDIT" + CAN_RUN = "CAN_RUN" + CAN_VIEW = "CAN_VIEW" + + +AppResourceGenieSpaceGenieSpacePermissionParam = ( + Literal["CAN_MANAGE", "CAN_EDIT", "CAN_RUN", "CAN_VIEW"] + | AppResourceGenieSpaceGenieSpacePermission +) diff --git a/python/databricks/bundles/apps/_models/app_resource_job.py b/python/databricks/bundles/apps/_models/app_resource_job.py new file mode 100644 index 0000000000..3ce59f4511 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_job.py @@ -0,0 +1,40 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_resource_job_job_permission import ( + AppResourceJobJobPermission, + AppResourceJobJobPermissionParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOr + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppResourceJob: + """""" + + id: VariableOr[str] + + permission: VariableOr[AppResourceJobJobPermission] + + @classmethod + def from_dict(cls, value: "AppResourceJobDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppResourceJobDict": + return _transform_to_json_value(self) # type:ignore + + +class AppResourceJobDict(TypedDict, total=False): + """""" + + id: VariableOr[str] + + permission: VariableOr[AppResourceJobJobPermissionParam] + + +AppResourceJobParam = AppResourceJobDict | AppResourceJob diff --git a/python/databricks/bundles/apps/_models/app_resource_job_job_permission.py b/python/databricks/bundles/apps/_models/app_resource_job_job_permission.py new file mode 100644 index 0000000000..9aaef8cccb --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_job_job_permission.py @@ -0,0 +1,15 @@ +from enum import Enum +from typing import Literal + + +class AppResourceJobJobPermission(Enum): + CAN_MANAGE = "CAN_MANAGE" + IS_OWNER = "IS_OWNER" + CAN_MANAGE_RUN = "CAN_MANAGE_RUN" + CAN_VIEW = "CAN_VIEW" + + +AppResourceJobJobPermissionParam = ( + Literal["CAN_MANAGE", "IS_OWNER", "CAN_MANAGE_RUN", "CAN_VIEW"] + | AppResourceJobJobPermission +) diff --git a/python/databricks/bundles/apps/_models/app_resource_secret.py b/python/databricks/bundles/apps/_models/app_resource_secret.py new file mode 100644 index 0000000000..f9c7a55e6a --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_secret.py @@ -0,0 +1,44 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_resource_secret_secret_permission import ( + AppResourceSecretSecretPermission, + AppResourceSecretSecretPermissionParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOr + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppResourceSecret: + """""" + + key: VariableOr[str] + + permission: VariableOr[AppResourceSecretSecretPermission] + + scope: VariableOr[str] + + @classmethod + def from_dict(cls, value: "AppResourceSecretDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppResourceSecretDict": + return _transform_to_json_value(self) # type:ignore + + +class AppResourceSecretDict(TypedDict, total=False): + """""" + + key: VariableOr[str] + + permission: VariableOr[AppResourceSecretSecretPermissionParam] + + scope: VariableOr[str] + + +AppResourceSecretParam = AppResourceSecretDict | AppResourceSecret diff --git a/python/databricks/bundles/apps/_models/app_resource_secret_secret_permission.py b/python/databricks/bundles/apps/_models/app_resource_secret_secret_permission.py new file mode 100644 index 0000000000..3f56dac241 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_secret_secret_permission.py @@ -0,0 +1,17 @@ +from enum import Enum +from typing import Literal + + +class AppResourceSecretSecretPermission(Enum): + """ + Permission to grant on the secret scope. Supported permissions are: "READ", "WRITE", "MANAGE". + """ + + READ = "READ" + WRITE = "WRITE" + MANAGE = "MANAGE" + + +AppResourceSecretSecretPermissionParam = ( + Literal["READ", "WRITE", "MANAGE"] | AppResourceSecretSecretPermission +) diff --git a/python/databricks/bundles/apps/_models/app_resource_serving_endpoint.py b/python/databricks/bundles/apps/_models/app_resource_serving_endpoint.py new file mode 100644 index 0000000000..de846c67bb --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_serving_endpoint.py @@ -0,0 +1,42 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_resource_serving_endpoint_serving_endpoint_permission import ( + AppResourceServingEndpointServingEndpointPermission, + AppResourceServingEndpointServingEndpointPermissionParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOr + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppResourceServingEndpoint: + """""" + + name: VariableOr[str] + + permission: VariableOr[AppResourceServingEndpointServingEndpointPermission] + + @classmethod + def from_dict(cls, value: "AppResourceServingEndpointDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppResourceServingEndpointDict": + return _transform_to_json_value(self) # type:ignore + + +class AppResourceServingEndpointDict(TypedDict, total=False): + """""" + + name: VariableOr[str] + + permission: VariableOr[AppResourceServingEndpointServingEndpointPermissionParam] + + +AppResourceServingEndpointParam = ( + AppResourceServingEndpointDict | AppResourceServingEndpoint +) diff --git a/python/databricks/bundles/apps/_models/app_resource_serving_endpoint_serving_endpoint_permission.py b/python/databricks/bundles/apps/_models/app_resource_serving_endpoint_serving_endpoint_permission.py new file mode 100644 index 0000000000..4bab27402e --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_serving_endpoint_serving_endpoint_permission.py @@ -0,0 +1,14 @@ +from enum import Enum +from typing import Literal + + +class AppResourceServingEndpointServingEndpointPermission(Enum): + CAN_MANAGE = "CAN_MANAGE" + CAN_QUERY = "CAN_QUERY" + CAN_VIEW = "CAN_VIEW" + + +AppResourceServingEndpointServingEndpointPermissionParam = ( + Literal["CAN_MANAGE", "CAN_QUERY", "CAN_VIEW"] + | AppResourceServingEndpointServingEndpointPermission +) diff --git a/python/databricks/bundles/apps/_models/app_resource_sql_warehouse.py b/python/databricks/bundles/apps/_models/app_resource_sql_warehouse.py new file mode 100644 index 0000000000..4f7ce123b8 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_sql_warehouse.py @@ -0,0 +1,40 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_resource_sql_warehouse_sql_warehouse_permission import ( + AppResourceSqlWarehouseSqlWarehousePermission, + AppResourceSqlWarehouseSqlWarehousePermissionParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOr + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppResourceSqlWarehouse: + """""" + + id: VariableOr[str] + + permission: VariableOr[AppResourceSqlWarehouseSqlWarehousePermission] + + @classmethod + def from_dict(cls, value: "AppResourceSqlWarehouseDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppResourceSqlWarehouseDict": + return _transform_to_json_value(self) # type:ignore + + +class AppResourceSqlWarehouseDict(TypedDict, total=False): + """""" + + id: VariableOr[str] + + permission: VariableOr[AppResourceSqlWarehouseSqlWarehousePermissionParam] + + +AppResourceSqlWarehouseParam = AppResourceSqlWarehouseDict | AppResourceSqlWarehouse diff --git a/python/databricks/bundles/apps/_models/app_resource_sql_warehouse_sql_warehouse_permission.py b/python/databricks/bundles/apps/_models/app_resource_sql_warehouse_sql_warehouse_permission.py new file mode 100644 index 0000000000..0f665ecbb5 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_sql_warehouse_sql_warehouse_permission.py @@ -0,0 +1,14 @@ +from enum import Enum +from typing import Literal + + +class AppResourceSqlWarehouseSqlWarehousePermission(Enum): + CAN_MANAGE = "CAN_MANAGE" + CAN_USE = "CAN_USE" + IS_OWNER = "IS_OWNER" + + +AppResourceSqlWarehouseSqlWarehousePermissionParam = ( + Literal["CAN_MANAGE", "CAN_USE", "IS_OWNER"] + | AppResourceSqlWarehouseSqlWarehousePermission +) diff --git a/python/databricks/bundles/apps/_models/app_resource_uc_securable.py b/python/databricks/bundles/apps/_models/app_resource_uc_securable.py new file mode 100644 index 0000000000..2a5f1aff32 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_uc_securable.py @@ -0,0 +1,48 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.app_resource_uc_securable_uc_securable_permission import ( + AppResourceUcSecurableUcSecurablePermission, + AppResourceUcSecurableUcSecurablePermissionParam, +) +from databricks.bundles.apps._models.app_resource_uc_securable_uc_securable_type import ( + AppResourceUcSecurableUcSecurableType, + AppResourceUcSecurableUcSecurableTypeParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOr + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class AppResourceUcSecurable: + """""" + + permission: VariableOr[AppResourceUcSecurableUcSecurablePermission] + + securable_full_name: VariableOr[str] + + securable_type: VariableOr[AppResourceUcSecurableUcSecurableType] + + @classmethod + def from_dict(cls, value: "AppResourceUcSecurableDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "AppResourceUcSecurableDict": + return _transform_to_json_value(self) # type:ignore + + +class AppResourceUcSecurableDict(TypedDict, total=False): + """""" + + permission: VariableOr[AppResourceUcSecurableUcSecurablePermissionParam] + + securable_full_name: VariableOr[str] + + securable_type: VariableOr[AppResourceUcSecurableUcSecurableTypeParam] + + +AppResourceUcSecurableParam = AppResourceUcSecurableDict | AppResourceUcSecurable diff --git a/python/databricks/bundles/apps/_models/app_resource_uc_securable_uc_securable_permission.py b/python/databricks/bundles/apps/_models/app_resource_uc_securable_uc_securable_permission.py new file mode 100644 index 0000000000..916d9d484f --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_uc_securable_uc_securable_permission.py @@ -0,0 +1,12 @@ +from enum import Enum +from typing import Literal + + +class AppResourceUcSecurableUcSecurablePermission(Enum): + READ_VOLUME = "READ_VOLUME" + WRITE_VOLUME = "WRITE_VOLUME" + + +AppResourceUcSecurableUcSecurablePermissionParam = ( + Literal["READ_VOLUME", "WRITE_VOLUME"] | AppResourceUcSecurableUcSecurablePermission +) diff --git a/python/databricks/bundles/apps/_models/app_resource_uc_securable_uc_securable_type.py b/python/databricks/bundles/apps/_models/app_resource_uc_securable_uc_securable_type.py new file mode 100644 index 0000000000..627be8a956 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app_resource_uc_securable_uc_securable_type.py @@ -0,0 +1,11 @@ +from enum import Enum +from typing import Literal + + +class AppResourceUcSecurableUcSecurableType(Enum): + VOLUME = "VOLUME" + + +AppResourceUcSecurableUcSecurableTypeParam = ( + Literal["VOLUME"] | AppResourceUcSecurableUcSecurableType +) diff --git a/python/databricks/bundles/apps/_models/application_state.py b/python/databricks/bundles/apps/_models/application_state.py new file mode 100644 index 0000000000..53095e7e64 --- /dev/null +++ b/python/databricks/bundles/apps/_models/application_state.py @@ -0,0 +1,14 @@ +from enum import Enum +from typing import Literal + + +class ApplicationState(Enum): + DEPLOYING = "DEPLOYING" + RUNNING = "RUNNING" + CRASHED = "CRASHED" + UNAVAILABLE = "UNAVAILABLE" + + +ApplicationStateParam = ( + Literal["DEPLOYING", "RUNNING", "CRASHED", "UNAVAILABLE"] | ApplicationState +) diff --git a/python/databricks/bundles/apps/_models/application_status.py b/python/databricks/bundles/apps/_models/application_status.py new file mode 100644 index 0000000000..888a0423d2 --- /dev/null +++ b/python/databricks/bundles/apps/_models/application_status.py @@ -0,0 +1,40 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.application_state import ( + ApplicationState, + ApplicationStateParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOrOptional + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class ApplicationStatus: + """""" + + message: VariableOrOptional[str] = None + + state: VariableOrOptional[ApplicationState] = None + + @classmethod + def from_dict(cls, value: "ApplicationStatusDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "ApplicationStatusDict": + return _transform_to_json_value(self) # type:ignore + + +class ApplicationStatusDict(TypedDict, total=False): + """""" + + message: VariableOrOptional[str] + + state: VariableOrOptional[ApplicationStateParam] + + +ApplicationStatusParam = ApplicationStatusDict | ApplicationStatus diff --git a/python/databricks/bundles/apps/_models/compute_size.py b/python/databricks/bundles/apps/_models/compute_size.py new file mode 100644 index 0000000000..ed0024cb39 --- /dev/null +++ b/python/databricks/bundles/apps/_models/compute_size.py @@ -0,0 +1,11 @@ +from enum import Enum +from typing import Literal + + +class ComputeSize(Enum): + MEDIUM = "MEDIUM" + LARGE = "LARGE" + LIQUID = "LIQUID" + + +ComputeSizeParam = Literal["MEDIUM", "LARGE", "LIQUID"] | ComputeSize diff --git a/python/databricks/bundles/apps/_models/compute_state.py b/python/databricks/bundles/apps/_models/compute_state.py new file mode 100644 index 0000000000..d9416415b3 --- /dev/null +++ b/python/databricks/bundles/apps/_models/compute_state.py @@ -0,0 +1,20 @@ +from enum import Enum +from typing import Literal + + +class ComputeState(Enum): + ERROR = "ERROR" + DELETING = "DELETING" + STARTING = "STARTING" + STOPPING = "STOPPING" + UPDATING = "UPDATING" + STOPPED = "STOPPED" + ACTIVE = "ACTIVE" + + +ComputeStateParam = ( + Literal[ + "ERROR", "DELETING", "STARTING", "STOPPING", "UPDATING", "STOPPED", "ACTIVE" + ] + | ComputeState +) diff --git a/python/databricks/bundles/apps/_models/compute_status.py b/python/databricks/bundles/apps/_models/compute_status.py new file mode 100644 index 0000000000..7c4b911dea --- /dev/null +++ b/python/databricks/bundles/apps/_models/compute_status.py @@ -0,0 +1,46 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.apps._models.compute_state import ( + ComputeState, + ComputeStateParam, +) +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOrOptional + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class ComputeStatus: + """""" + + message: VariableOrOptional[str] = None + + state: VariableOrOptional[ComputeState] = None + """ + State of the app compute. + """ + + @classmethod + def from_dict(cls, value: "ComputeStatusDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "ComputeStatusDict": + return _transform_to_json_value(self) # type:ignore + + +class ComputeStatusDict(TypedDict, total=False): + """""" + + message: VariableOrOptional[str] + + state: VariableOrOptional[ComputeStateParam] + """ + State of the app compute. + """ + + +ComputeStatusParam = ComputeStatusDict | ComputeStatus diff --git a/python/databricks/bundles/apps/_models/lifecycle.py b/python/databricks/bundles/apps/_models/lifecycle.py new file mode 100644 index 0000000000..c934967f37 --- /dev/null +++ b/python/databricks/bundles/apps/_models/lifecycle.py @@ -0,0 +1,38 @@ +from dataclasses import dataclass +from typing import TYPE_CHECKING, TypedDict + +from databricks.bundles.core._transform import _transform +from databricks.bundles.core._transform_to_json import _transform_to_json_value +from databricks.bundles.core._variable import VariableOrOptional + +if TYPE_CHECKING: + from typing_extensions import Self + + +@dataclass(kw_only=True) +class Lifecycle: + """""" + + prevent_destroy: VariableOrOptional[bool] = None + """ + Lifecycle setting to prevent the resource from being destroyed. + """ + + @classmethod + def from_dict(cls, value: "LifecycleDict") -> "Self": + return _transform(cls, value) + + def as_dict(self) -> "LifecycleDict": + return _transform_to_json_value(self) # type:ignore + + +class LifecycleDict(TypedDict, total=False): + """""" + + prevent_destroy: VariableOrOptional[bool] + """ + Lifecycle setting to prevent the resource from being destroyed. + """ + + +LifecycleParam = LifecycleDict | Lifecycle From bd547d827f7a45849f0a7898ac8f6d7cf04e2030 Mon Sep 17 00:00:00 2001 From: Gleb Kanterov Date: Wed, 5 Nov 2025 15:56:14 +0100 Subject: [PATCH 3/3] Fix --- python/databricks/bundles/apps/__init__.py | 64 -------- python/databricks/bundles/apps/_models/app.py | 150 ------------------ .../bundles/apps/_models/app_deployment.py | 72 --------- .../apps/_models/app_deployment_artifacts.py | 32 ---- .../apps/_models/app_deployment_mode.py | 10 -- .../apps/_models/app_deployment_state.py | 14 -- .../apps/_models/app_deployment_status.py | 40 ----- .../bundles/apps/_models/application_state.py | 14 -- .../apps/_models/application_status.py | 40 ----- .../bundles/apps/_models/compute_state.py | 20 --- .../bundles/apps/_models/compute_status.py | 46 ------ 11 files changed, 502 deletions(-) delete mode 100644 python/databricks/bundles/apps/_models/app_deployment.py delete mode 100644 python/databricks/bundles/apps/_models/app_deployment_artifacts.py delete mode 100644 python/databricks/bundles/apps/_models/app_deployment_mode.py delete mode 100644 python/databricks/bundles/apps/_models/app_deployment_state.py delete mode 100644 python/databricks/bundles/apps/_models/app_deployment_status.py delete mode 100644 python/databricks/bundles/apps/_models/application_state.py delete mode 100644 python/databricks/bundles/apps/_models/application_status.py delete mode 100644 python/databricks/bundles/apps/_models/compute_state.py delete mode 100644 python/databricks/bundles/apps/_models/compute_status.py diff --git a/python/databricks/bundles/apps/__init__.py b/python/databricks/bundles/apps/__init__.py index 17c6b768cc..488c95afa5 100644 --- a/python/databricks/bundles/apps/__init__.py +++ b/python/databricks/bundles/apps/__init__.py @@ -1,18 +1,5 @@ __all__ = [ "App", - "AppDeployment", - "AppDeploymentArtifacts", - "AppDeploymentArtifactsDict", - "AppDeploymentArtifactsParam", - "AppDeploymentDict", - "AppDeploymentMode", - "AppDeploymentModeParam", - "AppDeploymentParam", - "AppDeploymentState", - "AppDeploymentStateParam", - "AppDeploymentStatus", - "AppDeploymentStatusDict", - "AppDeploymentStatusParam", "AppDict", "AppParam", "AppPermission", @@ -60,18 +47,8 @@ "AppResourceUcSecurableUcSecurablePermissionParam", "AppResourceUcSecurableUcSecurableType", "AppResourceUcSecurableUcSecurableTypeParam", - "ApplicationState", - "ApplicationStateParam", - "ApplicationStatus", - "ApplicationStatusDict", - "ApplicationStatusParam", "ComputeSize", "ComputeSizeParam", - "ComputeState", - "ComputeStateParam", - "ComputeStatus", - "ComputeStatusDict", - "ComputeStatusParam", "Lifecycle", "LifecycleDict", "LifecycleParam", @@ -79,29 +56,6 @@ from databricks.bundles.apps._models.app import App, AppDict, AppParam -from databricks.bundles.apps._models.app_deployment import ( - AppDeployment, - AppDeploymentDict, - AppDeploymentParam, -) -from databricks.bundles.apps._models.app_deployment_artifacts import ( - AppDeploymentArtifacts, - AppDeploymentArtifactsDict, - AppDeploymentArtifactsParam, -) -from databricks.bundles.apps._models.app_deployment_mode import ( - AppDeploymentMode, - AppDeploymentModeParam, -) -from databricks.bundles.apps._models.app_deployment_state import ( - AppDeploymentState, - AppDeploymentStateParam, -) -from databricks.bundles.apps._models.app_deployment_status import ( - AppDeploymentStatus, - AppDeploymentStatusDict, - AppDeploymentStatusParam, -) from databricks.bundles.apps._models.app_permission import ( AppPermission, AppPermissionDict, @@ -183,25 +137,7 @@ AppResourceUcSecurableUcSecurableType, AppResourceUcSecurableUcSecurableTypeParam, ) -from databricks.bundles.apps._models.application_state import ( - ApplicationState, - ApplicationStateParam, -) -from databricks.bundles.apps._models.application_status import ( - ApplicationStatus, - ApplicationStatusDict, - ApplicationStatusParam, -) from databricks.bundles.apps._models.compute_size import ComputeSize, ComputeSizeParam -from databricks.bundles.apps._models.compute_state import ( - ComputeState, - ComputeStateParam, -) -from databricks.bundles.apps._models.compute_status import ( - ComputeStatus, - ComputeStatusDict, - ComputeStatusParam, -) from databricks.bundles.apps._models.lifecycle import ( Lifecycle, LifecycleDict, diff --git a/python/databricks/bundles/apps/_models/app.py b/python/databricks/bundles/apps/_models/app.py index c3af63e008..6f9f956936 100644 --- a/python/databricks/bundles/apps/_models/app.py +++ b/python/databricks/bundles/apps/_models/app.py @@ -1,24 +1,12 @@ from dataclasses import dataclass, field from typing import TYPE_CHECKING, TypedDict -from databricks.bundles.apps._models.app_deployment import ( - AppDeployment, - AppDeploymentParam, -) from databricks.bundles.apps._models.app_permission import ( AppPermission, AppPermissionParam, ) from databricks.bundles.apps._models.app_resource import AppResource, AppResourceParam -from databricks.bundles.apps._models.application_status import ( - ApplicationStatus, - ApplicationStatusParam, -) from databricks.bundles.apps._models.compute_size import ComputeSize, ComputeSizeParam -from databricks.bundles.apps._models.compute_status import ( - ComputeStatus, - ComputeStatusParam, -) from databricks.bundles.apps._models.lifecycle import Lifecycle, LifecycleParam from databricks.bundles.core._resource import Resource from databricks.bundles.core._transform import _transform @@ -45,68 +33,20 @@ class App(Resource): source_code_path: VariableOr[str] - active_deployment: VariableOrOptional[AppDeployment] = None - """ - The active deployment of the app. A deployment is considered active when it has been deployed - to the app compute. - """ - - app_status: VariableOrOptional[ApplicationStatus] = None - budget_policy_id: VariableOrOptional[str] = None compute_size: VariableOrOptional[ComputeSize] = None - compute_status: VariableOrOptional[ComputeStatus] = None - - create_time: VariableOrOptional[str] = None - """ - The creation time of the app. Formatted timestamp in ISO 6801. - """ - - creator: VariableOrOptional[str] = None - """ - The email of the user that created the app. - """ - - default_source_code_path: VariableOrOptional[str] = None - """ - The default workspace file system path of the source code from which app deployment are - created. This field tracks the workspace source code path of the last active deployment. - """ - description: VariableOrOptional[str] = None """ The description of the app. """ - effective_budget_policy_id: VariableOrOptional[str] = None - - effective_user_api_scopes: VariableOrList[str] = field(default_factory=list) - """ - The effective api scopes granted to the user access token. - """ - - id: VariableOrOptional[str] = None - """ - The unique identifier of the app. - """ - lifecycle: VariableOrOptional[Lifecycle] = None """ Lifecycle is a struct that contains the lifecycle settings for a resource. It controls the behavior of the resource when it is deployed or destroyed. """ - oauth2_app_client_id: VariableOrOptional[str] = None - - oauth2_app_integration_id: VariableOrOptional[str] = None - - pending_deployment: VariableOrOptional[AppDeployment] = None - """ - The pending deployment of the app. A deployment is considered pending when it is being prepared - for deployment to the app compute. - """ - permissions: VariableOrList[AppPermission] = field(default_factory=list) resources: VariableOrList[AppResource] = field(default_factory=list) @@ -114,27 +54,6 @@ class App(Resource): Resources for the app. """ - service_principal_client_id: VariableOrOptional[str] = None - - service_principal_id: VariableOrOptional[int] = None - - service_principal_name: VariableOrOptional[str] = None - - update_time: VariableOrOptional[str] = None - """ - The update time of the app. Formatted timestamp in ISO 6801. - """ - - updater: VariableOrOptional[str] = None - """ - The email of the user that last updated the app. - """ - - url: VariableOrOptional[str] = None - """ - The URL of the app once it is deployed. - """ - user_api_scopes: VariableOrList[str] = field(default_factory=list) @classmethod @@ -156,68 +75,20 @@ class AppDict(TypedDict, total=False): source_code_path: VariableOr[str] - active_deployment: VariableOrOptional[AppDeploymentParam] - """ - The active deployment of the app. A deployment is considered active when it has been deployed - to the app compute. - """ - - app_status: VariableOrOptional[ApplicationStatusParam] - budget_policy_id: VariableOrOptional[str] compute_size: VariableOrOptional[ComputeSizeParam] - compute_status: VariableOrOptional[ComputeStatusParam] - - create_time: VariableOrOptional[str] - """ - The creation time of the app. Formatted timestamp in ISO 6801. - """ - - creator: VariableOrOptional[str] - """ - The email of the user that created the app. - """ - - default_source_code_path: VariableOrOptional[str] - """ - The default workspace file system path of the source code from which app deployment are - created. This field tracks the workspace source code path of the last active deployment. - """ - description: VariableOrOptional[str] """ The description of the app. """ - effective_budget_policy_id: VariableOrOptional[str] - - effective_user_api_scopes: VariableOrList[str] - """ - The effective api scopes granted to the user access token. - """ - - id: VariableOrOptional[str] - """ - The unique identifier of the app. - """ - lifecycle: VariableOrOptional[LifecycleParam] """ Lifecycle is a struct that contains the lifecycle settings for a resource. It controls the behavior of the resource when it is deployed or destroyed. """ - oauth2_app_client_id: VariableOrOptional[str] - - oauth2_app_integration_id: VariableOrOptional[str] - - pending_deployment: VariableOrOptional[AppDeploymentParam] - """ - The pending deployment of the app. A deployment is considered pending when it is being prepared - for deployment to the app compute. - """ - permissions: VariableOrList[AppPermissionParam] resources: VariableOrList[AppResourceParam] @@ -225,27 +96,6 @@ class AppDict(TypedDict, total=False): Resources for the app. """ - service_principal_client_id: VariableOrOptional[str] - - service_principal_id: VariableOrOptional[int] - - service_principal_name: VariableOrOptional[str] - - update_time: VariableOrOptional[str] - """ - The update time of the app. Formatted timestamp in ISO 6801. - """ - - updater: VariableOrOptional[str] - """ - The email of the user that last updated the app. - """ - - url: VariableOrOptional[str] - """ - The URL of the app once it is deployed. - """ - user_api_scopes: VariableOrList[str] diff --git a/python/databricks/bundles/apps/_models/app_deployment.py b/python/databricks/bundles/apps/_models/app_deployment.py deleted file mode 100644 index 53556a4caa..0000000000 --- a/python/databricks/bundles/apps/_models/app_deployment.py +++ /dev/null @@ -1,72 +0,0 @@ -from dataclasses import dataclass -from typing import TYPE_CHECKING, TypedDict - -from databricks.bundles.apps._models.app_deployment_artifacts import ( - AppDeploymentArtifacts, - AppDeploymentArtifactsParam, -) -from databricks.bundles.apps._models.app_deployment_mode import ( - AppDeploymentMode, - AppDeploymentModeParam, -) -from databricks.bundles.apps._models.app_deployment_status import ( - AppDeploymentStatus, - AppDeploymentStatusParam, -) -from databricks.bundles.core._transform import _transform -from databricks.bundles.core._transform_to_json import _transform_to_json_value -from databricks.bundles.core._variable import VariableOrOptional - -if TYPE_CHECKING: - from typing_extensions import Self - - -@dataclass(kw_only=True) -class AppDeployment: - """""" - - create_time: VariableOrOptional[str] = None - - creator: VariableOrOptional[str] = None - - deployment_artifacts: VariableOrOptional[AppDeploymentArtifacts] = None - - deployment_id: VariableOrOptional[str] = None - - mode: VariableOrOptional[AppDeploymentMode] = None - - source_code_path: VariableOrOptional[str] = None - - status: VariableOrOptional[AppDeploymentStatus] = None - - update_time: VariableOrOptional[str] = None - - @classmethod - def from_dict(cls, value: "AppDeploymentDict") -> "Self": - return _transform(cls, value) - - def as_dict(self) -> "AppDeploymentDict": - return _transform_to_json_value(self) # type:ignore - - -class AppDeploymentDict(TypedDict, total=False): - """""" - - create_time: VariableOrOptional[str] - - creator: VariableOrOptional[str] - - deployment_artifacts: VariableOrOptional[AppDeploymentArtifactsParam] - - deployment_id: VariableOrOptional[str] - - mode: VariableOrOptional[AppDeploymentModeParam] - - source_code_path: VariableOrOptional[str] - - status: VariableOrOptional[AppDeploymentStatusParam] - - update_time: VariableOrOptional[str] - - -AppDeploymentParam = AppDeploymentDict | AppDeployment diff --git a/python/databricks/bundles/apps/_models/app_deployment_artifacts.py b/python/databricks/bundles/apps/_models/app_deployment_artifacts.py deleted file mode 100644 index 59eaf53f79..0000000000 --- a/python/databricks/bundles/apps/_models/app_deployment_artifacts.py +++ /dev/null @@ -1,32 +0,0 @@ -from dataclasses import dataclass -from typing import TYPE_CHECKING, TypedDict - -from databricks.bundles.core._transform import _transform -from databricks.bundles.core._transform_to_json import _transform_to_json_value -from databricks.bundles.core._variable import VariableOrOptional - -if TYPE_CHECKING: - from typing_extensions import Self - - -@dataclass(kw_only=True) -class AppDeploymentArtifacts: - """""" - - source_code_path: VariableOrOptional[str] = None - - @classmethod - def from_dict(cls, value: "AppDeploymentArtifactsDict") -> "Self": - return _transform(cls, value) - - def as_dict(self) -> "AppDeploymentArtifactsDict": - return _transform_to_json_value(self) # type:ignore - - -class AppDeploymentArtifactsDict(TypedDict, total=False): - """""" - - source_code_path: VariableOrOptional[str] - - -AppDeploymentArtifactsParam = AppDeploymentArtifactsDict | AppDeploymentArtifacts diff --git a/python/databricks/bundles/apps/_models/app_deployment_mode.py b/python/databricks/bundles/apps/_models/app_deployment_mode.py deleted file mode 100644 index f6f567b9fe..0000000000 --- a/python/databricks/bundles/apps/_models/app_deployment_mode.py +++ /dev/null @@ -1,10 +0,0 @@ -from enum import Enum -from typing import Literal - - -class AppDeploymentMode(Enum): - SNAPSHOT = "SNAPSHOT" - AUTO_SYNC = "AUTO_SYNC" - - -AppDeploymentModeParam = Literal["SNAPSHOT", "AUTO_SYNC"] | AppDeploymentMode diff --git a/python/databricks/bundles/apps/_models/app_deployment_state.py b/python/databricks/bundles/apps/_models/app_deployment_state.py deleted file mode 100644 index 696135b807..0000000000 --- a/python/databricks/bundles/apps/_models/app_deployment_state.py +++ /dev/null @@ -1,14 +0,0 @@ -from enum import Enum -from typing import Literal - - -class AppDeploymentState(Enum): - SUCCEEDED = "SUCCEEDED" - FAILED = "FAILED" - IN_PROGRESS = "IN_PROGRESS" - CANCELLED = "CANCELLED" - - -AppDeploymentStateParam = ( - Literal["SUCCEEDED", "FAILED", "IN_PROGRESS", "CANCELLED"] | AppDeploymentState -) diff --git a/python/databricks/bundles/apps/_models/app_deployment_status.py b/python/databricks/bundles/apps/_models/app_deployment_status.py deleted file mode 100644 index b8af981213..0000000000 --- a/python/databricks/bundles/apps/_models/app_deployment_status.py +++ /dev/null @@ -1,40 +0,0 @@ -from dataclasses import dataclass -from typing import TYPE_CHECKING, TypedDict - -from databricks.bundles.apps._models.app_deployment_state import ( - AppDeploymentState, - AppDeploymentStateParam, -) -from databricks.bundles.core._transform import _transform -from databricks.bundles.core._transform_to_json import _transform_to_json_value -from databricks.bundles.core._variable import VariableOrOptional - -if TYPE_CHECKING: - from typing_extensions import Self - - -@dataclass(kw_only=True) -class AppDeploymentStatus: - """""" - - message: VariableOrOptional[str] = None - - state: VariableOrOptional[AppDeploymentState] = None - - @classmethod - def from_dict(cls, value: "AppDeploymentStatusDict") -> "Self": - return _transform(cls, value) - - def as_dict(self) -> "AppDeploymentStatusDict": - return _transform_to_json_value(self) # type:ignore - - -class AppDeploymentStatusDict(TypedDict, total=False): - """""" - - message: VariableOrOptional[str] - - state: VariableOrOptional[AppDeploymentStateParam] - - -AppDeploymentStatusParam = AppDeploymentStatusDict | AppDeploymentStatus diff --git a/python/databricks/bundles/apps/_models/application_state.py b/python/databricks/bundles/apps/_models/application_state.py deleted file mode 100644 index 53095e7e64..0000000000 --- a/python/databricks/bundles/apps/_models/application_state.py +++ /dev/null @@ -1,14 +0,0 @@ -from enum import Enum -from typing import Literal - - -class ApplicationState(Enum): - DEPLOYING = "DEPLOYING" - RUNNING = "RUNNING" - CRASHED = "CRASHED" - UNAVAILABLE = "UNAVAILABLE" - - -ApplicationStateParam = ( - Literal["DEPLOYING", "RUNNING", "CRASHED", "UNAVAILABLE"] | ApplicationState -) diff --git a/python/databricks/bundles/apps/_models/application_status.py b/python/databricks/bundles/apps/_models/application_status.py deleted file mode 100644 index 888a0423d2..0000000000 --- a/python/databricks/bundles/apps/_models/application_status.py +++ /dev/null @@ -1,40 +0,0 @@ -from dataclasses import dataclass -from typing import TYPE_CHECKING, TypedDict - -from databricks.bundles.apps._models.application_state import ( - ApplicationState, - ApplicationStateParam, -) -from databricks.bundles.core._transform import _transform -from databricks.bundles.core._transform_to_json import _transform_to_json_value -from databricks.bundles.core._variable import VariableOrOptional - -if TYPE_CHECKING: - from typing_extensions import Self - - -@dataclass(kw_only=True) -class ApplicationStatus: - """""" - - message: VariableOrOptional[str] = None - - state: VariableOrOptional[ApplicationState] = None - - @classmethod - def from_dict(cls, value: "ApplicationStatusDict") -> "Self": - return _transform(cls, value) - - def as_dict(self) -> "ApplicationStatusDict": - return _transform_to_json_value(self) # type:ignore - - -class ApplicationStatusDict(TypedDict, total=False): - """""" - - message: VariableOrOptional[str] - - state: VariableOrOptional[ApplicationStateParam] - - -ApplicationStatusParam = ApplicationStatusDict | ApplicationStatus diff --git a/python/databricks/bundles/apps/_models/compute_state.py b/python/databricks/bundles/apps/_models/compute_state.py deleted file mode 100644 index d9416415b3..0000000000 --- a/python/databricks/bundles/apps/_models/compute_state.py +++ /dev/null @@ -1,20 +0,0 @@ -from enum import Enum -from typing import Literal - - -class ComputeState(Enum): - ERROR = "ERROR" - DELETING = "DELETING" - STARTING = "STARTING" - STOPPING = "STOPPING" - UPDATING = "UPDATING" - STOPPED = "STOPPED" - ACTIVE = "ACTIVE" - - -ComputeStateParam = ( - Literal[ - "ERROR", "DELETING", "STARTING", "STOPPING", "UPDATING", "STOPPED", "ACTIVE" - ] - | ComputeState -) diff --git a/python/databricks/bundles/apps/_models/compute_status.py b/python/databricks/bundles/apps/_models/compute_status.py deleted file mode 100644 index 7c4b911dea..0000000000 --- a/python/databricks/bundles/apps/_models/compute_status.py +++ /dev/null @@ -1,46 +0,0 @@ -from dataclasses import dataclass -from typing import TYPE_CHECKING, TypedDict - -from databricks.bundles.apps._models.compute_state import ( - ComputeState, - ComputeStateParam, -) -from databricks.bundles.core._transform import _transform -from databricks.bundles.core._transform_to_json import _transform_to_json_value -from databricks.bundles.core._variable import VariableOrOptional - -if TYPE_CHECKING: - from typing_extensions import Self - - -@dataclass(kw_only=True) -class ComputeStatus: - """""" - - message: VariableOrOptional[str] = None - - state: VariableOrOptional[ComputeState] = None - """ - State of the app compute. - """ - - @classmethod - def from_dict(cls, value: "ComputeStatusDict") -> "Self": - return _transform(cls, value) - - def as_dict(self) -> "ComputeStatusDict": - return _transform_to_json_value(self) # type:ignore - - -class ComputeStatusDict(TypedDict, total=False): - """""" - - message: VariableOrOptional[str] - - state: VariableOrOptional[ComputeStateParam] - """ - State of the app compute. - """ - - -ComputeStatusParam = ComputeStatusDict | ComputeStatus