This is an automated email from the ASF dual-hosted git repository.

mneethiraj pushed a commit to branch atlas-2.6
in repository https://gitbox.apache.org/repos/asf/atlas.git


The following commit(s) were added to refs/heads/atlas-2.6 by this push:
     new 43ff6d0c0 ATLAS-5428: add iceberg rest catalog model (#782)
43ff6d0c0 is described below

commit 43ff6d0c04ede85daa229810a90c4573f34a5187
Author: Akash R Nilugal <[email protected]>
AuthorDate: Sat Oct 17 13:23:14 2026 +0530

    ATLAS-5428: add iceberg rest catalog model (#782)
    
    (cherry picked from commit 37059a4657d1891fb3af49b4da6fc44b3cb5d0c9)
---
 addons/models/7000-Iceberg/7010-iceberg_model.json | 391 +++++++++++++++++++++
 1 file changed, 391 insertions(+)

diff --git a/addons/models/7000-Iceberg/7010-iceberg_model.json 
b/addons/models/7000-Iceberg/7010-iceberg_model.json
new file mode 100644
index 000000000..4137fc89c
--- /dev/null
+++ b/addons/models/7000-Iceberg/7010-iceberg_model.json
@@ -0,0 +1,391 @@
+{
+  "enumDefs": [
+    {
+      "name":        "iceberg_catalog_type",
+      "description": "Storage ownership model for an Iceberg REST catalog",
+      "serviceType": "iceberg",
+      "typeVersion": "1.0",
+      "elementDefs": [
+        { "ordinal": 0, "value": "INTERNAL" },
+        { "ordinal": 1, "value": "EXTERNAL" }
+      ]
+    },
+    {
+      "name":        "iceberg_table_format_version",
+      "description": "Iceberg table or view format version",
+      "serviceType": "iceberg",
+      "typeVersion": "1.0",
+      "elementDefs": [
+        { "ordinal": 1, "value": "V1" },
+        { "ordinal": 2, "value": "V2" },
+        { "ordinal": 3, "value": "V3" }
+      ]
+    },
+    {
+      "name":        "iceberg_ddl_operation_type",
+      "description": "Catalog operation recorded by an iceberg_ddl audit 
entity",
+      "serviceType": "iceberg",
+      "typeVersion": "1.0",
+      "elementDefs": [
+        { "ordinal": 0, "value": "CREATE_CATALOG" },
+        { "ordinal": 1, "value": "UPDATE_CATALOG" },
+        { "ordinal": 2, "value": "DELETE_CATALOG" },
+        { "ordinal": 3, "value": "CREATE_NAMESPACE" },
+        { "ordinal": 4, "value": "DROP_NAMESPACE" },
+        { "ordinal": 5, "value": "UPDATE_NAMESPACE_PROPERTIES" },
+        { "ordinal": 6, "value": "CREATE_TABLE" },
+        { "ordinal": 7, "value": "UPDATE_TABLE" },
+        { "ordinal": 8, "value": "DROP_TABLE" },
+        { "ordinal": 9, "value": "REGISTER_TABLE" },
+        { "ordinal": 10, "value": "RENAME_TABLE" },
+        { "ordinal": 11, "value": "CREATE_VIEW" },
+        { "ordinal": 12, "value": "REPLACE_VIEW" },
+        { "ordinal": 13, "value": "DROP_VIEW" },
+        { "ordinal": 14, "value": "RENAME_VIEW" }
+      ]
+    }
+  ],
+  "structDefs": [
+    {
+      "name":          "iceberg_partition_field",
+      "description":   "One field of an Iceberg partition spec: a transform 
applied to one or more source columns",
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0",
+      "attributeDefs": [
+        { "name": "fieldId",           "typeName": "int",           
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false },
+        { "name": "name",              "typeName": "string",        
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false },
+        { "name": "sourceIds",         "typeName": "array<int>",    
"cardinality": "LIST", "isIndexable": false, "isOptional": false, "isUnique": 
false },
+        { "name": "sourceColumnNames", "typeName": "array<string>", 
"cardinality": "LIST", "isIndexable": true, "isOptional": true, "isUnique": 
false },
+        { "name": "transform",         "typeName": "string",        
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false, "searchWeight": 7 }
+      ]
+    },
+    {
+      "name":          "iceberg_sort_field",
+      "description":   "One field of an Iceberg sort order: a transform 
applied to a source column, with direction and null ordering",
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0",
+      "attributeDefs": [
+        { "name": "sourceIds",         "typeName": "array<int>",    
"cardinality": "LIST", "isIndexable": false, "isOptional": false, "isUnique": 
false },
+        { "name": "sourceColumnNames", "typeName": "array<string>", 
"cardinality": "LIST", "isIndexable": true, "isOptional": true, "isUnique": 
false },
+        { "name": "transform",         "typeName": "string",        
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false },
+        { "name": "direction",         "typeName": "string",        
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false },
+        { "name": "nullOrder",         "typeName": "string",        
"cardinality": "SINGLE", "isIndexable": false, "isOptional": false, "isUnique": 
false }
+      ]
+    }
+  ],
+  "entityDefs": [
+    {
+      "name":          "iceberg_catalog",
+      "description":   "A catalog exposed by an Iceberg REST catalog service",
+      "superTypes":    [ "Asset" ],
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0",
+      "attributeDefs": [
+        { "name": "clusterName",         "typeName": "string",               
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false, "includeInNotification": true, "searchWeight": 9 },
+        { "name": "realmId",             "typeName": "string",               
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false, "includeInNotification": true },
+        { "name": "catalogType",         "typeName": "iceberg_catalog_type", 
"cardinality": "SINGLE", "isIndexable": true, "isOptional": true, "isUnique": 
false },
+        { "name": "storageType",         "typeName": "string",               
"cardinality": "SINGLE", "isIndexable": true, "isOptional": true, "isUnique": 
false },
+        { "name": "defaultBaseLocation", "typeName": "string",               
"cardinality": "SINGLE", "isIndexable": false, "isOptional": true, "isUnique": 
false },
+        { "name": "properties",          "typeName": "map<string,string>",   
"cardinality": "SINGLE", "isIndexable": false, "isOptional": true, "isUnique": 
false }
+      ]
+    },
+    {
+      "name":          "iceberg_namespace",
+      "description":   "An Iceberg namespace within a catalog; nests 
arbitrarily deep",
+      "superTypes":    [ "Asset" ],
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0",
+      "attributeDefs": [
+        { "name": "clusterName", "typeName": "string",             
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false, "includeInNotification": true },
+        { "name": "realmId",     "typeName": "string",             
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false, "includeInNotification": true },
+        { "name": "levels",      "typeName": "array<string>",      
"cardinality": "SINGLE", "isIndexable": false, "isOptional": false, "isUnique": 
false },
+        { "name": "location",    "typeName": "string",             
"cardinality": "SINGLE", "isIndexable": false, "isOptional": true, "isUnique": 
false, "searchWeight": 5 },
+        { "name": "properties",  "typeName": "map<string,string>", 
"cardinality": "SINGLE", "isIndexable": false, "isOptional": true, "isUnique": 
false }
+      ]
+    },
+    {
+      "name":          "iceberg_table",
+      "description":   "An Iceberg table or view within a namespace; tableType 
discriminates. Mirrors Hive, where a view is a hive_table with 
tableType=VIRTUAL_VIEW rather than a separate type.",
+      "superTypes":    [ "DataSet" ],
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0",
+      "options":       { "schemaElementsAttribute": "columns" },
+      "attributeDefs": [
+        { "name": "clusterName",           "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": true, "isOptional": false, 
"isUnique": false, "includeInNotification": true },
+        { "name": "realmId",               "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": true, "isOptional": false, 
"isUnique": false, "includeInNotification": true },
+        { "name": "tableType",             "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": true, "isOptional": false, 
"isUnique": false, "includeInNotification": true },
+        { "name": "tableUuid",             "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": true, "isOptional": true, 
"isUnique": false, "includeInNotification": true },
+        { "name": "formatVersion",         "typeName": 
"iceberg_table_format_version", "cardinality": "SINGLE", "isIndexable": true, 
"isOptional": true, "isUnique": false },
+        { "name": "location",              "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false, "searchWeight": 5 },
+        { "name": "metadataLocation",      "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false, "searchWeight": 5 },
+        { "name": "currentSnapshotId",     "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": true, "isOptional": true, 
"isUnique": false },
+        { "name": "currentSequenceNumber", "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "snapshotTimestampMs",   "typeName": "date",                 
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "snapshotCount",         "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "snapshotOperation",     "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "totalDataFiles",        "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "totalDeleteFiles",      "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "totalFilesSize",        "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "lastUpdatedMs",         "typeName": "date",                 
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "schemaId",              "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "partitionSpec",         "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "sortOrder",             "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "defaultSpecId",         "typeName": "int",                  
        "cardinality": "SINGLE", "isIndexable": true, "isOptional": true, 
"isUnique": false },
+        { "name": "defaultSortOrderId",    "typeName": "int",                  
        "cardinality": "SINGLE", "isIndexable": true, "isOptional": true, 
"isUnique": false },
+        { "name": "viewDefinition",        "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false, "searchWeight": 9 },
+        { "name": "viewDialect",           "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": true, "isOptional": true, 
"isUnique": false },
+        { "name": "viewDefaultCatalog",    "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "viewDefaultNamespace",  "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "viewVersionId",         "typeName": "string",               
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false },
+        { "name": "properties",            "typeName": "map<string,string>",   
        "cardinality": "SINGLE", "isIndexable": false, "isOptional": true, 
"isUnique": false }
+      ]
+    },
+    {
+      "name":          "iceberg_column",
+      "description":   "A field in the current Iceberg schema of an 
iceberg_table (table or view)",
+      "superTypes":    [ "DataSet" ],
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0",
+      "options":       { "schemaAttributes": "[\"name\", \"type\", 
\"fieldId\", \"required\", \"position\", \"doc\"]" },
+      "attributeDefs": [
+        { "name": "fieldId",  "typeName": "int",     "cardinality": "SINGLE", 
"isIndexable": true, "isOptional": false, "isUnique": false, 
"includeInNotification": true },
+        { "name": "type",     "typeName": "string",  "cardinality": "SINGLE", 
"isIndexable": true, "isOptional": false, "isUnique": false, 
"includeInNotification": true },
+        { "name": "required", "typeName": "boolean", "cardinality": "SINGLE", 
"isIndexable": false, "isOptional": true, "isUnique": false },
+        { "name": "position", "typeName": "int",     "cardinality": "SINGLE", 
"isIndexable": false, "isOptional": true, "isUnique": false },
+        { "name": "doc",      "typeName": "string",  "cardinality": "SINGLE", 
"isIndexable": false, "isOptional": true, "isUnique": false, "searchWeight": 9 
},
+        { "name": "isNested", "typeName": "boolean", "cardinality": "SINGLE", 
"isIndexable": true, "isOptional": true, "isUnique": false }
+      ]
+    },
+    {
+      "name":          "iceberg_partition_spec",
+      "description":   "One Iceberg partition spec of a table. A table retains 
every spec it has ever used, because data files written under an older spec 
remain partitioned by it; iceberg_table.defaultSpecId identifies the spec in 
effect now.",
+      "superTypes":    [ "Asset" ],
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0",
+      "attributeDefs": [
+        { "name": "specId", "typeName": "int",                            
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false, "includeInNotification": true },
+        { "name": "fields", "typeName": "array<iceberg_partition_field>", 
"cardinality": "LIST", "isIndexable": false, "isOptional": true, "isUnique": 
false }
+      ]
+    },
+    {
+      "name":          "iceberg_sort_order",
+      "description":   "One Iceberg sort order of a table. Retained for the 
same reason as a partition spec; iceberg_table.defaultSortOrderId identifies 
the order in effect now.",
+      "superTypes":    [ "Asset" ],
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0",
+      "attributeDefs": [
+        { "name": "orderId", "typeName": "int",                       
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false, "includeInNotification": true },
+        { "name": "fields",  "typeName": "array<iceberg_sort_field>", 
"cardinality": "LIST", "isIndexable": false, "isOptional": true, "isUnique": 
false }
+      ]
+    },
+    {
+      "name":          "iceberg_ddl",
+      "description":   "Supertype for Iceberg REST catalog operation audit 
records; inherits queryText, execTime, userName and serviceType from the Atlas 
ddl base type. Not instantiated directly - use the per-parent subtypes.",
+      "superTypes":    [ "ddl" ],
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0",
+      "attributeDefs": [
+        { "name": "operationType", "typeName": "iceberg_ddl_operation_type", 
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false, "includeInNotification": true },
+        { "name": "eventId",       "typeName": "string",                 
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false, "includeInNotification": true },
+        { "name": "realmId",       "typeName": "string",                 
"cardinality": "SINGLE", "isIndexable": true, "isOptional": false, "isUnique": 
false },
+        { "name": "requestId",     "typeName": "string",                 
"cardinality": "SINGLE", "isIndexable": true, "isOptional": true, "isUnique": 
false },
+        { "name": "traceId",       "typeName": "string",                 
"cardinality": "SINGLE", "isIndexable": true, "isOptional": true, "isUnique": 
false },
+        { "name": "snapshotId",    "typeName": "long",                   
"cardinality": "SINGLE", "isIndexable": false, "isOptional": true, "isUnique": 
false }
+      ]
+    },
+    {
+      "name":          "iceberg_catalog_ddl",
+      "description":   "Audit record for one committed catalog-level 
operation",
+      "superTypes":    [ "iceberg_ddl" ],
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0"
+    },
+    {
+      "name":          "iceberg_namespace_ddl",
+      "description":   "Audit record for one committed namespace-level 
operation",
+      "superTypes":    [ "iceberg_ddl" ],
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0"
+    },
+    {
+      "name":          "iceberg_table_ddl",
+      "description":   "Audit record for one committed table-level or 
view-level operation",
+      "superTypes":    [ "iceberg_ddl" ],
+      "serviceType":   "iceberg",
+      "typeVersion":   "1.0"
+    }
+  ],
+  "relationshipDefs": [
+    {
+      "name":                   "iceberg_catalog_namespaces",
+      "serviceType":            "iceberg",
+      "typeVersion":            "1.0",
+      "relationshipCategory":   "AGGREGATION",
+      "propagateTags":          "NONE",
+      "endDef1": {
+        "type":                "iceberg_catalog",
+        "name":                "namespaces",
+        "isContainer":         true,
+        "cardinality":         "SET"
+      },
+      "endDef2": {
+        "type":                "iceberg_namespace",
+        "name":                "catalog",
+        "isContainer":         false,
+        "cardinality":         "SINGLE"
+      }
+    },
+    {
+      "name":                   "iceberg_namespace_namespaces",
+      "serviceType":            "iceberg",
+      "typeVersion":            "1.0",
+      "relationshipCategory":   "AGGREGATION",
+      "propagateTags":          "NONE",
+      "endDef1": {
+        "type":                "iceberg_namespace",
+        "name":                "childNamespaces",
+        "isContainer":         true,
+        "cardinality":         "SET"
+      },
+      "endDef2": {
+        "type":                "iceberg_namespace",
+        "name":                "parentNamespace",
+        "isContainer":         false,
+        "cardinality":         "SINGLE"
+      }
+    },
+    {
+      "name":                   "iceberg_namespace_tables",
+      "serviceType":            "iceberg",
+      "typeVersion":            "1.0",
+      "relationshipCategory":   "AGGREGATION",
+      "propagateTags":          "NONE",
+      "endDef1": {
+        "type":                "iceberg_namespace",
+        "name":                "tables",
+        "isContainer":         true,
+        "cardinality":         "SET"
+      },
+      "endDef2": {
+        "type":                "iceberg_table",
+        "name":                "namespace",
+        "isContainer":         false,
+        "cardinality":         "SINGLE"
+      }
+    },
+    {
+      "name":                   "iceberg_table_columns",
+      "serviceType":            "iceberg",
+      "typeVersion":            "1.0",
+      "relationshipCategory":   "COMPOSITION",
+      "propagateTags":          "NONE",
+      "endDef1": {
+        "type":                "iceberg_table",
+        "name":                "columns",
+        "isContainer":         true,
+        "cardinality":         "SET"
+      },
+      "endDef2": {
+        "type":                "iceberg_column",
+        "name":                "table",
+        "isContainer":         false,
+        "cardinality":         "SINGLE"
+      }
+    },
+    {
+      "name":                   "iceberg_table_partition_specs",
+      "serviceType":            "iceberg",
+      "typeVersion":            "1.0",
+      "relationshipCategory":   "COMPOSITION",
+      "propagateTags":          "NONE",
+      "endDef1": {
+        "type":                "iceberg_table",
+        "name":                "partitionSpecs",
+        "isContainer":         true,
+        "cardinality":         "SET"
+      },
+      "endDef2": {
+        "type":                "iceberg_partition_spec",
+        "name":                "table",
+        "isContainer":         false,
+        "cardinality":         "SINGLE"
+      }
+    },
+    {
+      "name":                   "iceberg_table_sort_orders",
+      "serviceType":            "iceberg",
+      "typeVersion":            "1.0",
+      "relationshipCategory":   "COMPOSITION",
+      "propagateTags":          "NONE",
+      "endDef1": {
+        "type":                "iceberg_table",
+        "name":                "sortOrders",
+        "isContainer":         true,
+        "cardinality":         "SET"
+      },
+      "endDef2": {
+        "type":                "iceberg_sort_order",
+        "name":                "table",
+        "isContainer":         false,
+        "cardinality":         "SINGLE"
+      }
+    },
+    {
+      "name":                   "iceberg_table_ddl_queries",
+      "serviceType":            "iceberg",
+      "typeVersion":            "1.0",
+      "relationshipCategory":   "COMPOSITION",
+      "propagateTags":          "NONE",
+      "endDef1": {
+        "type":                "iceberg_table",
+        "name":                "ddlQueries",
+        "isContainer":         true,
+        "cardinality":         "SET"
+      },
+      "endDef2": {
+        "type":                "iceberg_table_ddl",
+        "name":                "table",
+        "isContainer":         false,
+        "cardinality":         "SINGLE"
+      }
+    },
+    {
+      "name":                   "iceberg_namespace_ddl_queries",
+      "serviceType":            "iceberg",
+      "typeVersion":            "1.0",
+      "relationshipCategory":   "COMPOSITION",
+      "propagateTags":          "NONE",
+      "endDef1": {
+        "type":                "iceberg_namespace",
+        "name":                "ddlQueries",
+        "isContainer":         true,
+        "cardinality":         "SET"
+      },
+      "endDef2": {
+        "type":                "iceberg_namespace_ddl",
+        "name":                "namespace",
+        "isContainer":         false,
+        "cardinality":         "SINGLE"
+      }
+    },
+    {
+      "name":                   "iceberg_catalog_ddl_queries",
+      "serviceType":            "iceberg",
+      "typeVersion":            "1.0",
+      "relationshipCategory":   "COMPOSITION",
+      "propagateTags":          "NONE",
+      "endDef1": {
+        "type":                "iceberg_catalog",
+        "name":                "ddlQueries",
+        "isContainer":         true,
+        "cardinality":         "SET"
+      },
+      "endDef2": {
+        "type":                "iceberg_catalog_ddl",
+        "name":                "catalog",
+        "isContainer":         false,
+        "cardinality":         "SINGLE"
+      }
+    }
+  ]
+}

Reply via email to