Skip to content

Referenceable

Base class for everything in Atlan.

Complete reference

This is a complete reference for the Referenceable object in Atlan, showing every possible property and relationship that can exist for these objects. For an introduction, you probably want to start with:

  • Snippets — small, atomic examples of single-step use cases.
  • Patterns — walkthroughs of common multi-step implementation patterns.

Inheritance

Following is the inheritance structure for Referenceable. The type structure may be simplified in some of the SDKs, but for search purposes you could still use any of the super types shown below.

classDiagram
    direction RL
    class Referenceable {
        <<abstract>>
    }
    link Referenceable "../entities/referenceable"

Attributes

Following are all the properties available on Referenceable assets in Atlan.

Core properties

As the root of all objects, Referenceable defines the core properties available on everything in Atlan. For detailed examples of searching these fields, see common search fields.

typeName
Type of this asset.
1
2
3
4
asset.getTypeName(); // (1)
client.assets.select().where(CompoundQuery.superType(ISQL.TYPE_NAME)); // (2)
client.assets.select().where(CompoundQuery.assetType(Table.TYPE_NAME)); // (3)
client.assets.select().where(CompoundQuery.assetTypes(List.of(Table.TYPE_NAME, View.TYPE_NAME, MaterializedView.TYPE_NAME))); // (4)
  1. Retrieve the typeName from an asset.

    Use instanceof for type checking

    If you are operating on an Asset type, chances are it is actually a more concrete type. Rather than using String-based comparisons, you can type-check using Java types: if (asset instanceof Column), for example. This has the added benefit of not needing separate null handling (if null, then asset cannot be an instanceof any type).

  2. Query for all assets that are sub-types of a particular super-type, in this example all assets that are sub-types of SQL.

  3. Query for all assets with a particular type, in this example a Table.
  4. Query for all assets with any one of a number of different types, in this example either a Table, View, or MaterializedView.
guid

Treat as read-only

This should be treated as read-only, you should not try to set guid on an asset.

Globally-unique identifier for this asset.
1
2
asset.getGuid(); // (1)
client.assets.select().where(Asset.GUID.eq("25638e8c-0225-46fd-a70c-304117370c4c")); // (2)
  1. Retrieve the guid from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for an asset with an exact GUID.

    For more details

    For more information, see the searching section on term queries.

atlanTags
Atlan tags assigned to the asset.
1
2
3
4
5
Table.addAtlanTags( // (1)
    "default/snowflake/1657037873/SAMPLE_DB/FOOD_BEV/TOP_BEVERAGE_USERS",
    List.of("PII", "Marketing Analysis"));
asset.getAtlanTags(); // (2)
client.assets.select().where(CompoundQuery.tagged(List.of("PII"))); // (3)
  1. Add Atlan tags to an asset.

    For more details

    For more information, see the tagging assets snippets.

  2. Retrieve the atlanTags from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  3. Query for assets that have one or more particular Atlan tags.

    For more details

    For more information, see the find assets with a tag snippets.

customMetadataSets
Map of custom metadata attributes and values defined on the asset.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
CustomMetadataAttributes cmRACI = CustomMetadataAttributes.builder() // (1)
    .attribute("Responsible", "jsmith")
    .attribute("Consulted", List.of("finance", "risk"))
    .build();
Table.updateCustomMetadataAttributes(
        "b4113341-251b-4adc-81fb-2420501c30e6",
        "RACI",
        cmRACI);
asset.getCustomMetadataSets(); // (2)
client.assets.select().where(CustomMetadataField.of(client, "RACI", "Responsible").hasAnyValue()); // (3)
  1. Add custom metadata to an asset.

    For more details

    For more information, see the change custom metadata snippets.

  2. Retrieve custom metadata from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  3. Query for assets that have particular custom metadata.

    For more details

    For more information, see the find assets with custom metadata snippets.

status

Treat as read-only

This should be treated as read-only, you should not try to set status on an asset. Instead, see the asset CRUD snippets on deleting and restoring assets.

Status of the asset.
1
2
asset.getStatus(); // (1)
client.assets.select().where(CompoundQuery.ARCHIVED); // (2)
  1. Retrieve the status from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for assets that have a particular status.

    For more details

    For more information, see the common search fields snippets.

