Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CXD-321 : ApplicationField typedef addition #481

Merged
merged 10 commits into from
Jan 31, 2025
10 changes: 10 additions & 0 deletions docs/asset/applicationfield.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.. _applicationfield:

ApplicationField
================

.. module:: pyatlan.model.assets
:no-index:

.. autoclass:: ApplicationField
:members:
1 change: 1 addition & 0 deletions docs/assets.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ You can interact with all of the following different kinds of assets:
asset/anomalocheck
asset/app
asset/application
asset/applicationfield
asset/asset
asset/atlasglossary
asset/atlasglossarycategory
Expand Down
1 change: 1 addition & 0 deletions pyatlan/generator/templates/imports.jinja2
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ from pyatlan.model.structs import (
AwsTag,
AzureTag,
BadgeCondition,
BusinessPolicyRule,
ColumnValueFrequencyMap,
DbtMetricFilter,
GoogleLabel,
Expand Down
38 changes: 38 additions & 0 deletions pyatlan/generator/templates/methods/asset/application_field.jinja2
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@

@overload
@classmethod
def creator(
cls,
*,
name: str,
application_qualified_name: str,
) -> ApplicationField: ...

@overload
@classmethod
def creator(
cls,
*,
name: str,
application_qualified_name: str,
connection_qualified_name: str,
) -> ApplicationField: ...

@classmethod
@init_guid
def creator(
cls,
*,
name: str,
application_qualified_name: str,
connection_qualified_name: Optional[str] = None,
) -> ApplicationField:
validate_required_fields(
["name", "application_qualified_name"], [name, application_qualified_name]
)
attributes = ApplicationField.Attributes.create(
name=name,
application_qualified_name=application_qualified_name,
connection_qualified_name=connection_qualified_name,
)
return cls(attributes=attributes)
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@

@classmethod
@init_guid
def create(
cls,
*,
name: str,
application_qualified_name: str,
connection_qualified_name: Optional[str] = None,
) -> ApplicationField.Attributes:
validate_required_fields(
["name", "application_qualified_name"],
[name, application_qualified_name],
)
if connection_qualified_name:
connector_name = AtlanConnectorType.get_connector_name(
connection_qualified_name
)
else:
connection_qn, connector_name = AtlanConnectorType.get_connector_name(
application_qualified_name, "application_qualified_name", 4
)

return ApplicationField.Attributes(
name=name,
qualified_name=f"{application_qualified_name}/{name}",
connection_qualified_name=connection_qualified_name or connection_qn,
connector_name=connector_name,
application_parent_qualified_name=application_qualified_name,
application_parent=Application.ref_by_qualified_name(application_qualified_name),
)
3 changes: 2 additions & 1 deletion pyatlan/model/assets/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
"Stakeholder",
"AirflowDag",
"AirflowTask",
"ApplicationField",
"Application",
"AdfDataflow",
"AdfDataset",
Expand Down Expand Up @@ -66,8 +67,8 @@
"Column",
"DatabricksUnityCatalogTag",
"SnowflakeStream",
"CalculationView",
"Database",
"CalculationView",
"Procedure",
"SnowflakeTag",
"CosmosMongoDB",
Expand Down
4 changes: 3 additions & 1 deletion pyatlan/model/assets/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ __all__ = [
"Stakeholder",
"AirflowDag",
"AirflowTask",
"ApplicationField",
"Application",
"AdfDataflow",
"AdfDataset",
Expand Down Expand Up @@ -63,8 +64,8 @@ __all__ = [
"Column",
"DatabricksUnityCatalogTag",
"SnowflakeStream",
"CalculationView",
"Database",
"CalculationView",
"Procedure",
"SnowflakeTag",
"CosmosMongoDB",
Expand Down Expand Up @@ -380,6 +381,7 @@ from .core.anomalo import Anomalo
from .core.anomalo_check import AnomaloCheck
from .core.app import App
from .core.application import Application
from .core.application_field import ApplicationField
from .core.asset import Asset
from .core.atlas_glossary import AtlasGlossary
from .core.atlas_glossary_category import AtlasGlossaryCategory
Expand Down
25 changes: 25 additions & 0 deletions pyatlan/model/assets/business_policy.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
RelationField,
TextField,
)
from pyatlan.model.structs import BusinessPolicyRule

from .core.asset import Asset

Expand Down Expand Up @@ -89,6 +90,12 @@ def __setattr__(self, name, value):
"""
Selected approval workflow id for business policy
"""
BUSINESS_POLICY_RULES: ClassVar[KeywordField] = KeywordField(
"businessPolicyRules", "businessPolicyRules"
)
"""
List of rules applied to this business policy.
"""

EXCEPTIONS_FOR_BUSINESS_POLICY: ClassVar[RelationField] = RelationField(
"exceptionsForBusinessPolicy"
Expand All @@ -113,6 +120,7 @@ def __setattr__(self, name, value):
"business_policy_filter_d_s_l",
"business_policy_base_parent_guid",
"business_policy_selected_approval_w_f",
"business_policy_rules",
"exceptions_for_business_policy",
"related_business_policies",
]
Expand Down Expand Up @@ -255,6 +263,20 @@ def business_policy_selected_approval_w_f(
business_policy_selected_approval_w_f
)

@property
def business_policy_rules(self) -> Optional[List[BusinessPolicyRule]]:
return (
None if self.attributes is None else self.attributes.business_policy_rules
)

@business_policy_rules.setter
def business_policy_rules(
self, business_policy_rules: Optional[List[BusinessPolicyRule]]
):
if self.attributes is None:
self.attributes = self.Attributes()
self.attributes.business_policy_rules = business_policy_rules

@property
def exceptions_for_business_policy(self) -> Optional[List[BusinessPolicyException]]:
return (
Expand Down Expand Up @@ -311,6 +333,9 @@ class Attributes(Asset.Attributes):
business_policy_selected_approval_w_f: Optional[str] = Field(
default=None, description=""
)
business_policy_rules: Optional[List[BusinessPolicyRule]] = Field(
default=None, description=""
)
exceptions_for_business_policy: Optional[List[BusinessPolicyException]] = Field(
default=None, description=""
) # relationship
Expand Down
4 changes: 3 additions & 1 deletion pyatlan/model/assets/core/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from .anomalo_check import AnomaloCheck
from .app import App
from .application import Application
from .application_field import ApplicationField
from .asset import Asset
from .atlas_glossary import AtlasGlossary
from .atlas_glossary_category import AtlasGlossaryCategory
Expand Down Expand Up @@ -147,6 +148,7 @@
Stakeholder.Attributes.update_forward_refs(**localns)
AirflowDag.Attributes.update_forward_refs(**localns)
AirflowTask.Attributes.update_forward_refs(**localns)
ApplicationField.Attributes.update_forward_refs(**localns)
Application.Attributes.update_forward_refs(**localns)
AdfDataflow.Attributes.update_forward_refs(**localns)
AdfDataset.Attributes.update_forward_refs(**localns)
Expand Down Expand Up @@ -174,8 +176,8 @@
Column.Attributes.update_forward_refs(**localns)
DatabricksUnityCatalogTag.Attributes.update_forward_refs(**localns)
SnowflakeStream.Attributes.update_forward_refs(**localns)
CalculationView.Attributes.update_forward_refs(**localns)
Database.Attributes.update_forward_refs(**localns)
CalculationView.Attributes.update_forward_refs(**localns)
Procedure.Attributes.update_forward_refs(**localns)
SnowflakeTag.Attributes.update_forward_refs(**localns)
CosmosMongoDB.Attributes.update_forward_refs(**localns)
Expand Down
27 changes: 27 additions & 0 deletions pyatlan/model/assets/core/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,16 @@ def __setattr__(self, name, value):
"""
TBC
"""
APPLICATION_CHILD_FIELDS: ClassVar[RelationField] = RelationField(
"applicationChildFields"
)
"""
TBC
"""

_convenience_properties: ClassVar[List[str]] = [
"application_owned_assets",
"application_child_fields",
]

@property
Expand All @@ -73,10 +80,29 @@ def application_owned_assets(self, application_owned_assets: Optional[List[Asset
self.attributes = self.Attributes()
self.attributes.application_owned_assets = application_owned_assets

@property
def application_child_fields(self) -> Optional[List[ApplicationField]]:
return (
None
if self.attributes is None
else self.attributes.application_child_fields
)

@application_child_fields.setter
def application_child_fields(
self, application_child_fields: Optional[List[ApplicationField]]
):
if self.attributes is None:
self.attributes = self.Attributes()
self.attributes.application_child_fields = application_child_fields

class Attributes(App.Attributes):
application_owned_assets: Optional[List[Asset]] = Field(
default=None, description=""
) # relationship
application_child_fields: Optional[List[ApplicationField]] = Field(
default=None, description=""
) # relationship

@classmethod
@init_guid
Expand Down Expand Up @@ -108,4 +134,5 @@ def creator(
)


from .application_field import ApplicationField # noqa
from .asset import Asset # noqa
Loading
Loading