'Left to right direction
top to bottom direction
hide circle
'avoide "." issues:
set namespaceSeparator none


skinparam class {
  BackgroundColor White
  BackgroundColor<<FN>> Yellow
  BackgroundColor<<FS>> Yellow
  BackgroundColor<<FT>> LightGray
  BackgroundColor<<IF>> Yellow
  BackgroundColor<<IS>> Yellow
  BackgroundColor<<P>> Aqua
  BackgroundColor<<PC>> Aqua
  BackgroundColor<<SN>> Yellow
  BackgroundColor<<SO>> SlateBlue
  BackgroundColor<<TF>> LightGray
  BackgroundColor<<TR>> Tomato
  BackgroundColor<<U>> White
  BackgroundColor<<V>> WhiteSmoke
  BackgroundColor<<X>> Aqua
}


entity config.ftv_dwh_database << IF >> {
  --
}

entity config.Parameter << U >> {
  * **Parameter_name** : varchar(100)
  * **sub_Parameter** : nvarchar(128)
  --
}

entity repo.Index_Settings << U >> {
  * **index_guid** : uniqueidentifier
  --
}

entity repo.Index_Settings_ForUpdate << V >> {
  --
}

entity repo.Index_ssas << V >> {
  * **databasename** : nvarchar(128)
  **index_name** : nvarchar(450)
  --
}

entity repo.Index_ssas_IndexPatternColumnGuid << V >> {
  --
}

entity repo.Index_ssas_T << U >> {
  * **databasename** : nvarchar(128)
  **index_name** : nvarchar(450)
  --
}

entity repo.Index_union << V >> {
  **index_guid** : uniqueidentifier
  --
}

entity repo.Index_unique_IndexPatternColumnGuid << V >> {
  --
}

entity repo.Index_virtual << U >> {
  * **index_guid** : uniqueidentifier
  --
}

entity repo.Index_virtual_IndexPatternColumnGuid << V >> {
  * **index_guid** : uniqueidentifier
  --
}

entity repo.IndexColumn_ssas << V >> {
  * **index_guid** : uniqueidentifier
  * **index_column_id** : int
  --
}

entity repo.IndexColumn_ssas_T << U >> {
  * **index_guid** : uniqueidentifier
  * **index_column_id** : int
  --
}

entity repo.IndexColumn_virtual << U >> {
  * **index_guid** : uniqueidentifier
  * **index_column_id** : int
  --
}

entity repo.RepoObject << U >> {
  * **RepoObject_guid** : uniqueidentifier
  --
}

entity repo.RepoObject_SSAS_src << V >> {
  * **RepoObject_guid** : uniqueidentifier
  --
}

entity repo.RepoObject_SSAS_tgt << V >> {
  * **RepoObject_guid** : uniqueidentifier
  --
}

entity repo.RepoObjectColumn << U >> {
  * **RepoObjectColumn_guid** : uniqueidentifier
  --
}

entity repo.RepoObjectColumn_SSAS_src << V >> {
  * **RepoObjectColumn_guid** : uniqueidentifier
  --
}

entity repo.RepoObjectColumn_SSAS_tgt << V >> {
  * **RepoObjectColumn_guid** : uniqueidentifier
  --
}

entity repo.SysColumn_RepoObjectColumn_via_name << V >> {
  --
}

entity repo.SysObject_RepoObject_via_name << V >> {
  --
}

entity repo_sys.ExtendedProperties << V >> {
  --
}

entity repo_sys.Index_unique << V >> {
  --
}

entity repo_sys.IndexColumn_unique << V >> {
  --
}

entity repo_sys.SysColumn << V >> {
  --
}

entity repo_sys.SysObject << V >> {
  --
}

entity ssas.IndexColumn_from_IsKey << V >> {
  --
}

entity ssas.IndexColumn_from_IsUnique << V >> {
  --
}

entity ssas.IndexColumn_from_Relationship << V >> {
  --
}

entity ssas.IndexColumn_union << V >> {
  --
}

entity ssas.model_json << U >> {
  * **databasename** : nvarchar(128)
  --
}

entity ssas.model_json_10 << V >> {
  * **databasename** : nvarchar(128)
  --
}

