Create custom hierarchy configuration - Precisely Data Integrity Suite

Data Integrity Suite APIs

Product
Data_Integrity
Spatial_Analytics
Data_Enrichment
geo_addressing_1
Services
Spatial Analytics
Data Enrichment
Geo Addressing
ft:title
Data Integrity Suite APIs
ft:locale
en-US
PublicationType
pt_developer
copyrightfirst
2023
copyrightlast
2026

Create a new asset type hierarchy configuration for a specified namespace prefix.

Creates a hierarchy configuration that defines how assets are categorized and organized within a namespace. The request includes the namespace prefix, display name, hierarchy levels, fallback asset type, name separator, and optional attributes such as description, activation status, and priority

POST https://[hostname]/api/v1/openlineage/config/hierarchies

Request Parameters

Parameter Type Required Description
namespacePrefix string Yes

Namespace prefix that identifies where the configuration applies (e.g., "custom://").

displayName string Yes Display name for the hierarchy configuration.
description string No Description of the hierarchy configuration.
hierarchyLevels array[object] Yes Defines the hierarchy levels used to map and categorize assets.
fallbackAssetTypeXref string Yes Asset type reference used when no hierarchy level pattern matches.
nameSeparator string Yes Character used to split qualified names.
isActive boolean No Indicates whether the configuration is active.
priority integer No Determines the priority of the configuration.

hierarchyLevels Item Properties

Field Type Required Description
pattern string Yes Regular expression used to match qualified names (e.g., "^[^.]+\\.[^.]+\\.[^.]+$")
assetTypeXref string Yes Asset type reference applied when the pattern matches (e.g., "{Oracle Table}")
catalogType string Yes Catalog type assigned to matching assets.
parentLevel integer No Identifies the parent hierarchy level.
description string No Description of the hierarchy level.

For the complete CreateHierarchyConfigInput schema definition, see the example below.


{
  "namespacePrefix": "example",
  "displayName": "example",
  "description": "example",
  "hierarchyLevels": [
    {
      "pattern": "example",
      "assetTypeXref": "example",
      "catalogType": "example",
      "parentLevel": 0,
      "description": "example"
    }
  ],
  "fallbackAssetTypeXref": "example",
  "nameSeparator": "example",
  "isActive": true,
  "priority": 0
}

Request Examples

Each example shows how to call this endpoint with the documented method, URL, headers, and request body format.


curl -X POST "/api/v1/openlineage/config/hierarchies" \
  -H "Authorization: Bearer <JWT>" \
  -H "Content-Type: application/json" \
  -d '{
  "namespacePrefix": "example",
  "displayName": "example",
  "hierarchyLevels": [
    {}
  ],
  "fallbackAssetTypeXref": "example",
  "nameSeparator": "example"
}'

fetch("/api/v1/openlineage/config/hierarchies", {
  method: "POST",
  headers: {
        "Authorization": "Bearer <JWT>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "namespacePrefix": "example",
  "displayName": "example",
  "hierarchyLevels": [
    {}
  ],
  "fallbackAssetTypeXref": "example",
  "nameSeparator": "example"
})
})
.then(res => res.json())
.then(data => console.log(data));

import json
import requests

url = "/api/v1/openlineage/config/hierarchies"
headers = {
    "Authorization": "Bearer <JWT>",
  "Content-Type": "application/json"
}
payload = json.loads('''{
  "namespacePrefix": "example",
  "displayName": "example",
  "hierarchyLevels": [
    {}
  ],
  "fallbackAssetTypeXref": "example",
  "nameSeparator": "example"
}''')

response = requests.post(url, headers=headers, json=payload)
print(response.json())

package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "namespacePrefix": "example",
  "displayName": "example",
  "hierarchyLevels": [
    {}
  ],
  "fallbackAssetTypeXref": "example",
  "nameSeparator": "example"
}`)
	req, _ := http.NewRequest("POST", "/api/v1/openlineage/config/hierarchies", body)
	req.Header.Set("Authorization", "Bearer <JWT>")
	req.Header.Set("Content-Type", "application/json")
	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body2, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body2))
}

Success Responses

This payload returns the created hierarchy configuration object.

It includes configuration identity, namespace/display metadata, hierarchy levels, fallback/type parsing settings, activation state, and audit fields.

Representative payload generated from the response schema.

{
  "_id": "string",
  "workspaceId": "string",
  "namespacePrefix": "string",
  "displayName": "string",
  "description": "string",
  "hierarchyLevels": [
    {
      "pattern": "string",
      "assetTypeXref": "string",
      "catalogType": "Datasource",
      "parentLevel": 0,
      "description": "string"
    }
  ],
  "fallbackAssetTypeXref": "string",
  "nameSeparator": ".",
  "isActive": true,
  "priority": 0,
  "createdAt": "string",
  "createdBy": "string",
  "updatedAt": "string",
  "updatedBy": "string"
}

Error Responses

This payload returns validation or request-shape errors when the configuration input is invalid.

Representative payload generated from the response schema.

{
  "statusCode": 400,
  "code": "string",
  "error": "string",
  "message": "string",
  "validationErrors": [
    {
      "path": "string",
      "message": "string"
    }
  ]
}

This payload returns a conflict error when a configuration already exists for the provided namespace prefix.

Representative payload generated from the response schema.

{
  "statusCode": 409,
  "code": "string",
  "error": "string",
  "message": "string",
  "validationErrors": [
    {
      "path": "string",
      "message": "string"
    }
  ]
}