@@ -447,10 +447,14 @@ class {{ entity_def.name }}({{super_classes[0]}} {%- if "Asset" in super_classes
447447 {% - elif entity_def .name == "Schema" %}
448448 @classmethod
449449 # @validate_arguments()
450- def create(cls, *, name: str, database_qualified_name: str)->{{ entity_def.name }}.Attributes:
450+ def create(
451+ cls, *, name: str, database_qualified_name: str
452+ ) -> Schema.Attributes:
451453 if not name:
452454 raise ValueError("name cannot be blank")
453- validate_required_fields(["database_qualified_name"], [database_qualified_name])
455+ validate_required_fields(
456+ ["database_qualified_name"], [database_qualified_name]
457+ )
454458 fields = database_qualified_name.split("/")
455459 if len(fields) != 4:
456460 raise ValueError("Invalid database_qualified_name")
@@ -465,11 +469,12 @@ class {{ entity_def.name }}({{super_classes[0]}} {%- if "Asset" in super_classes
465469 database_qualified_name=database_qualified_name,
466470 qualified_name=f"{database_qualified_name}/{name}",
467471 connector_name=connector_type.value,
472+ database=Database.ref_by_qualified_name(database_qualified_name),
468473 )
469474 {% - elif entity_def .name == "Table" or entity_def .name == "View" %}
470475 @classmethod
471476 # @validate_arguments()
472- def create(cls, *, name: str, schema_qualified_name: str)-> {{ entity_def.name }}.Attributes:
477+ def create(cls, *, name: str, schema_qualified_name: str) -> {{ entity_def.name }}.Attributes:
473478 if not name:
474479 raise ValueError("name cannot be blank")
475480 validate_required_fields(["schema_qualified_name"], [schema_qualified_name])
@@ -489,7 +494,65 @@ class {{ entity_def.name }}({{super_classes[0]}} {%- if "Asset" in super_classes
489494 schema_qualified_name=schema_qualified_name,
490495 schema_name=fields[4],
491496 connector_name=connector_type.value,
497+ atlan_schema=Schema.ref_by_qualified_name(schema_qualified_name),
492498 )
499+ {% - elif entity_def .name == "Column" %}
500+ @classmethod
501+ # @validate_arguments()
502+ def create(
503+ cls, *, name: str, parent_qualified_name: str, parent_type: type, order: int
504+ ) -> Column.Attributes:
505+ if not name:
506+ raise ValueError("name cannot be blank")
507+ validate_required_fields(["parent_qualified_name"], [parent_qualified_name])
508+ fields = parent_qualified_name.split("/")
509+ if len(fields) != 6:
510+ raise ValueError("Invalid parent_qualified_name")
511+ try:
512+ connector_type = AtlanConnectorType(fields[1]) # type:ignore
513+ except ValueError as e:
514+ raise ValueError("Invalid parent_qualified_name") from e
515+ ret_value = Column.Attributes(
516+ name=name,
517+ qualified_name=f"{parent_qualified_name}/{name}",
518+ connector_name=connector_type.value,
519+ schema_name=fields[4],
520+ schema_qualified_name=f"{fields[0]}/{fields[1]}/{fields[2]}/{fields[3]}/{fields[4]}",
521+ database_name=fields[3],
522+ database_qualified_name=f"{fields[0]}/{fields[1]}/{fields[2]}/{fields[3]}",
523+ connection_qualified_name=f"{fields[0]}/{fields[1]}/{fields[2]}",
524+ order=order,
525+ )
526+ if parent_type == Table:
527+ ret_value.table_qualified_name = parent_qualified_name
528+ ret_value.table = Table.ref_by_qualified_name(parent_qualified_name)
529+ elif parent_type == View:
530+ ret_value.view_qualified_name = parent_qualified_name
531+ ret_value.view = View.ref_by_qualified_name(parent_qualified_name)
532+ elif parent_type == MaterialisedView:
533+ ret_value.view_qualified_name = parent_qualified_name
534+ ret_value.materialised_view = MaterialisedView.ref_by_qualified_name(
535+ parent_qualified_name
536+ )
537+ else:
538+ raise ValueError(
539+ f"parent_type must be either Table, View or MaterializeView"
540+ )
541+ return ret_value
542+
543+ @classmethod
544+ # @validate_arguments()
545+ def create(
546+ cls, *, name: str, parent_qualified_name: str, parent_type: type, order: int
547+ ) -> Column:
548+ return Column(
549+ attributes=Column.Attributes.create(
550+ name=name,
551+ parent_qualified_name=parent_qualified_name,
552+ parent_type=parent_type,
553+ order=order,
554+ )
555+ )
493556 {% - elif entity_def .name == "S3Bucket" %}
494557 @classmethod
495558 # @validate_arguments()
0 commit comments