entity ssas.model_json_20 << V >> {
  * **databasename** : nvarchar(128)
  --
}

entity ssas.model_json_31_tables << V >> {
  * **databasename** : nvarchar(128)
  **tables_name** : nvarchar(128)
  --
}

entity ssas.model_json_31_tables_T << U >> {
  * **databasename** : nvarchar(128)
  **tables_name** : nvarchar(128)
  --
}

entity ssas.model_json_311_tables_columns << V >> {
  * **databasename** : nvarchar(128)
  * **tables_name** : nvarchar(128)
  **tables_columns_name** : nvarchar(128)
  --
}

entity ssas.model_json_311_tables_columns_T << U >> {
  * **databasename** : nvarchar(128)
  * **tables_name** : nvarchar(128)
  **tables_columns_name** : nvarchar(128)
  --
}

entity ssas.model_json_32_relationships << V >> {
  * **databasename** : nvarchar(128)
  **relationships_name** : nvarchar(500)
  --
}

entity ssas.model_json_32_relationships_T << U >> {
  * **ForeignKey_guid** : uniqueidentifier
  --
}

entity sys_dwh.columns << SN >> {
  --
}

entity sys_dwh.computed_columns << SN >> {
  --
}

entity sys_dwh.default_constraints << SN >> {
  --
}

entity sys_dwh.extended_properties << SN >> {
  --
}

entity sys_dwh.identity_columns << SN >> {
  --
}

entity sys_dwh.index_columns << SN >> {
  --
}

entity sys_dwh.indexes << SN >> {
  --
}

entity sys_dwh.objects << SN >> {
  --
}

entity sys_dwh.parameters << SN >> {
  --
}

entity sys_dwh.schemas << SN >> {
  --
}

entity sys_dwh.sql_modules << SN >> {
  --
}

entity sys_dwh.tables << SN >> {
  --
}

entity sys_dwh.types << SN >> {
  --
}

