Skip to content

Commit 84b48ce

Browse files
authored
Merge pull request #597 from atlanhq/APP-5517
APP-5517 | `DocumentDB` SDK integration
2 parents bb405f8 + 889aed8 commit 84b48ce

12 files changed

+525
-2
lines changed

pyatlan/generator/templates/imports.jinja2

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ from pyatlan.model.enums import (
7171
SchemaRegistrySchemaType,
7272
SourceCostUnitType,
7373
table_type,
74+
alpha_DQRuleThresholdUnit,
75+
FormFieldDimension,
76+
FormFieldType,
7477
)
7578
from pyatlan.model.fields.atlan_fields import (
7679
BooleanField,
@@ -108,6 +111,10 @@ from pyatlan.model.structs import (
108111
StarredDetails,
109112
DbtJobRun,
110113
CustomRatings,
114+
alpha_DQRuleConfigArguments,
115+
alpha_DQRuleTemplateConfig,
116+
ResponseValue,
117+
FormField,
111118
)
112119
from pyatlan.utils import (
113120
init_guid,
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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.creator(
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)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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.creator(
8+
name=name, connection_qualified_name=connection_qualified_name
9+
)
10+
return cls(attributes=attributes)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
@classmethod
2+
@init_guid
3+
def creator(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+
27+
return DocumentDBCollection.Attributes(
28+
name=name,
29+
qualified_name=qualified_name,
30+
database_name=database_name,
31+
database_qualified_name=database_qualified_name,
32+
connector_name=connector_name,
33+
connection_qualified_name=connection_qualified_name,
34+
)
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 creator(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/generator/templates/structs.jinja2

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ from pyatlan.model.enums import (
1313
BadgeComparisonOperator,
1414
BadgeConditionColor,
1515
SourceCostUnitType,
16+
alpha_DQRuleThresholdUnit,
17+
FormFieldDimension,
18+
FormFieldType
1619
)
1720
from pyatlan.model.utils import to_camel_case
1821
from pyatlan.utils import select_optional_set_fields, validate_required_fields

pyatlan/model/assets/core/document_d_b_collection.py

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from pydantic.v1 import Field, validator
1111

12-
from pyatlan.model.enums import TableType
12+
from pyatlan.model.enums import AtlanConnectorType, TableType
1313
from pyatlan.model.fields.atlan_fields import (
1414
BooleanField,
1515
KeywordField,
@@ -18,13 +18,35 @@
1818
RelationField,
1919
TextField,
2020
)
21+
from pyatlan.utils import init_guid, validate_required_fields
2122

2223
from .table import Table
2324

2425

2526
class DocumentDBCollection(Table):
2627
"""Description"""
2728

29+
@classmethod
30+
@init_guid
31+
def creator(
32+
cls,
33+
*,
34+
name: str,
35+
database_qualified_name: str,
36+
database_name: Optional[str] = None,
37+
connection_qualified_name: Optional[str] = None,
38+
) -> DocumentDBCollection:
39+
validate_required_fields(
40+
["name", "database_qualified_name"], [name, database_qualified_name]
41+
)
42+
attributes = DocumentDBCollection.Attributes.creator(
43+
name=name,
44+
database_qualified_name=database_qualified_name,
45+
database_name=database_name,
46+
connection_qualified_name=connection_qualified_name,
47+
)
48+
return cls(attributes=attributes)
49+
2850
type_name: str = Field(default="DocumentDBCollection", allow_mutation=False)
2951

3052
@validator("type_name")
@@ -42,7 +64,7 @@ def __setattr__(self, name, value):
4264
"documentDBCollectionSubtype", "documentDBCollectionSubtype"
4365
)
4466
"""
45-
Subtype of a DocumentDB collection, for example: Capped, Time Series, etc.
67+
Subtype of a DocumentDBCollection, for example: Capped, Time Series, etc.
4668
"""
4769
DOCUMENT_DB_COLLECTION_IS_CAPPED: ClassVar[BooleanField] = BooleanField(
4870
"documentDBCollectionIsCapped", "documentDBCollectionIsCapped"
@@ -1181,6 +1203,42 @@ class Attributes(Table.Attributes):
11811203
default=None, description=""
11821204
) # relationship
11831205

1206+
@classmethod
1207+
@init_guid
1208+
def creator(
1209+
cls,
1210+
*,
1211+
name: str,
1212+
database_qualified_name: str,
1213+
database_name: Optional[str] = None,
1214+
connection_qualified_name: Optional[str] = None,
1215+
) -> DocumentDBCollection.Attributes:
1216+
validate_required_fields(
1217+
["name", "database_qualified_name"], [name, database_qualified_name]
1218+
)
1219+
if connection_qualified_name:
1220+
connector_name = AtlanConnectorType.get_connector_name(
1221+
connection_qualified_name
1222+
)
1223+
else:
1224+
connection_qn, connector_name = AtlanConnectorType.get_connector_name(
1225+
database_qualified_name, "database_qualified_name", 4
1226+
)
1227+
1228+
fields = database_qualified_name.split("/")
1229+
database_name = database_name or fields[3]
1230+
qualified_name = f"{database_qualified_name}/{name}"
1231+
connection_qualified_name = connection_qualified_name or connection_qn
1232+
1233+
return DocumentDBCollection.Attributes(
1234+
name=name,
1235+
qualified_name=qualified_name,
1236+
database_name=database_name,
1237+
database_qualified_name=database_qualified_name,
1238+
connector_name=connector_name,
1239+
connection_qualified_name=connection_qualified_name,
1240+
)
1241+
11841242
attributes: DocumentDBCollection.Attributes = Field(
11851243
default_factory=lambda: DocumentDBCollection.Attributes(),
11861244
description=(

pyatlan/model/assets/core/document_d_b_database.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
from pydantic.v1 import Field, validator
1111

12+
from pyatlan.model.enums import AtlanConnectorType
1213
from pyatlan.model.fields.atlan_fields import (
1314
BooleanField,
1415
KeywordField,
@@ -17,13 +18,27 @@
1718
RelationField,
1819
TextField,
1920
)
21+
from pyatlan.utils import init_guid, validate_required_fields
2022

2123
from .document_d_b import DocumentDB
2224

2325

2426
class DocumentDBDatabase(DocumentDB):
2527
"""Description"""
2628

29+
@classmethod
30+
@init_guid
31+
def creator(
32+
cls, *, name: str, connection_qualified_name: str
33+
) -> DocumentDBDatabase:
34+
validate_required_fields(
35+
["name", "connection_qualified_name"], [name, connection_qualified_name]
36+
)
37+
attributes = DocumentDBDatabase.Attributes.creator(
38+
name=name, connection_qualified_name=connection_qualified_name
39+
)
40+
return cls(attributes=attributes)
41+
2742
type_name: str = Field(default="DocumentDBDatabase", allow_mutation=False)
2843

2944
@validator("type_name")
@@ -546,6 +561,23 @@ class Attributes(DocumentDB.Attributes):
546561
default=None, description=""
547562
) # relationship
548563

564+
@classmethod
565+
@init_guid
566+
def creator(
567+
cls, *, name: str, connection_qualified_name: str
568+
) -> DocumentDBDatabase.Attributes:
569+
validate_required_fields(
570+
["name", "connection_qualified_name"], [name, connection_qualified_name]
571+
)
572+
return DocumentDBDatabase.Attributes(
573+
name=name,
574+
qualified_name=f"{connection_qualified_name}/{name}",
575+
connection_qualified_name=connection_qualified_name,
576+
connector_name=AtlanConnectorType.get_connector_name(
577+
connection_qualified_name
578+
),
579+
)
580+
549581
attributes: DocumentDBDatabase.Attributes = Field(
550582
default_factory=lambda: DocumentDBDatabase.Attributes(),
551583
description=(

0 commit comments

Comments
 (0)