createdBy

Treat as read-only

This should be treated as read-only, you should not try to set createdBy on an asset.

User or account that created the asset.
1
2
asset.getCreatedBy(); // (1)
client.assets.select().where(Asset.CREATED_BY.eq("jsmith")); // (2)
  1. Retrieve the createdBy user from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for assets that were created by a particular user.

    For more details

    For more information, see the common search fields snippets.

updatedBy

Treat as read-only

This should be treated as read-only, you should not try to set updatedBy on an asset.

User or account that last updated the asset.
1
2
asset.getUpdatedBy(); // (1)
client.assets.select().where(Asset.UPDATED_BY.eq("jsmith")); // (2)
  1. Retrieve the updatedBy user from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for assets that were last updated by a particular user.

    For more details

    For more information, see the common search fields snippets.

createTime

Treat as read-only

This should be treated as read-only, you should not try to set createTime on an asset.

Time (epoch) at which the asset was created, in milliseconds.
1
2
asset.getCreateTime(); // (1)
client.assets.select().where(Asset.CREATE_TIME.gte(1640995200000L)); // (2)
  1. Retrieve the createTime from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for assets that were created on or after a particular time.

    For more details

    For more information, see the common search fields snippets.

updateTime

Treat as read-only

This should be treated as read-only, you should not try to set updateTime on an asset.

Time (epoch) at which the asset was last updated, in milliseconds.
1
2
asset.getUpdateTime(); // (1)
client.assets.select().where(Asset.UPDATE_TIME.gte(1640995200000L)); // (2)
  1. Retrieve the updateTime from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for assets that were last updated on or after a particular time.

    For more details

    For more information, see the common search fields snippets.

deleteHandler

Treat as read-only

This should be treated as read-only, you should not try to set deleteHandler on an asset. Instead, see the asset CRUD snippets on deleting assets.

Details on the handler used for deletion of the asset.
1
asset.getDeleteHandler(); // (1)
  1. Retrieve the deleteHandler from an asset. (This will only have a value for soft-deleted, or archived, assets.)

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

atlanTagNames

Treat as read-only

These should be treated as read-only, you should not try to set atlanTagNames on an asset. Instead see atlanTags.

Human-readable names of the Atlan tags that exist on the asset.
1
asset.getAtlanTagNames(); // (1)
  1. Retrieve the atlanTagNames from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

isIncomplete (unused)

meaningNames

Treat as read-only

These should be treated as read-only, you should not try to set meaningNames on an asset. Instead see meanings.

Human-readable names of terms that have been linked to this asset.
1
asset.getMeaningNames(); // (1)
  1. Retrieve the meaningNames from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

meanings

Treat as read-only

These should be treated as read-only, you should not try to set meanings on an asset. Instead, see the link terms and assets snippets.

Details of terms that have been linked to this asset.
1
asset.getMeanings(); // (1)
  1. Retrieve the meanings from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

pendingTasks

Treat as read-only

These should be treated as read-only, you should not try to set pendingTasks on an asset.

Unique identifiers (GUIDs) for any background tasks that are yet to operate on this asset.
1
asset.getPendingTasks(); // (1)
  1. Retrieve the pendingTasks from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

type_name
Type of this asset.
asset.type_name  # (1)
FluentSearch().where(CompoundQuery.super_types([SQL]))  # (2)
FluentSearch().where(CompoundQuery.asset_type(Table))  # (3)
FluentSearch().where(CompoundQuery.asset_types([Table, View, MaterializedView]))  # (4)
  1. Retrieve the type_name from an asset.

    Use isinstance for type checking

    If you are operating on an Asset type, chances are it is actually a more concrete type. Rather than using String-based comparisons, you can type-check using Python types: if isinstance(asset, Column), for example.

  2. Query for all assets that are sub-types of a particular super-type, in this example all assets that are sub-types of SQL.

  3. Query for all assets with a particular type, in this example a Table.
  4. Query for all assets with any one of a number of different types, in this example either a Table, View, or MaterializedView.
guid

Treat as read-only

This should be treated as read-only, you should not try to set guid on an asset.

