Skip to content

Commit 56a4aff

Browse files
add templates and rendered documentDB typedef
1 parent da980d8 commit 56a4aff

File tree

6 files changed

+291
-2
lines changed

6 files changed

+291
-2
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
@classmethod
2+
@init_guid
3+
def creator(cls, *,
4+
name: str,
5+
database_qualified_name: str,
6+
database_name: Optional[str] = None,
7+
connection_qualified_name: Optional[str] = None,
8+
) -> DocumentDBCollection: #
9+
validate_required_fields(
10+
["name, database_qualified_name"], [name, database_qualified_name]
11+
)
12+
attributes = DocumentDBCollection.Attributes.create(
13+
name=name,
14+
database_qualified_name=database_qualified_name,
15+
database_name=database_name,
16+
connection_qualified_name=connection_qualified_name,
17+
)
18+
return cls(attributes=attributes)
19+
20+
@classmethod
21+
@init_guid
22+
def create(cls, *, name: str, connection_qualified_name: str) -> DocumentDBCollection:
23+
warn(
24+
(
25+
"This method is deprecated, please use 'creator' "
26+
"instead, which offers identical functionality."
27+
),
28+
DeprecationWarning,
29+
stacklevel=2,
30+
)
31+
return cls.creator(
32+
name=name, connection_qualified_name=connection_qualified_name
33+
)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
@classmethod
2+
@init_guid
3+
def creator(cls, *, name: str, connection_qualified_name: str) -> : DocumentDBDatabase
4+
validate_required_fields(
5+
["name", "connection_qualified_name"], [name, connection_qualified_name]
6+
)
7+
attributes = DocumentDBDatabase.Attributes.create(
8+
name=name, connection_qualified_name=connection_qualified_name
9+
)
10+
return cls(attributes=attributes)
11+
12+
@classmethod
13+
@init_guid
14+
def create(cls, *, name: str, connection_qualified_name: str) -> DocumentDBDatabase:
15+
warn(
16+
(
17+
"This method is deprecated, please use 'creator' "
18+
"instead, which offers identical functionality."
19+
),
20+
DeprecationWarning,
21+
stacklevel=2,
22+
)
23+
return cls.creator(
24+
name=name, connection_qualified_name=connection_qualified_name
25+
)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
@classmethod
2+
@init_guid
3+
def create(cls,
4+
*,
5+
name: str,
6+
database_qualified_name: str,
7+
database_name: Optional[str] = None,
8+
connection_qualified_name: Optional[str] = None,
9+
) -> DocumentDBCollection.Attributes:
10+
validate_required_fields(
11+
["name, database_qualified_name"], [name, database_qualified_name]
12+
)
13+
if connection_qualified_name:
14+
connector_name = AtlanConnectorType.get_connector_name(
15+
connection_qualified_name
16+
)
17+
else:
18+
connection_qn, connector_name = AtlanConnectorType.get_connector_name(
19+
database_qualified_name, "database_qualified_name", 4
20+
)
21+
22+
fields = database_qualified_name.split("/")
23+
database_name = database_name or fields[3]
24+
qualified_name = f"{database_qualified_name}/{name}"
25+
connection_qualified_name = connection_qualified_name or connection_qn
26+
database = DocumentDBDatabase.ref_by_qualified_name(database_qualified_name)
27+
28+
return DocumentDBCollection.Attributes(
29+
name=name,
30+
qualified_name=qualified_name,
31+
database=database,
32+
database_name=database_name,
33+
database_qualified_name=database_qualified_name,
34+
connector_name=connector_name,
35+
connection_qualified_name=connection_qualified_name,
36+
)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
@classmethod
2+
@init_guid
3+
def create(cls, *, name: str, connection_qualified_name: str) -> DocumentDBDatabase.Attributes:
4+
validate_required_fields(
5+
["name", "connection_qualified_name"],
6+
[name, connection_qualified_name]
7+
)
8+
return DocumentDBDatabase.Attributes( #
9+
name=name,
10+
qualified_name=f"{connection_qualified_name}/{name}",
11+
connection_qualified_name=connection_qualified_name,
12+
connector_name=AtlanConnectorType.get_connector_name(
13+
connection_qualified_name
14+
),
15+
)

pyatlan/model/assets/core/document_d_b_collection.py

Lines changed: 116 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66

77
from datetime import datetime
88
from typing import ClassVar, Dict, List, Optional
9+
from warnings import warn
910