config.ftv_dwh_database <.. repo_sys.ExtendedProperties
config.ftv_dwh_database <.. repo_sys.ExtendedProperties
config.ftv_dwh_database <.. repo_sys.SysColumn
config.Parameter <.. config.ftv_dwh_database
repo.Index_Settings <.. repo.Index_Settings_ForUpdate
repo.Index_ssas <.. repo.Index_ssas_T
repo.Index_ssas_IndexPatternColumnGuid <.. repo.Index_union
repo.Index_ssas_T <.. repo.Index_union
repo.Index_ssas_T <.. repo.Index_ssas_IndexPatternColumnGuid
repo.Index_ssas_T <.. repo.IndexColumn_ssas
repo.Index_union <.. repo.Index_Settings_ForUpdate
repo.Index_unique_IndexPatternColumnGuid <.. repo.Index_union
repo.Index_virtual <.. repo.Index_union
repo.Index_virtual <.. repo.Index_virtual_IndexPatternColumnGuid
repo.Index_virtual_IndexPatternColumnGuid <.. repo.Index_union
repo.IndexColumn_ssas <.. repo.IndexColumn_ssas_T
repo.IndexColumn_ssas_T <.. repo.Index_ssas_IndexPatternColumnGuid
repo.IndexColumn_virtual <.. repo.Index_virtual_IndexPatternColumnGuid
repo.RepoObject <.. repo_sys.Index_unique
repo.RepoObject <.. repo.RepoObject_SSAS_tgt
repo.RepoObject <.. repo.Index_Settings_ForUpdate
repo.RepoObject <.. repo.SysObject_RepoObject_via_name
repo.RepoObject <.. repo.SysColumn_RepoObjectColumn_via_name
repo.RepoObject_SSAS_src <.. repo.RepoObject_SSAS_tgt
repo.RepoObject_SSAS_tgt <.. repo.RepoObject
repo.RepoObject_SSAS_tgt <.. repo.RepoObjectColumn_SSAS_tgt
repo.RepoObjectColumn <.. repo.RepoObjectColumn_SSAS_tgt
repo.RepoObjectColumn <.. repo.SysColumn_RepoObjectColumn_via_name
repo.RepoObjectColumn_SSAS_src <.. repo.RepoObjectColumn_SSAS_tgt
repo.RepoObjectColumn_SSAS_tgt <.. repo.RepoObjectColumn
repo.RepoObjectColumn_SSAS_tgt <.. repo.RepoObject_SSAS_tgt
repo.SysColumn_RepoObjectColumn_via_name <.. repo_sys.IndexColumn_unique
repo.SysObject_RepoObject_via_name <.. repo_sys.IndexColumn_unique
repo_sys.ExtendedProperties <.. repo_sys.SysColumn
repo_sys.ExtendedProperties <.. repo_sys.SysObject
repo_sys.Index_unique <.. repo.Index_union
repo_sys.IndexColumn_unique <.. repo.Index_unique_IndexPatternColumnGuid
repo_sys.SysColumn <.. repo.SysColumn_RepoObjectColumn_via_name
repo_sys.SysObject <.. repo.SysObject_RepoObject_via_name
repo_sys.SysObject <.. repo_sys.SysColumn
ssas.IndexColumn_from_IsKey <.. ssas.IndexColumn_union
ssas.IndexColumn_from_IsUnique <.. ssas.IndexColumn_union
ssas.IndexColumn_from_Relationship <.. ssas.IndexColumn_union
ssas.IndexColumn_union <.. repo.IndexColumn_ssas
ssas.IndexColumn_union <.. repo.Index_ssas
ssas.model_json <.. ssas.model_json_10
ssas.model_json_10 <.. ssas.model_json_20
ssas.model_json_20 <.. ssas.model_json_31_tables
ssas.model_json_20 <.. ssas.model_json_32_relationships
ssas.model_json_31_tables <.. ssas.model_json_31_tables_T
ssas.model_json_31_tables_T <.. ssas.model_json_311_tables_columns
ssas.model_json_31_tables_T <.. repo.RepoObject_SSAS_src
ssas.model_json_311_tables_columns <.. ssas.model_json_311_tables_columns_T
ssas.model_json_311_tables_columns_T <.. ssas.IndexColumn_from_Relationship
ssas.model_json_311_tables_columns_T <.. ssas.IndexColumn_from_IsKey
ssas.model_json_311_tables_columns_T <.. repo.RepoObjectColumn_SSAS_src
ssas.model_json_311_tables_columns_T <.. ssas.IndexColumn_from_IsUnique
ssas.model_json_32_relationships <.. ssas.model_json_32_relationships_T
ssas.model_json_32_relationships_T <.. ssas.IndexColumn_from_Relationship
sys_dwh.columns <.. repo_sys.ExtendedProperties
sys_dwh.columns <.. repo_sys.ExtendedProperties
sys_dwh.columns <.. repo_sys.SysColumn
sys_dwh.computed_columns <.. repo_sys.SysColumn
sys_dwh.default_constraints <.. repo_sys.SysColumn
sys_dwh.extended_properties <.. repo_sys.ExtendedProperties
sys_dwh.extended_properties <.. repo_sys.ExtendedProperties
sys_dwh.identity_columns <.. repo_sys.SysColumn
sys_dwh.index_columns <.. repo_sys.IndexColumn_unique
sys_dwh.indexes <.. repo_sys.ExtendedProperties
sys_dwh.indexes <.. repo_sys.ExtendedProperties
sys_dwh.indexes <.. repo_sys.IndexColumn_unique
sys_dwh.indexes <.. repo_sys.Index_unique
sys_dwh.objects <.. repo_sys.ExtendedProperties
sys_dwh.objects <.. repo_sys.ExtendedProperties
sys_dwh.objects <.. repo_sys.SysObject
sys_dwh.parameters <.. repo_sys.ExtendedProperties
sys_dwh.parameters <.. repo_sys.ExtendedProperties
sys_dwh.schemas <.. repo_sys.ExtendedProperties
sys_dwh.schemas <.. repo_sys.ExtendedProperties
sys_dwh.schemas <.. repo_sys.SysObject
sys_dwh.sql_modules <.. repo_sys.SysObject
sys_dwh.tables <.. repo_sys.SysObject
sys_dwh.types <.. repo_sys.SysColumn