Globally-unique identifier for this asset.
1
2
asset.guid;  # (1)
FluentSearch().where(Asset.GUID.eq("25638e8c-0225-46fd-a70c-304117370c4c"))  # (2)
  1. Retrieve the guid from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for an asset with an exact GUID.

    For more details

    For more information, see the searching section on term queries.

atlan_tags
Atlan tags assigned to the asset.
1
2
3
4
5
6
7
client.asset.add_atlan_tags(  # (1)
    asset_type=Table,
    qualified_name="default/snowflake/1657037873/SAMPLE_DB/FOOD_BEV/TOP_BEVERAGE_USERS",
    atlan_tag_names=["PII", "Marketing Analysis"]
)
asset.atlan_tags  # (2)
FluentSearch().where(CompoundQuery.tagged(["PII"]))  # (3)
  1. Add Atlan tags to an asset.

    For more details

    For more information, see the tagging assets snippets.

  2. Retrieve the atlan_tags from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  3. Query for assets that have one or more particular Atlan tags.

    For more details

    For more information, see the find assets with a tag snippets.

custom_metadata
Map of custom metadata attributes and values defined on the asset.
1
2
3
4
5
6
7
8
9
cm_raci = asset.get_custom_metadata("RACI")  # (1)
cm_raci["Responsible"] = "jsmith"
cm_raci["Consulted"] = ["finance", "risk"]
client.update_custom_metadata_attributes(
    guid="b4113341-251b-4adc-81fb-2420501c30e6",
    custom_metadata=cm_raci
)
asset.get_custom_metadata("RACI")  # (2)
FluentSearch().where(CustomMetadataField(set_name="RACI", attribute_name="Responsible").has_any_value())  # (3)
  1. Add custom metadata to an asset.

    For more details

    For more information, see the change custom metadata snippets.

  2. Retrieve custom metadata from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  3. Query for assets that have particular custom metadata.

    For more details

    For more information, see the find assets with custom metadata snippets.

status

Treat as read-only

This should be treated as read-only, you should not try to set status on an asset. Instead, see the asset CRUD snippets on deleting and restoring assets.

Status of the asset.
1
2
asset.status  # (1)
FluentSearch().where(CompoundQuery.archived_assets());  # (2)
  1. Retrieve the status from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for assets that have a particular status.

    For more details

    For more information, see the common search fields snippets.

created_by

Treat as read-only

This should be treated as read-only, you should not try to set created_by on an asset.

User or account that created the asset.
1
2
asset.created_by  # (1)
FluentSearch().where(Asset.CREATED_BY.eq("jsmith"))  # (2)
  1. Retrieve the created_by user from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for assets that were created by a particular user.

    For more details

    For more information, see the common search fields snippets.

updated_by

Treat as read-only

This should be treated as read-only, you should not try to set updated_by on an asset.

User or account that last updated the asset.
1
2
asset.updated_by  # (1)
FluentSearch().where(Asset.UPDATED_BY.eq("jsmith"))  # (2)
  1. Retrieve the updated_by user from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for assets that were last updated by a particular user.

    For more details

    For more information, see the common search fields snippets.

create_time

Treat as read-only

This should be treated as read-only, you should not try to set create_time on an asset.

Time (epoch) at which the asset was created, in milliseconds.
1
2
asset.create_time  # (1)
FluentSearch().where(Asset.CREATE_TIME.gte(1640995200000))  # (2)
  1. Retrieve the create_time from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for assets that were created on or after a particular time.

    For more details

    For more information, see the common search fields snippets.

update_time

Treat as read-only

This should be treated as read-only, you should not try to set update_time on an asset.

Time (epoch) at which the asset was last updated, in milliseconds.
1
2
asset.update_time  # (1)
FluentSearch().where(Asset.UPDATE_TIME.gte(1640995200000))  # (2)
  1. Retrieve the update_time from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  2. Query for assets that were last updated on or after a particular time.

    For more details

    For more information, see the common search fields snippets.

delete_handler

Treat as read-only

This should be treated as read-only, you should not try to set delete_handler on an asset. Instead, see the asset CRUD snippets on deleting assets.