1011
from pydantic.v1 import Field, validator
1112

12-
from pyatlan.model.enums import TableType
13+
from pyatlan.model.enums import AtlanConnectorType, TableType
1314
from pyatlan.model.fields.atlan_fields import (
1415
BooleanField,
1516
KeywordField,
@@ -18,13 +19,52 @@
1819
RelationField,
1920
TextField,
2021
)
22+
from pyatlan.utils import init_guid, validate_required_fields
2123

2224
from .table import Table
2325

2426

2527
class DocumentDBCollection(Table):
2628
"""Description"""
2729

30+
@classmethod
31+
@init_guid
32+
def creator(
33+
cls,
34+
*,
35+
name: str,
36+
database_qualified_name: str,
37+
database_name: Optional[str] = None,
38+
connection_qualified_name: Optional[str] = None,
39+
) -> DocumentDBCollection: #
40+
validate_required_fields(
41+
["name, database_qualified_name"], [name, database_qualified_name]
42+
)
43+
attributes = DocumentDBCollection.Attributes.create(
44+
name=name,
45+
database_qualified_name=database_qualified_name,
46+
database_name=database_name,
47+
connection_qualified_name=connection_qualified_name,
48+
)
49+
return cls(attributes=attributes)
50+
51+
@classmethod
52+
@init_guid
53+
def create(
54+
cls, *, name: str, connection_qualified_name: str
55+
) -> DocumentDBCollection:
56+
warn(
57+
(
58+
"This method is deprecated, please use 'creator' "
59+
"instead, which offers identical functionality."
60+
),
61+
DeprecationWarning,
62+
stacklevel=2,
63+
)
64+
return cls.creator(
65+
name=name, connection_qualified_name=connection_qualified_name
66+
)
67+
2868
type_name: str = Field(default="DocumentDBCollection", allow_mutation=False)
2969

