Source code for pyatlan.model.assets.core.databricks_volume
# SPDX-License-Identifier: Apache-2.0
# Copyright 2025 Atlan Pte. Ltd.
from __future__ import annotations
from typing import ClassVar, List, Optional
from pydantic.v1 import Field, validator
from pyatlan.model.enums import DatabricksVolumeType
from pyatlan.model.fields.atlan_fields import KeywordField, RelationField
from .databricks import Databricks
[docs]
class DatabricksVolume(Databricks):
"""Description"""
type_name: str = Field(default="DatabricksVolume", allow_mutation=False)
@validator("type_name")
def validate_type_name(cls, v):
if v != "DatabricksVolume":
raise ValueError("must be DatabricksVolume")
return v
def __setattr__(self, name, value):
if name in DatabricksVolume._convenience_properties:
return object.__setattr__(self, name, value)
super().__setattr__(name, value)
DATABRICKS_VOLUME_OWNER: ClassVar[KeywordField] = KeywordField(
"databricksVolumeOwner", "databricksVolumeOwner"
)
"""
User or group (principal) currently owning the volume.
"""
DATABRICKS_VOLUME_EXTERNAL_LOCATION: ClassVar[KeywordField] = KeywordField(
"databricksVolumeExternalLocation", "databricksVolumeExternalLocation"
)
"""
The storage location where the volume is created.
"""
DATABRICKS_VOLUME_TYPE: ClassVar[KeywordField] = KeywordField(
"databricksVolumeType", "databricksVolumeType"
)
"""
Type of the volume.
"""
DATABRICKS_VOLUME_SCHEMA: ClassVar[RelationField] = RelationField(
"databricksVolumeSchema"
)
"""
TBC
"""
DATABRICKS_VOLUME_PATHS: ClassVar[RelationField] = RelationField(
"databricksVolumePaths"
)
"""
TBC
"""
_convenience_properties: ClassVar[List[str]] = [
"databricks_volume_owner",
"databricks_volume_external_location",
"databricks_volume_type",
"databricks_volume_schema",
"databricks_volume_paths",
]
@property
def databricks_volume_owner(self) -> Optional[str]:
return (
None if self.attributes is None else self.attributes.databricks_volume_owner
)
@databricks_volume_owner.setter
def databricks_volume_owner(self, databricks_volume_owner: Optional[str]):
if self.attributes is None:
self.attributes = self.Attributes()
self.attributes.databricks_volume_owner = databricks_volume_owner
@property
def databricks_volume_external_location(self) -> Optional[str]:
return (
None
if self.attributes is None
else self.attributes.databricks_volume_external_location
)
@databricks_volume_external_location.setter
def databricks_volume_external_location(
self, databricks_volume_external_location: Optional[str]
):
if self.attributes is None:
self.attributes = self.Attributes()
self.attributes.databricks_volume_external_location = (
databricks_volume_external_location
)
@property
def databricks_volume_type(self) -> Optional[DatabricksVolumeType]:
return (
None if self.attributes is None else self.attributes.databricks_volume_type
)
@databricks_volume_type.setter
def databricks_volume_type(
self, databricks_volume_type: Optional[DatabricksVolumeType]
):
if self.attributes is None:
self.attributes = self.Attributes()
self.attributes.databricks_volume_type = databricks_volume_type
@property
def databricks_volume_schema(self) -> Optional[Schema]:
return (
None
if self.attributes is None
else self.attributes.databricks_volume_schema
)
@databricks_volume_schema.setter
def databricks_volume_schema(self, databricks_volume_schema: Optional[Schema]):
if self.attributes is None:
self.attributes = self.Attributes()
self.attributes.databricks_volume_schema = databricks_volume_schema
@property
def databricks_volume_paths(self) -> Optional[List[DatabricksVolumePath]]:
return (
None if self.attributes is None else self.attributes.databricks_volume_paths
)
@databricks_volume_paths.setter
def databricks_volume_paths(
self, databricks_volume_paths: Optional[List[DatabricksVolumePath]]
):
if self.attributes is None:
self.attributes = self.Attributes()
self.attributes.databricks_volume_paths = databricks_volume_paths
class Attributes(Databricks.Attributes):
databricks_volume_owner: Optional[str] = Field(default=None, description="")
databricks_volume_external_location: Optional[str] = Field(
default=None, description=""
)
databricks_volume_type: Optional[DatabricksVolumeType] = Field(
default=None, description=""
)
databricks_volume_schema: Optional[Schema] = Field(
default=None, description=""
) # relationship
databricks_volume_paths: Optional[List[DatabricksVolumePath]] = Field(
default=None, description=""
) # relationship
attributes: DatabricksVolume.Attributes = Field(
default_factory=lambda: DatabricksVolume.Attributes(),
description=(
"Map of attributes in the instance and their values. "
"The specific keys of this map will vary by type, "
"so are described in the sub-types of this schema."
),
)
from .databricks_volume_path import DatabricksVolumePath # noqa: E402, F401
from .schema import Schema # noqa: E402, F401