99
1010from pydantic .v1 import Field , validator
1111
12- from pyatlan .model .enums import TableType
12+ from pyatlan .model .enums import AtlanConnectorType , TableType
1313from pyatlan .model .fields .atlan_fields import (
1414 BooleanField ,
1515 KeywordField ,
1818 RelationField ,
1919 TextField ,
2020)
21+ from pyatlan .utils import init_guid , validate_required_fields
2122
2223from .table import Table
2324
2425
2526class 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 = (
0 commit comments