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 97% rename from experimental/python/codegen/codegen/packages.py rename to python/codegen/codegen/packages.py index 48fe8270ab..de5b3cf576 100644 --- a/experimental/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/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/python/databricks/bundles/apps/__init__.py b/python/databricks/bundles/apps/__init__.py new file mode 100644 index 0000000000..488c95afa5 --- /dev/null +++ b/python/databricks/bundles/apps/__init__.py @@ -0,0 +1,145 @@ +__all__ = [ + "App", + "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", + "ComputeSize", + "ComputeSizeParam", + "Lifecycle", + "LifecycleDict", + "LifecycleParam", +] + + +from databricks.bundles.apps._models.app import App, AppDict, AppParam +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.compute_size import ComputeSize, ComputeSizeParam +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..6f9f956936 --- /dev/null +++ b/python/databricks/bundles/apps/_models/app.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass, field +from typing import TYPE_CHECKING, TypedDict + +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.compute_size import ComputeSize, ComputeSizeParam +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] + + budget_policy_id: VariableOrOptional[str] = None + + compute_size: VariableOrOptional[ComputeSize] = None + + description: VariableOrOptional[str] = None + """ + The description 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. + """ + + permissions: VariableOrList[AppPermission] = field(default_factory=list) + + resources: VariableOrList[AppResource] = field(default_factory=list) + """ + Resources for the app. + """ + + 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] + + budget_policy_id: VariableOrOptional[str] + + compute_size: VariableOrOptional[ComputeSizeParam] + + description: VariableOrOptional[str] + """ + The description 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. + """ + + permissions: VariableOrList[AppPermissionParam] + + resources: VariableOrList[AppResourceParam] + """ + Resources for the app. + """ + + user_api_scopes: VariableOrList[str] + + +AppParam = AppDict | App 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/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/experimental/python/databricks/bundles/jobs/_models/lifecycle.py b/python/databricks/bundles/apps/_models/lifecycle.py similarity index 100% rename from experimental/python/databricks/bundles/jobs/_models/lifecycle.py rename to python/databricks/bundles/apps/_models/lifecycle.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/pipelines/_models/lifecycle.py b/python/databricks/bundles/jobs/_models/lifecycle.py similarity index 100% rename from experimental/python/databricks/bundles/pipelines/_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/schemas/_models/lifecycle.py b/python/databricks/bundles/pipelines/_models/lifecycle.py similarity index 100% rename from experimental/python/databricks/bundles/schemas/_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/volumes/_models/lifecycle.py b/python/databricks/bundles/schemas/_models/lifecycle.py similarity index 100% rename from experimental/python/databricks/bundles/volumes/_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/python/databricks/bundles/volumes/_models/lifecycle.py b/python/databricks/bundles/volumes/_models/lifecycle.py new file mode 100644 index 0000000000..c934967f37 --- /dev/null +++ b/python/databricks/bundles/volumes/_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 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