Custom Facts
Note
A sample custom facts definitions CSV file can be downloaded here:
Sample CSV
.Starting from CPD Version 5.1 and above, an additional field, Order, has been introduced in the “Create Custom Facts Definition” process. This enhancement is reflected in the updated CSV file, which now includes the new Order field. This optional parameter allows Custom Facts to be assigned a specific order, which is visible in the UI.You can download the updated file here:
Updated CSV
.As shown in the image below, facts are now arranged in order from top to bottom based on the Order field in the updated CSV:
- create_custom_facts_definitions(self, csvFilePath, type_name: str = None, section_name: str = None, overwrite=True)
Utility to add custom facts attribute properties of model or model usecase.
- Parameters:
csvFilePath (str) – File path of csv having the asset properties.
type_name (str) – Asset type user needs to add/update. Current options are modelfacts_user,`model_entry_user`. Default is set to modelfacts_user.
section_name (str) – Custom name to show for custom attribute section. Applies only to model_entry_user type.
overwrite (bool) – (Optional) Merge or replace current properties. Default is True.
A way you might use me is:
>>> client.assets.create_custom_facts_definitions("Asset_type_definition.csv") # uses default type `modelfacts_user` type >>> client.assets.create_custom_facts_definitions("Asset_type_definition.csv",type_name="model_entry_user", localized_name=<custom name for attributes section>,overwrite=False)
- get_facts_definitions(self, type_name: str, container_type: str = None, container_id: str = None) Dict
Get all facts definitions
- Parameters:
type_name (str) – Asset fact type. Current options are modelfacts_user and model_entry_user.
container_type (str) – (Optional) Asset container type. Options are project, space or catalog. Default to container type used when initiating client.
container_id (str) – (Optional) Asset container id. Default to container id when initiating client
- Return type:
dict
A way you might use me is:
>>> client.assets.get_facts_definitions(type_name=<fact type>) # uses container type and id used initializing facts client >>> client.assets.get_facts_definitions(type_name=<fact type>,container_type=<container type>,container_id=<container id>)
- set_custom_fact(self, fact_id: str, value: Any) None
Set custom fact by given id.
- Parameters:
fact_id (str) – Custom fact id.
value (any) – Value of custom fact. It can be string, integer, date. if custom fact definition attribute is_array is set to True, value can be a string or list of strings.
A way you might use me is:
>>> model.set_custom_fact(fact_id="custom_int",value=50) >>> model.set_custom_fact(fact_id="custom_string",value="test") >>> model.set_custom_fact(fact_id="custom_string",value=["test","test2"]) # allowed if attribute property `is_array` is true.
- set_custom_facts(self, facts_dict: Dict[str, Any]) None
Set multiple custom facts.
- Parameters:
facts_dict (dict) – Multiple custom facts. Example: {id: value, id1: value1, …}
A way you might use me is:
>>> model.set_custom_facts({"fact_1": 2, "fact_2": "test", "fact_3":["data1","data2"]})
- get_custom_facts(self) Dict
Get all defined custom facts for modelfacts_user fact type.
- Return type:
dict
A way you might use me is:
>>> model.get_custom_facts()
- get_all_facts(self) Dict
Get all facts related to asset.
- Return type:
dict
A way you might use me is:
>>> model.get_all_facts()
- get_facts_by_type(self, facts_type: str = None) Dict
Get custom facts by asset type.
- Parameters:
facts_type (str) – (Optional) Custom facts asset type. Default to modelfacts_user type. For Openpages facts, use modelfacts_user_op.
- Return type:
dict
A way you might use me is:
>>> model.get_facts_by_type(facts_type=<type name>)
- get_custom_fact_by_id(self, fact_id: str)
Get custom fact value/s by id
- Parameters:
fact_id (str) – Custom fact id to retrieve.
A way you might use me is:
>>> model.get_custom_fact_by_id(fact_id="fact_id")
- remove_custom_fact(self, fact_id: str) None
Remove custom fact by id
- Parameters:
fact_id (str) – Custom fact id value/s to remove.
A way you might use me is:
>>> model.remove_custom_fact(fact_id=<fact_id>)
- remove_custom_facts(self, fact_ids: List[str]) None
Remove multiple custom facts
- Parameters:
fact_ids (list) – Custom fact ids to remove.
A way you might use me is:
>>> model.remove_custom_facts(fact_ids=["id1","id2"])
- reset_custom_facts_definitions(self, type_name: str = None)
Utility to remove custom facts attribute properties of model or model usecase.
- Parameters:
type_name (str) – Asset type user needs to add/update. Current options are modelfacts_user,`model_entry_user`. Default is set to modelfacts_user.
A way you might use me is,:
client.assets.reset_custom_facts_definitions(type_name="model_entry_user")