Details on the handler used for deletion of the asset.
1
asset.delete_handler  # (1)
  1. Retrieve the delete_handler from an asset. (This will only have a value for soft-deleted, or archived, assets.)

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

classification_names

Treat as read-only

These should be treated as read-only, you should not try to set classification_names on an asset. Instead see atlan_tags.

Human-readable names of the Atlan tags that exist on the asset.
1
asset.classification_names  # (1)
  1. Retrieve the classification_names from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

is_incomplete (unused)

meaning_names

Treat as read-only

These should be treated as read-only, you should not try to set meaning_names on an asset. Instead see meanings.

Human-readable names of terms that have been linked to this asset.
1
asset.meaning_names  # (1)
  1. Retrieve the meaning_names from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

meanings

Treat as read-only

These should be treated as read-only, you should not try to set meanings on an asset. Instead, see the link terms and assets snippets.

Details of terms that have been linked to this asset.
1
asset.meanings  # (1)
  1. Retrieve the meanings from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

pending_tasks

Treat as read-only

These should be treated as read-only, you should not try to set pending_tasks on an asset.

Unique identifiers (GUIDs) for any background tasks that are yet to operate on this asset.
1
asset.pending_tasks  # (1)
  1. Retrieve the pending_tasks from an asset.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

typeName
Type of this asset.
{
  "typeName": "Referenceable" // (1)
}
  1. The typeName of an asset is at the top-level of the payload, and in this example indicates a Referenceable.
guid

Treat as read-only

This should be treated as read-only, you should not try to set guid on an asset.

Globally-unique identifier for this asset.
1
2
3
{
  "guid": "25638e8c-0225-46fd-a70c-304117370c4c" // (1)
}
  1. The guid of an the asset is at the top-level of the payload.
classifications
Classifications assigned to the asset.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  "classifications": [ // (1)
    {
      "typeName": "yQBDoKHdTLJhqAsdR3RMq6",
      "propagate": true,
      "removePropagationsOnEntityDelete": true,
      "restrictPropagationThroughLineage": false
    },
    {
      "typeName": "WCVjmgKnW40G151dESXZ03",
      "propagate": true,
      "removePropagationsOnEntityDelete": true,
      "restrictPropagationThroughLineage": false
    }
  ]
}
  1. The classifications of an asset are at the top-level of the payload. There is a list of such complex objects.

    For more details

    For more information, see the classify assets snippets.

customMetadataSets
Map of custom metadata attributes and values defined on the asset.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
{
  "businessAttributes": { // (1)
    "MNJ8mpLsIOaP4OQnLNhRta": {
      "fWMB77RSjRGNYoFeD4FcGi": "jsmith",
      "F8XI9GzcBpdBdfi4cLiPEz": [
        "finance",
        "risk"
      ]
    },
    "foMg7yOwUajucuya0JEF4J": {
      "uTmK5o0J8jHTH3KWFXXeZi": "example"
    }
  }
}
  1. The custom metadata for an asset is nested within a businessAttributes object embedded in the payload. There is a nested dictionary of further embedded objects.

    For more details

    For more information, see the change custom metadata snippets.

status

Treat as read-only

This should be treated as read-only, you should not try to set status on an asset. Instead, see the asset CRUD snippets on deleting and restoring assets.

Status of the asset.
1
2
3
{
  "status": "ACTIVE" // (1)
}
  1. The status of an asset is at the top-level of the payload.
createdBy

Treat as read-only

This should be treated as read-only, you should not try to set createdBy on an asset.

User or account that created the asset.
1
2
3
{
  "createdBy": "jsmith" // (1)
}
  1. The createdBy user of an asset is at the top-level of the payload.
updatedBy

Treat as read-only

This should be treated as read-only, you should not try to set updatedBy on an asset.

User or account that last updated the asset.
1
2
3
{
  "updatedBy": "jsmith" // (1)
}
  1. The updatedBy user of an asset is at the top-level of the payload.
createTime

Treat as read-only

This should be treated as read-only, you should not try to set createTime on an asset.

Time (epoch) at which the asset was created, in milliseconds.
1
2
3
{
  "createTime": 123456789 // (1)
}
  1. The createTime of an asset is at the top-level of the payload.
updateTime

Treat as read-only