3070
@validator("type_name")
@@ -42,7 +82,7 @@ def __setattr__(self, name, value):
4282
"documentDBCollectionSubtype", "documentDBCollectionSubtype"
4383
)
4484
"""
45-
Subtype of a DocumentDB collection, for example: Capped, Time Series, etc.
85+
Subtype of a DocumentDBCollection, for example: Capped, Time Series, etc.
4686
"""
4787
DOCUMENT_DB_COLLECTION_IS_CAPPED: ClassVar[BooleanField] = BooleanField(
4888
"documentDBCollectionIsCapped", "documentDBCollectionIsCapped"
@@ -186,6 +226,12 @@ def __setattr__(self, name, value):
186226
"""
187227
List of partitions in this table.
188228
"""
229+
SYNTHETIC_DATA_URL: ClassVar[KeywordTextField] = KeywordTextField(
230+
"syntheticDataUrl", "syntheticDataUrl", "syntheticDataUrl.text"
231+
)
232+
"""
233+
TBC
234+
"""
189235
IS_SHARDED: ClassVar[BooleanField] = BooleanField("isSharded", "isSharded")
190236
"""
191237
Whether this table is a sharded table (true) or not (false).
@@ -334,6 +380,12 @@ def __setattr__(self, name, value):
334380
"""
335381
Time (epoch) at which this asset was last profiled, in milliseconds.
336382
"""
383+
SQL_ASSET_COMMENT: ClassVar[TextField] = TextField(
384+
"sqlAssetComment", "sqlAssetComment"
385+
)
386+
"""
387+
Comments added in SAP tables, columns and views to document their purpose and functionality.
388+
"""
337389
NO_SQL_SCHEMA_DEFINITION: ClassVar[TextField] = TextField(
338390
"noSQLSchemaDefinition", "noSQLSchemaDefinition"
339391
)
@@ -373,6 +425,7 @@ def __setattr__(self, name, value):
373425
"partition_strategy",
374426
"partition_count",
375427
"partition_list",
428+
"synthetic_data_url",
376429
"is_sharded",
377430
"table_type",
378431
"iceberg_catalog_name",
@@ -399,6 +452,7 @@ def __setattr__(self, name, value):
399452
"calculation_view_qualified_name",
400453
"is_profiled",
401454
"last_profiled_at",
455+
"sql_asset_comment",
402456
"no_s_q_l_schema_definition",
403457
"document_d_b_database",
404458
]
@@ -767,6 +821,16 @@ def partition_list(self, partition_list: Optional[str]):
767821
self.attributes = self.Attributes()
768822
self.attributes.partition_list = partition_list
769823

824+
@property
825+
def synthetic_data_url(self) -> Optional[str]:
826+
return None if self.attributes is None else self.attributes.synthetic_data_url
827+
828+
@synthetic_data_url.setter
829+
def synthetic_data_url(self, synthetic_data_url: Optional[str]):
830+
if self.attributes is None:
831+
self.attributes = self.Attributes()
832+
self.attributes.synthetic_data_url = synthetic_data_url
833+
770834
@property
771835
def is_sharded(self) -> Optional[bool]:
772836
return None if self.attributes is None else self.attributes.is_sharded
@@ -1065,6 +1129,16 @@ def last_profiled_at(self, last_profiled_at: Optional[datetime]):
10651129
self.attributes = self.Attributes()
10661130
self.attributes.last_profiled_at = last_profiled_at
10671131

1132+
@property
1133+
def sql_asset_comment(self) -> Optional[str]:
1134+
return None if self.attributes is None else self.attributes.sql_asset_comment
1135+
1136+
@sql_asset_comment.setter
1137+
def sql_asset_comment(self, sql_asset_comment: Optional[str]):
1138+
if self.attributes is None:
1139+
self.attributes = self.Attributes()
1140+
self.attributes.sql_asset_comment = sql_asset_comment
1141+
10681142
@property
10691143
def no_s_q_l_schema_definition(self) -> Optional[str]:
10701144
return (
@@ -1146,6 +1220,7 @@ class Attributes(Table.Attributes):
11461220
partition_strategy: Optional[str] = Field(default=None, description="")
11471221
partition_count: Optional[int] = Field(default=None, description="")
11481222
partition_list: Optional[str] = Field(default=None, description="")
1223+
synthetic_data_url: Optional[str] = Field(default=None, description="")
11491224
is_sharded: Optional[bool] = Field(default=None, description="")
11501225
table_type: Optional[TableType] = Field(default=None, description="")
11511226
iceberg_catalog_name: Optional[str] = Field(default=None, description="")
@@ -1176,11 +1251,50 @@ class Attributes(Table.Attributes):
11761251
)
11771252
is_profiled: Optional[bool] = Field(default=None, description="")
11781253
last_profiled_at: Optional[datetime] = Field(default=None, description="")
1254+
sql_asset_comment: Optional[str] = Field(default=None, description="")
11791255
no_s_q_l_schema_definition: Optional[str] = Field(default=None, description="")
11801256
document_d_b_database: Optional[DocumentDBDatabase] = Field(
11811257
default=None, description=""
11821258
) # relationship
11831259

1260+
@classmethod
1261+
@init_guid
1262+
def create(
1263+
cls,
1264+
*,
1265+
name: str,
1266+
database_qualified_name: str,
1267+
database_name: Optional[str] = None,
1268+
connection_qualified_name: Optional[str] = None,
1269+
) -> DocumentDBCollection.Attributes:
1270+
validate_required_fields(
1271+
["name, database_qualified_name"], [name, database_qualified_name]
1272+
)
1273+
if connection_qualified_name:
1274+
connector_name = AtlanConnectorType.get_connector_name(
1275+
connection_qualified_name
1276+
)
1277+
else:
1278+
connection_qn, connector_name = AtlanConnectorType.get_connector_name(
1279+
database_qualified_name, "database_qualified_name", 4
1280+
)
1281+
1282+
fields = database_qualified_name.split("/")
1283+
database_name = database_name or fields[3]
1284+
qualified_name = f"{database_qualified_name}/{name}"
1285+
connection_qualified_name = connection_qualified_name or connection_qn
1286+
database = DocumentDBDatabase.ref_by_qualified_name(database_qualified_name)
1287+
1288+
return DocumentDBCollection.Attributes(
1289+
name=name,
1290+
qualified_name=qualified_name,
1291+
database=database,
1292+
database_name=database_name,
1293+
database_qualified_name=database_qualified_name,
1294+
connector_name=connector_name,
1295+
connection_qualified_name=connection_qualified_name,
1296+
)
1297+
11841298
attributes: DocumentDBCollection.Attributes = Field(
11851299
default_factory=lambda: DocumentDBCollection.Attributes(),
11861300
description=(

0 commit comments

Comments
 (0)