@@ -447,10 +447,14 @@ class {{ entity_def.name }}({{super_classes[0]}} {%- if "Asset" in super_classes
447
447
{% - elif entity_def .name == "Schema" %}
448
448
@classmethod
449
449
# @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:
451
453
if not name:
452
454
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
+ )
454
458
fields = database_qualified_name.split("/")
455
459
if len(fields) != 4:
456
460
raise ValueError("Invalid database_qualified_name")
@@ -465,11 +469,12 @@ class {{ entity_def.name }}({{super_classes[0]}} {%- if "Asset" in super_classes
465
469
database_qualified_name=database_qualified_name,
466
470
qualified_name=f"{database_qualified_name}/{name}",
467
471
connector_name=connector_type.value,
472
+ database=Database.ref_by_qualified_name(database_qualified_name),
468
473
)
469
474
{% - elif entity_def .name == "Table" or entity_def .name == "View" %}
470
475
@classmethod
471
476
# @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:
473
478
if not name:
474
479
raise ValueError("name cannot be blank")
475
480
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
489
494
schema_qualified_name=schema_qualified_name,
490
495
schema_name=fields[4],
491
496
connector_name=connector_type.value,
497
+ atlan_schema=Schema.ref_by_qualified_name(schema_qualified_name),
492
498
)
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
+ )
493
556
{% - elif entity_def .name == "S3Bucket" %}
494
557
@classmethod
495
558
# @validate_arguments()
0 commit comments