This should be treated as read-only, you should not try to set updateTime on an asset.

Time (epoch) at which the asset was last updated, in milliseconds.
1
2
3
{
  "updateTime": 123456789 // (1)
}
  1. The updateTime of an asset is at the top-level of the payload.
deleteHandler

Treat as read-only

This should be treated as read-only, you should not try to set deleteHandler on an asset. Instead, see the asset CRUD snippets on deleting assets.

Details on the handler used for deletion of the asset.
1
2
3
{
  "deleteHandler": "SOFT" // (1)
}
  1. The deleteHandler of an asset is at the top-level of the payload. (This will only have a value for soft-deleted, or archived, assets.)
classificationNames

Treat as read-only

These should be treated as read-only, you should not try to set classificationNames on an asset. Instead see classifications.

Hashed-string names of the classifications that exist on the asset.
{
  "classificationNames": ["yQBDoKHdTLJhqAsdR3RMq6", "WCVjmgKnW40G151dESXZ03"] // (1)
}
  1. The classificationNames of an asset are at the top-level of the payload. These are a list of the Atlan-internal hashed-string names.

isIncomplete (unused)

meaningNames

Treat as read-only

These should be treated as read-only, you should not try to set meaningNames on an asset. Instead see meanings.

Human-readable names of terms that have been linked to this asset.
1
2
3
{
  "meaningNames": ["Example 1", "Example 2"] // (1)
}
  1. The meaningNames of an asset are at the top-level of the payload.
meanings

Treat as read-only

These should be treated as read-only, you should not try to set meanings on an asset. Instead, see the link terms and assets snippets.

Details of terms that have been linked to this asset.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  "meanings": [ // (1)
    {
      "termGuid": "dc66c49b-afac-4bfe-8deb-aafd54f4c517",
      "relationGuid": "0434d5a6-9688-4264-8a27-bfbda30e603e",
      "displayText": "Example 1",
      "confidence": 50
    },
    {
      "termGuid": "f7681d43-49f7-42a0-89fa-c5a60163a3cc",
      "relationGuid": "35d5e718-cf5b-4b4d-9476-417429d23e51",
      "displayText": "Example 2",
      "confidence": 50
    }
  ]
}
  1. The meanings of an asset are at the top-level of the payload. There is a list of such complex objects.
pendingTasks

Treat as read-only

These should be treated as read-only, you should not try to set pendingTasks on an asset.

Unique identifiers (GUIDs) for any background tasks that are yet to operate on this asset.
1
2
3
{
  "pendingTasks": ["50269054-53a9-49e1-ac64-077d3945ac1b", "87a70cb9-3017-4cc0-aa4d-da0d4ba8709c"] // (1)
}
  1. The pendingTasks of an asset are at the top-level of the payload.

Type-specific properties

qualifiedName
Unique name of the asset.
asset.getQualifiedName(); // (1)
  1. Retrieve the qualifiedName from a Referenceable.
qualified_name
Unique name for this asset. This is typically a concatenation of the asset's name onto its parent's qualifiedName. This must be unique across all assets of the same type.
1
2
3
4
builder.qualified_name = ...  # (1)
referenceable.qualified_name  # (2)
FluentSearch().where(FluentSearch.asset_type(Referenceable)).where(Referenceable.QUALIFIED_NAME.eq("String0"))  # (3)
FluentSearch().where(FluentSearch.asset_type(Referenceable)).where(Referenceable.QUALIFIED_NAME.match("String0"))  # (4)
  1. Set the qualified_name for a Referenceable.

    For more details

    For more information, see the asset CRUD snippets on either creating or updating assets.

  2. Retrieve the qualified_name from a Referenceable.

    For more details

    For more information, see the asset CRUD snippets on retrieving assets.

  3. Find all assets in Atlan with their qualified_name exactly matching the provided value.

    For more details

    For more information, see the searching section on term queries.

  4. Find all assets in Atlan with their qualified_name textually matching the provided value.

    For more details

    For more information, see the searching section on full text queries.

qualifiedName
Unique name of the asset.
{
  "attributes": {
    "qualifiedName": "String0" // (1)
  }
}
  1. Set the qualifiedName for a Referenceable.