pyegeria 5.3.9.9.3__py3-none-any.whl → 5.5.3.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyegeria might be problematic. Click here for more details.
- commands/__init__.py +24 -0
- commands/cat/Dr-Egeria_md-orig.py +2 -2
- commands/cat/__init__.py +1 -17
- commands/cat/collection_actions.py +197 -0
- commands/cat/dr_egeria_command_help.py +372 -0
- commands/cat/dr_egeria_jupyter.py +7 -7
- commands/cat/dr_egeria_md.py +27 -182
- commands/cat/exp_list_glossaries.py +11 -14
- commands/cat/get_asset_graph.py +37 -267
- commands/cat/{get_collection.py → get_collection_tree.py} +10 -18
- commands/cat/get_project_dependencies.py +14 -14
- commands/cat/get_project_structure.py +15 -14
- commands/cat/get_tech_type_elements.py +16 -116
- commands/cat/glossary_actions.py +145 -298
- commands/cat/list_assets.py +3 -11
- commands/cat/list_cert_types.py +17 -63
- commands/cat/list_collections.py +46 -138
- commands/cat/list_deployed_catalogs.py +15 -27
- commands/cat/list_deployed_database_schemas.py +27 -43
- commands/cat/list_deployed_databases.py +16 -31
- commands/cat/list_deployed_servers.py +35 -54
- commands/cat/list_glossaries.py +18 -17
- commands/cat/list_projects.py +10 -12
- commands/cat/list_tech_type_elements.py +21 -37
- commands/cat/list_tech_types.py +13 -25
- commands/cat/list_terms.py +38 -79
- commands/cat/list_todos.py +4 -11
- commands/cat/list_user_ids.py +3 -10
- commands/cat/my_reports.py +559 -0
- commands/cat/run_report.py +394 -0
- commands/cat/run_report_orig.py +528 -0
- commands/cli/egeria.py +222 -247
- commands/cli/egeria_cat.py +68 -81
- commands/cli/egeria_my.py +13 -0
- commands/cli/egeria_ops.py +69 -74
- commands/cli/egeria_tech.py +17 -93
- commands/cli/ops_config.py +3 -6
- commands/{cat/list_categories.py → deprecated/list_data_designer.py} +53 -64
- commands/{cat/list_data_structures.py → deprecated/list_data_structures_full.py} +3 -6
- commands/deprecated/old_get_asset_graph.py +315 -0
- commands/my/__init__.py +0 -2
- commands/my/list_my_profile.py +27 -34
- commands/my/list_my_roles.py +1 -7
- commands/my/monitor_my_todos.py +1 -7
- commands/my/monitor_open_todos.py +6 -7
- commands/my/todo_actions.py +4 -5
- commands/ops/__init__.py +0 -2
- commands/ops/gov_server_actions.py +17 -21
- commands/ops/list_archives.py +17 -38
- commands/ops/list_catalog_targets.py +33 -40
- commands/ops/load_archive.py +35 -26
- commands/ops/{monitor_engine_activity_c.py → monitor_active_engine_activity.py} +51 -82
- commands/ops/{monitor_integ_daemon_status.py → monitor_daemon_status.py} +35 -55
- commands/ops/monitor_engine_activity.py +79 -77
- commands/ops/{monitor_gov_eng_status.py → monitor_engine_status.py} +10 -7
- commands/ops/monitor_platform_status.py +38 -50
- commands/ops/monitor_server_startup.py +6 -11
- commands/ops/monitor_server_status.py +7 -11
- commands/ops/orig_monitor_server_list.py +8 -8
- commands/ops/orig_monitor_server_status.py +1 -5
- commands/ops/refresh_integration_daemon.py +5 -5
- commands/ops/restart_integration_daemon.py +5 -5
- commands/ops/table_integ_daemon_status.py +6 -6
- commands/ops/x_engine_actions.py +7 -7
- commands/tech/__init__.py +0 -2
- commands/tech/{generic_actions.py → element_actions.py} +6 -11
- commands/tech/get_element_info.py +20 -29
- commands/tech/get_guid_info.py +23 -42
- commands/tech/get_tech_details.py +20 -35
- commands/tech/get_tech_type_template.py +28 -39
- commands/tech/list_all_om_type_elements.py +24 -30
- commands/tech/list_all_om_type_elements_x.py +22 -28
- commands/tech/list_all_related_elements.py +19 -28
- commands/tech/list_anchored_elements.py +22 -30
- commands/tech/list_asset_types.py +19 -24
- commands/tech/list_elements_by_classification_by_property_value.py +26 -32
- commands/tech/list_elements_by_property_value.py +19 -25
- commands/tech/list_elements_by_property_value_x.py +20 -28
- commands/tech/list_elements_for_classification.py +28 -41
- commands/tech/list_gov_action_processes.py +16 -27
- commands/tech/list_information_supply_chains.py +22 -30
- commands/tech/list_registered_services.py +14 -26
- commands/tech/list_related_elements_with_prop_value.py +15 -25
- commands/tech/list_related_specification.py +1 -4
- commands/tech/list_relationship_types.py +15 -25
- commands/tech/list_relationships.py +20 -36
- commands/tech/list_solution_blueprints.py +28 -33
- commands/tech/list_solution_components.py +23 -29
- commands/tech/list_solution_roles.py +21 -32
- commands/tech/list_tech_templates.py +51 -54
- commands/tech/list_valid_metadata_values.py +5 -9
- commands/tech/table_tech_templates.py +2 -6
- commands/tech/x_list_related_elements.py +1 -4
- examples/GeoSpatial Products Example.py +524 -0
- examples/Jupyter Notebooks/P-egeria-server-config.ipynb +2137 -0
- examples/Jupyter Notebooks/README.md +2 -0
- examples/Jupyter Notebooks/common/P-environment-check.ipynb +115 -0
- examples/Jupyter Notebooks/common/__init__.py +14 -0
- examples/Jupyter Notebooks/common/common-functions.ipynb +4694 -0
- examples/Jupyter Notebooks/common/environment-check.ipynb +52 -0
- examples/Jupyter Notebooks/common/globals.ipynb +184 -0
- examples/Jupyter Notebooks/common/globals.py +154 -0
- examples/Jupyter Notebooks/common/orig_globals.py +152 -0
- examples/format_sets/all_format_sets.json +910 -0
- examples/format_sets/custom_format_sets.json +268 -0
- examples/format_sets/subset_format_sets.json +187 -0
- examples/format_sets_save_load_example.py +291 -0
- examples/jacquard_data_sets.py +129 -0
- examples/output_formats_example.py +193 -0
- examples/test_jacquard_data_sets.py +54 -0
- examples/test_jacquard_data_sets_scenarios.py +94 -0
- md_processing/__init__.py +90 -0
- md_processing/command_dispatcher.py +33 -0
- md_processing/command_mapping.py +221 -0
- md_processing/data/commands/commands_data_designer.json +537 -0
- md_processing/data/commands/commands_external_reference.json +733 -0
- md_processing/data/commands/commands_feedback.json +155 -0
- md_processing/data/commands/commands_general.json +204 -0
- md_processing/data/commands/commands_glossary.json +218 -0
- md_processing/data/commands/commands_governance.json +3678 -0
- md_processing/data/commands/commands_product_manager.json +865 -0
- md_processing/data/commands/commands_project.json +642 -0
- md_processing/data/commands/commands_solution_architect.json +366 -0
- md_processing/data/commands.json +17568 -0
- md_processing/data/commands_working.json +30641 -0
- md_processing/data/gened_report_specs.py +6584 -0
- md_processing/data/generated_format_sets.json +6533 -0
- md_processing/data/generated_format_sets_old.json +4137 -0
- md_processing/data/generated_format_sets_old.py +45 -0
- md_processing/dr_egeria.py +182 -0
- md_processing/md_commands/__init__.py +3 -0
- md_processing/md_commands/data_designer_commands.py +1276 -0
- md_processing/md_commands/ext_ref_commands.py +530 -0
- md_processing/md_commands/feedback_commands.py +726 -0
- md_processing/md_commands/glossary_commands.py +684 -0
- md_processing/md_commands/governance_officer_commands.py +600 -0
- md_processing/md_commands/product_manager_commands.py +1266 -0
- md_processing/md_commands/project_commands.py +383 -0
- md_processing/md_commands/solution_architect_commands.py +1184 -0
- md_processing/md_commands/view_commands.py +295 -0
- md_processing/md_processing_utils/__init__.py +4 -0
- md_processing/md_processing_utils/common_md_proc_utils.py +1249 -0
- md_processing/md_processing_utils/common_md_utils.py +578 -0
- md_processing/md_processing_utils/determine_width.py +103 -0
- md_processing/md_processing_utils/extraction_utils.py +547 -0
- md_processing/md_processing_utils/gen_report_specs.py +643 -0
- md_processing/md_processing_utils/generate_dr_help.py +193 -0
- md_processing/md_processing_utils/generate_md_cmd_templates.py +144 -0
- md_processing/md_processing_utils/generate_md_templates.py +83 -0
- md_processing/md_processing_utils/md_processing_constants.py +1228 -0
- md_processing/md_processing_utils/message_constants.py +19 -0
- pyegeria/__init__.py +201 -443
- pyegeria/core/__init__.py +40 -0
- pyegeria/core/_base_platform_client.py +574 -0
- pyegeria/core/_base_server_client.py +573 -0
- pyegeria/core/_exceptions.py +457 -0
- pyegeria/core/_globals.py +60 -0
- pyegeria/core/_server_client.py +6073 -0
- pyegeria/core/_validators.py +257 -0
- pyegeria/core/config.py +654 -0
- pyegeria/{create_tech_guid_lists.py → core/create_tech_guid_lists.py} +0 -1
- pyegeria/core/load_config.py +37 -0
- pyegeria/core/logging_configuration.py +207 -0
- pyegeria/core/mcp_adapter.py +144 -0
- pyegeria/core/mcp_server.py +212 -0
- pyegeria/core/utils.py +405 -0
- pyegeria/deprecated/__init__.py +0 -0
- pyegeria/{_client.py → deprecated/_client.py} +62 -24
- pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
- pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1988 -1878
- pyegeria/deprecated/output_formatter_with_machine_keys.py +1127 -0
- pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +216 -229
- pyegeria/{valid_metadata_omvs.py → deprecated/valid_metadata_omvs.py} +93 -93
- pyegeria/{x_action_author_omvs.py → deprecated/x_action_author_omvs.py} +2 -3
- pyegeria/egeria_cat_client.py +25 -51
- pyegeria/egeria_client.py +140 -98
- pyegeria/egeria_config_client.py +48 -24
- pyegeria/egeria_tech_client.py +170 -83
- pyegeria/models/__init__.py +150 -0
- pyegeria/models/collection_models.py +168 -0
- pyegeria/models/models.py +654 -0
- pyegeria/omvs/__init__.py +84 -0
- pyegeria/omvs/action_author.py +342 -0
- pyegeria/omvs/actor_manager.py +5980 -0
- pyegeria/omvs/asset_catalog.py +842 -0
- pyegeria/omvs/asset_maker.py +2736 -0
- pyegeria/omvs/automated_curation.py +4403 -0
- pyegeria/omvs/classification_manager.py +11213 -0
- pyegeria/omvs/collection_manager.py +5780 -0
- pyegeria/omvs/community_matters_omvs.py +468 -0
- pyegeria/{core_omag_server_config.py → omvs/core_omag_server_config.py} +157 -157
- pyegeria/{data_designer_omvs.py → omvs/data_designer.py} +1991 -1691
- pyegeria/omvs/data_discovery.py +869 -0
- pyegeria/omvs/data_engineer.py +372 -0
- pyegeria/omvs/digital_business.py +1133 -0
- pyegeria/omvs/external_links.py +1752 -0
- pyegeria/omvs/feedback_manager.py +834 -0
- pyegeria/{full_omag_server_config.py → omvs/full_omag_server_config.py} +73 -69
- pyegeria/omvs/glossary_manager.py +3231 -0
- pyegeria/omvs/governance_officer.py +3009 -0
- pyegeria/omvs/lineage_linker.py +314 -0
- pyegeria/omvs/location_arena.py +1525 -0
- pyegeria/omvs/metadata_expert.py +668 -0
- pyegeria/omvs/metadata_explorer_omvs.py +2943 -0
- pyegeria/omvs/my_profile.py +1042 -0
- pyegeria/omvs/notification_manager.py +358 -0
- pyegeria/omvs/people_organizer.py +394 -0
- pyegeria/{platform_services.py → omvs/platform_services.py} +113 -193
- pyegeria/omvs/product_manager.py +1825 -0
- pyegeria/omvs/project_manager.py +1907 -0
- pyegeria/omvs/reference_data.py +1140 -0
- pyegeria/omvs/registered_info.py +334 -0
- pyegeria/omvs/runtime_manager.py +2817 -0
- pyegeria/omvs/schema_maker.py +446 -0
- pyegeria/{server_operations.py → omvs/server_operations.py} +27 -26
- pyegeria/omvs/solution_architect.py +6490 -0
- pyegeria/omvs/specification_properties.py +37 -0
- pyegeria/omvs/subject_area.py +1042 -0
- pyegeria/omvs/template_manager_omvs.py +236 -0
- pyegeria/omvs/time_keeper.py +1761 -0
- pyegeria/omvs/valid_metadata.py +3221 -0
- pyegeria/omvs/valid_metadata_lists.py +37 -0
- pyegeria/omvs/valid_type_lists.py +37 -0
- pyegeria/view/__init__.py +28 -0
- pyegeria/view/_output_format_models.py +514 -0
- pyegeria/view/_output_formats.py +14 -0
- pyegeria/view/base_report_formats.py +2719 -0
- pyegeria/view/dr_egeria_reports.py +56 -0
- pyegeria/view/format_set_executor.py +397 -0
- pyegeria/{md_processing_utils.py → view/md_processing_utils.py} +5 -5
- pyegeria/{mermaid_utilities.py → view/mermaid_utilities.py} +2 -154
- pyegeria/view/output_formatter.py +1297 -0
- pyegeria-5.5.3.3.dist-info/METADATA +218 -0
- pyegeria-5.5.3.3.dist-info/RECORD +241 -0
- {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.5.3.3.dist-info}/WHEEL +2 -1
- pyegeria-5.5.3.3.dist-info/entry_points.txt +103 -0
- pyegeria-5.5.3.3.dist-info/top_level.txt +4 -0
- commands/cat/.DS_Store +0 -0
- commands/cat/README.md +0 -16
- commands/cli/txt_custom_v2.tcss +0 -19
- commands/my/README.md +0 -17
- commands/ops/README.md +0 -24
- commands/ops/monitor_asset_events.py +0 -108
- commands/tech/README.md +0 -24
- pyegeria/.DS_Store +0 -0
- pyegeria/README.md +0 -35
- pyegeria/_globals.py +0 -47
- pyegeria/_validators.py +0 -385
- pyegeria/asset_catalog_omvs.py +0 -864
- pyegeria/automated_curation_omvs.py +0 -3765
- pyegeria/collection_manager_omvs.py +0 -2744
- pyegeria/dr.egeria spec.md +0 -9
- pyegeria/egeria_my_client.py +0 -56
- pyegeria/feedback_manager_omvs.py +0 -4573
- pyegeria/glossary_browser_omvs.py +0 -3728
- pyegeria/glossary_manager_omvs.py +0 -2440
- pyegeria/m_test.py +0 -118
- pyegeria/md_processing_helpers.py +0 -58
- pyegeria/md_processing_utils_orig.py +0 -1103
- pyegeria/metadata_explorer_omvs.py +0 -2326
- pyegeria/my_profile_omvs.py +0 -1022
- pyegeria/output_formatter.py +0 -389
- pyegeria/project_manager_omvs.py +0 -1933
- pyegeria/registered_info.py +0 -167
- pyegeria/solution_architect_omvs.py +0 -2156
- pyegeria/template_manager_omvs.py +0 -1414
- pyegeria/utils.py +0 -197
- pyegeria-5.3.9.9.3.dist-info/METADATA +0 -72
- pyegeria-5.3.9.9.3.dist-info/RECORD +0 -143
- pyegeria-5.3.9.9.3.dist-info/entry_points.txt +0 -99
- /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
- {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
|
@@ -0,0 +1,668 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
Copyright Contributors to the ODPi Egeria project.
|
|
4
|
+
|
|
5
|
+
The Metadata Expert OMVS provides APIs for supporting the search, query and retrieval of open metadata.
|
|
6
|
+
It is an advanced API for users that understand the Open Metadata Types.
|
|
7
|
+
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import asyncio
|
|
11
|
+
from loguru import logger
|
|
12
|
+
|
|
13
|
+
from pyegeria.models import (NewOpenMetadataElementRequestBody, TemplateRequestBody,
|
|
14
|
+
UpdatePropertiesRequestBody, MetadataSourceRequestBody,
|
|
15
|
+
UpdateEffectivityDatesRequestBody, OpenMetadataDeleteRequestBody,
|
|
16
|
+
ArchiveRequestBody, NewClassificationRequestBody,
|
|
17
|
+
NewRelatedElementsRequestBody)
|
|
18
|
+
from pyegeria.core.utils import dynamic_catch
|
|
19
|
+
from pyegeria.core._server_client import ServerClient
|
|
20
|
+
from typing import Any, Optional
|
|
21
|
+
|
|
22
|
+
class MetadataExpert(ServerClient):
|
|
23
|
+
"""
|
|
24
|
+
Metadata Expert OMVS client.
|
|
25
|
+
|
|
26
|
+
Attributes:
|
|
27
|
+
server_name: str
|
|
28
|
+
The name of the View Server to connect to.
|
|
29
|
+
platform_url : str
|
|
30
|
+
URL of the server platform to connect to
|
|
31
|
+
user_id : str
|
|
32
|
+
The identity of the user calling the method
|
|
33
|
+
user_pwd: str
|
|
34
|
+
The password associated with the user_id. Defaults to None
|
|
35
|
+
token: str
|
|
36
|
+
An optional bearer token
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
def __init__(self, view_server: str, platform_url: str, user_id: str, user_pwd: Optional[str] = None, token: str = None):
|
|
40
|
+
self.view_server = view_server
|
|
41
|
+
self.platform_url = platform_url
|
|
42
|
+
self.user_id = user_id
|
|
43
|
+
self.user_pwd = user_pwd
|
|
44
|
+
ServerClient.__init__(self, view_server, platform_url, user_id, user_pwd, token)
|
|
45
|
+
logger.debug(f"{self.__class__.__name__} initialized")
|
|
46
|
+
self.command_root: str = (
|
|
47
|
+
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/metadata-expert")
|
|
48
|
+
|
|
49
|
+
@dynamic_catch
|
|
50
|
+
async def _async_create_metadata_element(self, body: Optional[dict | NewOpenMetadataElementRequestBody] = None) -> str:
|
|
51
|
+
"""
|
|
52
|
+
Create a new metadata element in the metadata store. Async version.
|
|
53
|
+
The type name comes from the open metadata types.
|
|
54
|
+
The selected type also controls the names and types of the properties that are allowed.
|
|
55
|
+
This version of the method allows access to advanced features such as multiple states and
|
|
56
|
+
effectivity dates.
|
|
57
|
+
|
|
58
|
+
Parameters
|
|
59
|
+
----------
|
|
60
|
+
body : dict | NewOpenMetadataElementRequestBody, optional
|
|
61
|
+
The details of the metadata element to create.
|
|
62
|
+
|
|
63
|
+
Returns
|
|
64
|
+
-------
|
|
65
|
+
str
|
|
66
|
+
The unique identifier (GUID) of the newly created metadata element.
|
|
67
|
+
|
|
68
|
+
Notes
|
|
69
|
+
-----
|
|
70
|
+
Sample JSON body:
|
|
71
|
+
{
|
|
72
|
+
"class" : "NewOpenMetadataElementRequestBody",
|
|
73
|
+
"externalSourceGUID" : "",
|
|
74
|
+
"externalSourceName" : "",
|
|
75
|
+
"typeName" : "",
|
|
76
|
+
"initialClassifications" : {},
|
|
77
|
+
"anchorGUID" : "",
|
|
78
|
+
"isOwnAnchor" : false,
|
|
79
|
+
"effectiveFrom" : "2024-01-01T00:00:00.000+00:00",
|
|
80
|
+
"effectiveTo": "2024-12-31T23:59:59.000+00:00",
|
|
81
|
+
"properties" : {},
|
|
82
|
+
"parentGUID" : "",
|
|
83
|
+
"parentRelationshipTypeName" : "",
|
|
84
|
+
"parentRelationshipProperties" : {},
|
|
85
|
+
"parentAtEnd1" : true,
|
|
86
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
87
|
+
}
|
|
88
|
+
"""
|
|
89
|
+
url = f"{self.command_root}/metadata-elements"
|
|
90
|
+
return await self._async_create_open_metadata_element_body_request(url, body)
|
|
91
|
+
|
|
92
|
+
@dynamic_catch
|
|
93
|
+
def create_metadata_element(self, body: Optional[dict | NewOpenMetadataElementRequestBody] = None) -> str:
|
|
94
|
+
"""
|
|
95
|
+
Create a new metadata element in the metadata store.
|
|
96
|
+
"""
|
|
97
|
+
return asyncio.run(self._async_create_metadata_element(body))
|
|
98
|
+
|
|
99
|
+
@dynamic_catch
|
|
100
|
+
async def _async_create_metadata_element_from_template(self, body: Optional[dict | TemplateRequestBody] = None) -> str:
|
|
101
|
+
"""
|
|
102
|
+
Create a new metadata element in the metadata store using a template. Async version.
|
|
103
|
+
|
|
104
|
+
Parameters
|
|
105
|
+
----------
|
|
106
|
+
body : dict | TemplateRequestBody, optional
|
|
107
|
+
The details for creating the element from a template.
|
|
108
|
+
|
|
109
|
+
Returns
|
|
110
|
+
-------
|
|
111
|
+
str
|
|
112
|
+
The unique identifier (GUID) of the newly created metadata element.
|
|
113
|
+
|
|
114
|
+
Notes
|
|
115
|
+
-----
|
|
116
|
+
Sample JSON body:
|
|
117
|
+
{
|
|
118
|
+
"class" : "TemplateRequestBody",
|
|
119
|
+
"externalSourceGUID" : "",
|
|
120
|
+
"externalSourceName" : "",
|
|
121
|
+
"typeName" : "",
|
|
122
|
+
"templateGUID" : "",
|
|
123
|
+
"anchorGUID" : "",
|
|
124
|
+
"isOwnAnchor" : false,
|
|
125
|
+
"effectiveFrom" : "2024-01-01T00:00:00.000+00:00",
|
|
126
|
+
"effectiveTo": "2024-12-31T23:59:59.000+00:00",
|
|
127
|
+
"replacementProperties" : {
|
|
128
|
+
"class": "ElementProperties",
|
|
129
|
+
"propertyValueMap" : {
|
|
130
|
+
"propertyName" : {
|
|
131
|
+
"class": "PrimitiveTypePropertyValue",
|
|
132
|
+
"typeName": "string",
|
|
133
|
+
"primitiveValue" : "value of property"
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"placeholderPropertyValues" : {
|
|
138
|
+
"placeholderName1" : "placeholderValue1",
|
|
139
|
+
"placeholderName2" : "placeholderValue2"
|
|
140
|
+
},
|
|
141
|
+
"parentGUID" : "",
|
|
142
|
+
"parentRelationshipTypeName" : "",
|
|
143
|
+
"parentRelationshipProperties" : {},
|
|
144
|
+
"parentAtEnd1" : true,
|
|
145
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
146
|
+
}
|
|
147
|
+
"""
|
|
148
|
+
url = f"{self.command_root}/metadata-elements/from-template"
|
|
149
|
+
return await self._async_create_element_from_template(url, body)
|
|
150
|
+
|
|
151
|
+
@dynamic_catch
|
|
152
|
+
def create_metadata_element_from_template(self, body: Optional[dict | TemplateRequestBody] = None) -> str:
|
|
153
|
+
"""
|
|
154
|
+
Create a new metadata element in the metadata store using a template.
|
|
155
|
+
"""
|
|
156
|
+
return asyncio.run(self._async_create_metadata_element_from_template(body))
|
|
157
|
+
|
|
158
|
+
@dynamic_catch
|
|
159
|
+
async def _async_update_metadata_element_properties(self, metadata_element_guid: str, body: Optional[dict | UpdatePropertiesRequestBody] = None) -> None:
|
|
160
|
+
"""
|
|
161
|
+
Update the properties of a specific metadata element. Async version.
|
|
162
|
+
|
|
163
|
+
Parameters
|
|
164
|
+
----------
|
|
165
|
+
metadata_element_guid : str
|
|
166
|
+
Unique identifier of the metadata element to update.
|
|
167
|
+
body : dict | UpdatePropertiesRequestBody, optional
|
|
168
|
+
The updated properties.
|
|
169
|
+
|
|
170
|
+
Notes
|
|
171
|
+
-----
|
|
172
|
+
Sample JSON body:
|
|
173
|
+
{
|
|
174
|
+
"class" : "UpdatePropertiesRequestBody",
|
|
175
|
+
"externalSourceGUID" : "",
|
|
176
|
+
"externalSourceName" : "",
|
|
177
|
+
"forLineage" : false,
|
|
178
|
+
"forDuplicateProcessing" : false,
|
|
179
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00",
|
|
180
|
+
"properties" : {
|
|
181
|
+
"class": "ElementProperties",
|
|
182
|
+
"propertyValueMap" : {
|
|
183
|
+
"description" : {
|
|
184
|
+
"class": "PrimitiveTypePropertyValue",
|
|
185
|
+
"typeName": "string",
|
|
186
|
+
"primitiveValue" : "New description"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
"replaceProperties" : false
|
|
191
|
+
}
|
|
192
|
+
"""
|
|
193
|
+
url = f"{self.command_root}/metadata-elements/{metadata_element_guid}/update-properties"
|
|
194
|
+
await self._async_update_properties_body_request(url, body)
|
|
195
|
+
|
|
196
|
+
@dynamic_catch
|
|
197
|
+
def update_metadata_element_properties(self, metadata_element_guid: str, body: Optional[dict | UpdatePropertiesRequestBody] = None) -> None:
|
|
198
|
+
"""
|
|
199
|
+
Update the properties of a specific metadata element.
|
|
200
|
+
"""
|
|
201
|
+
return asyncio.run(self._async_update_metadata_element_properties(metadata_element_guid, body))
|
|
202
|
+
|
|
203
|
+
@dynamic_catch
|
|
204
|
+
async def _async_publish_metadata_element(self, metadata_element_guid: str, body: Optional[dict | MetadataSourceRequestBody] = None) -> None:
|
|
205
|
+
"""
|
|
206
|
+
Update the zone membership to increase its visibility. Async version.
|
|
207
|
+
|
|
208
|
+
Parameters
|
|
209
|
+
----------
|
|
210
|
+
metadata_element_guid : str
|
|
211
|
+
Unique identifier of the metadata element to publish.
|
|
212
|
+
body : dict | MetadataSourceRequestBody, optional
|
|
213
|
+
Publication details.
|
|
214
|
+
|
|
215
|
+
Notes
|
|
216
|
+
-----
|
|
217
|
+
Sample JSON body:
|
|
218
|
+
{
|
|
219
|
+
"class" : "MetadataSourceRequestBody",
|
|
220
|
+
"externalSourceGUID" : "",
|
|
221
|
+
"externalSourceName" : "",
|
|
222
|
+
"forLineage" : false,
|
|
223
|
+
"forDuplicateProcessing" : false,
|
|
224
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
225
|
+
}
|
|
226
|
+
"""
|
|
227
|
+
url = f"{self.command_root}/metadata-elements/{metadata_element_guid}/publish"
|
|
228
|
+
await self._async_metadata_source_body_request(url, body)
|
|
229
|
+
|
|
230
|
+
@dynamic_catch
|
|
231
|
+
def publish_metadata_element(self, metadata_element_guid: str, body: Optional[dict | MetadataSourceRequestBody] = None) -> None:
|
|
232
|
+
"""
|
|
233
|
+
Update the zone membership to increase its visibility.
|
|
234
|
+
"""
|
|
235
|
+
return asyncio.run(self._async_publish_metadata_element(metadata_element_guid, body))
|
|
236
|
+
|
|
237
|
+
@dynamic_catch
|
|
238
|
+
async def _async_withdraw_metadata_element(self, metadata_element_guid: str, body: Optional[dict | MetadataSourceRequestBody] = None) -> None:
|
|
239
|
+
"""
|
|
240
|
+
Update the zone membership to decrease its visibility. Async version.
|
|
241
|
+
|
|
242
|
+
Parameters
|
|
243
|
+
----------
|
|
244
|
+
metadata_element_guid : str
|
|
245
|
+
Unique identifier of the metadata element to withdraw.
|
|
246
|
+
body : dict | MetadataSourceRequestBody, optional
|
|
247
|
+
Withdrawal details.
|
|
248
|
+
|
|
249
|
+
Notes
|
|
250
|
+
-----
|
|
251
|
+
Sample JSON body:
|
|
252
|
+
{
|
|
253
|
+
"class" : "MetadataSourceRequestBody",
|
|
254
|
+
"externalSourceGUID" : "",
|
|
255
|
+
"externalSourceName" : "",
|
|
256
|
+
"forLineage" : false,
|
|
257
|
+
"forDuplicateProcessing" : false,
|
|
258
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
259
|
+
}
|
|
260
|
+
"""
|
|
261
|
+
url = f"{self.command_root}/metadata-elements/{metadata_element_guid}/withdraw"
|
|
262
|
+
await self._async_metadata_source_body_request(url, body)
|
|
263
|
+
|
|
264
|
+
@dynamic_catch
|
|
265
|
+
def withdraw_metadata_element(self, metadata_element_guid: str, body: Optional[dict | MetadataSourceRequestBody] = None) -> None:
|
|
266
|
+
"""
|
|
267
|
+
Update the zone membership to decrease its visibility.
|
|
268
|
+
"""
|
|
269
|
+
return asyncio.run(self._async_withdraw_metadata_element(metadata_element_guid, body))
|
|
270
|
+
|
|
271
|
+
@dynamic_catch
|
|
272
|
+
async def _async_update_metadata_element_effectivity(self, metadata_element_guid: str, body: Optional[dict | UpdateEffectivityDatesRequestBody] = None) -> None:
|
|
273
|
+
"""
|
|
274
|
+
Update the effectivity dates for a specific metadata element. Async version.
|
|
275
|
+
|
|
276
|
+
Parameters
|
|
277
|
+
----------
|
|
278
|
+
metadata_element_guid : str
|
|
279
|
+
Unique identifier of the metadata element.
|
|
280
|
+
body : dict | UpdateEffectivityDatesRequestBody, optional
|
|
281
|
+
The new effectivity dates.
|
|
282
|
+
|
|
283
|
+
Notes
|
|
284
|
+
-----
|
|
285
|
+
Sample JSON body:
|
|
286
|
+
{
|
|
287
|
+
"class" : "UpdateEffectivityDatesRequestBody",
|
|
288
|
+
"externalSourceGUID" : "",
|
|
289
|
+
"externalSourceName" : "",
|
|
290
|
+
"effectiveFrom" : "2024-01-01T00:00:00.000+00:00",
|
|
291
|
+
"effectiveTo": "2024-12-31T23:59:59.000+00:00",
|
|
292
|
+
"forLineage" : false,
|
|
293
|
+
"forDuplicateProcessing" : false,
|
|
294
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
295
|
+
}
|
|
296
|
+
"""
|
|
297
|
+
url = f"{self.command_root}/metadata-elements/{metadata_element_guid}/update-effectivity"
|
|
298
|
+
await self._async_update_effectivity_dates_body_request(url, body)
|
|
299
|
+
|
|
300
|
+
@dynamic_catch
|
|
301
|
+
def update_metadata_element_effectivity(self, metadata_element_guid: str, body: Optional[dict | UpdateEffectivityDatesRequestBody] = None) -> None:
|
|
302
|
+
"""
|
|
303
|
+
Update the effectivity dates for a specific metadata element.
|
|
304
|
+
"""
|
|
305
|
+
return asyncio.run(self._async_update_metadata_element_effectivity(metadata_element_guid, body))
|
|
306
|
+
|
|
307
|
+
@dynamic_catch
|
|
308
|
+
async def _async_delete_metadata_element(self, metadata_element_guid: str, body: Optional[dict | OpenMetadataDeleteRequestBody] = None) -> None:
|
|
309
|
+
"""
|
|
310
|
+
Delete a specific metadata element. Async version.
|
|
311
|
+
|
|
312
|
+
Parameters
|
|
313
|
+
----------
|
|
314
|
+
metadata_element_guid : str
|
|
315
|
+
Unique identifier of the metadata element to delete.
|
|
316
|
+
body : dict | OpenMetadataDeleteRequestBody, optional
|
|
317
|
+
Deletion details.
|
|
318
|
+
|
|
319
|
+
Notes
|
|
320
|
+
-----
|
|
321
|
+
Sample JSON body:
|
|
322
|
+
{
|
|
323
|
+
"class" : "OpenMetadataDeleteRequestBody",
|
|
324
|
+
"externalSourceGUID" : "",
|
|
325
|
+
"externalSourceName" : "",
|
|
326
|
+
"forLineage" : false,
|
|
327
|
+
"forDuplicateProcessing" : false,
|
|
328
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
329
|
+
}
|
|
330
|
+
"""
|
|
331
|
+
url = f"{self.command_root}/metadata-elements/{metadata_element_guid}/delete"
|
|
332
|
+
await self._async_open_metadata_delete_body_request(url, body)
|
|
333
|
+
|
|
334
|
+
@dynamic_catch
|
|
335
|
+
def delete_metadata_element(self, metadata_element_guid: str, body: Optional[dict | OpenMetadataDeleteRequestBody] = None) -> None:
|
|
336
|
+
"""
|
|
337
|
+
Delete a specific metadata element.
|
|
338
|
+
"""
|
|
339
|
+
return asyncio.run(self._async_delete_metadata_element(metadata_element_guid, body))
|
|
340
|
+
|
|
341
|
+
@dynamic_catch
|
|
342
|
+
async def _async_archive_metadata_element(self, metadata_element_guid: str, body: Optional[dict | ArchiveRequestBody] = None) -> None:
|
|
343
|
+
"""
|
|
344
|
+
Archive a specific metadata element. Async version.
|
|
345
|
+
|
|
346
|
+
Parameters
|
|
347
|
+
----------
|
|
348
|
+
metadata_element_guid : str
|
|
349
|
+
Unique identifier of the metadata element to archive.
|
|
350
|
+
body : dict | ArchiveRequestBody, optional
|
|
351
|
+
Archiving details.
|
|
352
|
+
|
|
353
|
+
Notes
|
|
354
|
+
-----
|
|
355
|
+
Sample JSON body:
|
|
356
|
+
{
|
|
357
|
+
"class" : "ArchiveRequestBody",
|
|
358
|
+
"externalSourceGUID" : "",
|
|
359
|
+
"externalSourceName" : "",
|
|
360
|
+
"archiveProperties" : {
|
|
361
|
+
"archiveDate" : "2024-01-01T00:00:00.000+00:00",
|
|
362
|
+
"archiveProcess" : "",
|
|
363
|
+
"archiveProperties": {
|
|
364
|
+
"propertyName1" : "propertyValue1",
|
|
365
|
+
"propertyName2" : "propertyValue2"
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"forLineage" : false,
|
|
369
|
+
"forDuplicateProcessing" : false,
|
|
370
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
371
|
+
}
|
|
372
|
+
"""
|
|
373
|
+
url = f"{self.command_root}/metadata-elements/{metadata_element_guid}/archive"
|
|
374
|
+
await self._async_archive_body_request(url, body)
|
|
375
|
+
|
|
376
|
+
@dynamic_catch
|
|
377
|
+
def archive_metadata_element(self, metadata_element_guid: str, body: Optional[dict | ArchiveRequestBody] = None) -> None:
|
|
378
|
+
"""
|
|
379
|
+
Archive a specific metadata element.
|
|
380
|
+
"""
|
|
381
|
+
return asyncio.run(self._async_archive_metadata_element(metadata_element_guid, body))
|
|
382
|
+
|
|
383
|
+
@dynamic_catch
|
|
384
|
+
async def _async_classify_metadata_element(self, metadata_element_guid: str, classification_name: str, body: Optional[dict | NewClassificationRequestBody] = None) -> None:
|
|
385
|
+
"""
|
|
386
|
+
Add a new classification to the metadata element. Async version.
|
|
387
|
+
|
|
388
|
+
Parameters
|
|
389
|
+
----------
|
|
390
|
+
metadata_element_guid : str
|
|
391
|
+
Unique identifier of the metadata element.
|
|
392
|
+
classification_name : str
|
|
393
|
+
Name of the classification to add.
|
|
394
|
+
body : dict | NewClassificationRequestBody, optional
|
|
395
|
+
Classification details.
|
|
396
|
+
|
|
397
|
+
Notes
|
|
398
|
+
-----
|
|
399
|
+
Sample JSON body:
|
|
400
|
+
{
|
|
401
|
+
"class" : "NewClassificationRequestBody",
|
|
402
|
+
"externalSourceGUID" : "",
|
|
403
|
+
"externalSourceName" : "",
|
|
404
|
+
"forLineage" : false,
|
|
405
|
+
"forDuplicateProcessing" : false,
|
|
406
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
407
|
+
}
|
|
408
|
+
"""
|
|
409
|
+
url = f"{self.command_root}/metadata-elements/{metadata_element_guid}/classifications/{classification_name}"
|
|
410
|
+
await self._async_new_classification_request(url, body=body)
|
|
411
|
+
|
|
412
|
+
@dynamic_catch
|
|
413
|
+
def classify_metadata_element(self, metadata_element_guid: str, classification_name: str, body: Optional[dict | NewClassificationRequestBody] = None) -> None:
|
|
414
|
+
"""
|
|
415
|
+
Add a new classification to the metadata element.
|
|
416
|
+
"""
|
|
417
|
+
return asyncio.run(self._async_classify_metadata_element(metadata_element_guid, classification_name, body))
|
|
418
|
+
|
|
419
|
+
@dynamic_catch
|
|
420
|
+
async def _async_reclassify_metadata_element(self, metadata_element_guid: str, classification_name: str, body: Optional[dict | UpdatePropertiesRequestBody] = None) -> None:
|
|
421
|
+
"""
|
|
422
|
+
Update the properties of a classification that is currently attached to a specific metadata element. Async version.
|
|
423
|
+
|
|
424
|
+
Parameters
|
|
425
|
+
----------
|
|
426
|
+
metadata_element_guid : str
|
|
427
|
+
Unique identifier of the metadata element.
|
|
428
|
+
classification_name : str
|
|
429
|
+
Name of the classification to update.
|
|
430
|
+
body : dict | UpdatePropertiesRequestBody, optional
|
|
431
|
+
Updated classification properties.
|
|
432
|
+
|
|
433
|
+
Notes
|
|
434
|
+
-----
|
|
435
|
+
Sample JSON body:
|
|
436
|
+
{
|
|
437
|
+
"class" : "UpdatePropertiesRequestBody",
|
|
438
|
+
"externalSourceGUID" : "",
|
|
439
|
+
"externalSourceName" : "",
|
|
440
|
+
"forLineage" : false,
|
|
441
|
+
"forDuplicateProcessing" : false,
|
|
442
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
443
|
+
}
|
|
444
|
+
"""
|
|
445
|
+
url = f"{self.command_root}/metadata-elements/{metadata_element_guid}/classifications/{classification_name}/update-properties"
|
|
446
|
+
await self._async_update_properties_body_request(url, body)
|
|
447
|
+
|
|
448
|
+
@dynamic_catch
|
|
449
|
+
def reclassify_metadata_element(self, metadata_element_guid: str, classification_name: str, body: Optional[dict | UpdatePropertiesRequestBody] = None) -> None:
|
|
450
|
+
"""
|
|
451
|
+
Update the properties of a classification that is currently attached to a specific metadata element.
|
|
452
|
+
"""
|
|
453
|
+
return asyncio.run(self._async_reclassify_metadata_element(metadata_element_guid, classification_name, body))
|
|
454
|
+
|
|
455
|
+
@dynamic_catch
|
|
456
|
+
async def _async_update_classification_effectivity(self, metadata_element_guid: str, classification_name: str, body: Optional[dict | UpdateEffectivityDatesRequestBody] = None) -> None:
|
|
457
|
+
"""
|
|
458
|
+
Update the effectivity dates of a specific classification attached to a metadata element. Async version.
|
|
459
|
+
|
|
460
|
+
Parameters
|
|
461
|
+
----------
|
|
462
|
+
metadata_element_guid : str
|
|
463
|
+
Unique identifier of the metadata element.
|
|
464
|
+
classification_name : str
|
|
465
|
+
Name of the classification.
|
|
466
|
+
body : dict | UpdateEffectivityDatesRequestBody, optional
|
|
467
|
+
New effectivity dates.
|
|
468
|
+
|
|
469
|
+
Notes
|
|
470
|
+
-----
|
|
471
|
+
Sample JSON body:
|
|
472
|
+
{
|
|
473
|
+
"class" : "UpdateEffectivityDatesRequestBody",
|
|
474
|
+
"externalSourceGUID" : "",
|
|
475
|
+
"externalSourceName" : "",
|
|
476
|
+
"effectiveFrom" : "2024-01-01T00:00:00.000+00:00",
|
|
477
|
+
"effectiveTo": "2024-12-31T23:59:59.000+00:00",
|
|
478
|
+
"forLineage" : false,
|
|
479
|
+
"forDuplicateProcessing" : false,
|
|
480
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
481
|
+
}
|
|
482
|
+
"""
|
|
483
|
+
url = f"{self.command_root}/metadata-elements/{metadata_element_guid}/classifications/{classification_name}/update-effectivity"
|
|
484
|
+
await self._async_update_effectivity_dates_body_request(url, body)
|
|
485
|
+
|
|
486
|
+
@dynamic_catch
|
|
487
|
+
def update_classification_effectivity(self, metadata_element_guid: str, classification_name: str, body: Optional[dict | UpdateEffectivityDatesRequestBody] = None) -> None:
|
|
488
|
+
"""
|
|
489
|
+
Update the effectivity dates of a specific classification attached to a metadata element.
|
|
490
|
+
"""
|
|
491
|
+
return asyncio.run(self._async_update_classification_effectivity(metadata_element_guid, classification_name, body))
|
|
492
|
+
|
|
493
|
+
@dynamic_catch
|
|
494
|
+
async def _async_declassify_metadata_element(self, metadata_element_guid: str, classification_name: str, body: Optional[dict | MetadataSourceRequestBody] = None) -> None:
|
|
495
|
+
"""
|
|
496
|
+
Remove the named classification from a specific metadata element. Async version.
|
|
497
|
+
|
|
498
|
+
Parameters
|
|
499
|
+
----------
|
|
500
|
+
metadata_element_guid : str
|
|
501
|
+
Unique identifier of the metadata element.
|
|
502
|
+
classification_name : str
|
|
503
|
+
Name of the classification to remove.
|
|
504
|
+
body : dict | MetadataSourceRequestBody, optional
|
|
505
|
+
Declassification details.
|
|
506
|
+
|
|
507
|
+
Notes
|
|
508
|
+
-----
|
|
509
|
+
Sample JSON body:
|
|
510
|
+
{
|
|
511
|
+
"class" : "MetadataSourceRequestBody",
|
|
512
|
+
"externalSourceGUID" : "",
|
|
513
|
+
"externalSourceName" : "",
|
|
514
|
+
"forLineage" : false,
|
|
515
|
+
"forDuplicateProcessing" : false,
|
|
516
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
517
|
+
}
|
|
518
|
+
"""
|
|
519
|
+
url = f"{self.command_root}/metadata-elements/{metadata_element_guid}/classifications/{classification_name}/delete"
|
|
520
|
+
await self._async_metadata_source_body_request(url, body)
|
|
521
|
+
|
|
522
|
+
@dynamic_catch
|
|
523
|
+
def declassify_metadata_element(self, metadata_element_guid: str, classification_name: str, body: Optional[dict | MetadataSourceRequestBody] = None) -> None:
|
|
524
|
+
"""
|
|
525
|
+
Remove the named classification from a specific metadata element.
|
|
526
|
+
"""
|
|
527
|
+
return asyncio.run(self._async_declassify_metadata_element(metadata_element_guid, classification_name, body))
|
|
528
|
+
|
|
529
|
+
@dynamic_catch
|
|
530
|
+
async def _async_create_related_elements(self, body: Optional[dict | NewRelatedElementsRequestBody] = None) -> str:
|
|
531
|
+
"""
|
|
532
|
+
Create a relationship between two metadata elements. Async version.
|
|
533
|
+
|
|
534
|
+
Parameters
|
|
535
|
+
----------
|
|
536
|
+
body : dict | NewRelatedElementsRequestBody, optional
|
|
537
|
+
The details of the relationship to create.
|
|
538
|
+
|
|
539
|
+
Returns
|
|
540
|
+
-------
|
|
541
|
+
str
|
|
542
|
+
The unique identifier (GUID) of the newly created relationship.
|
|
543
|
+
|
|
544
|
+
Notes
|
|
545
|
+
-----
|
|
546
|
+
Sample JSON body:
|
|
547
|
+
{
|
|
548
|
+
"class" : "NewRelatedElementsRequestBody",
|
|
549
|
+
"externalSourceGUID" : "",
|
|
550
|
+
"externalSourceName" : "",
|
|
551
|
+
"forLineage" : false,
|
|
552
|
+
"forDuplicateProcessing" : false,
|
|
553
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
554
|
+
}
|
|
555
|
+
"""
|
|
556
|
+
url = f"{self.command_root}/related-elements"
|
|
557
|
+
return await self._async_create_related_elements_body_request(url, body)
|
|
558
|
+
|
|
559
|
+
@dynamic_catch
|
|
560
|
+
def create_related_elements(self, body: Optional[dict | NewRelatedElementsRequestBody] = None) -> str:
|
|
561
|
+
"""
|
|
562
|
+
Create a relationship between two metadata elements.
|
|
563
|
+
"""
|
|
564
|
+
return asyncio.run(self._async_create_related_elements(body))
|
|
565
|
+
|
|
566
|
+
@dynamic_catch
|
|
567
|
+
async def _async_update_related_elements_properties(self, relationship_guid: str, body: Optional[dict | UpdatePropertiesRequestBody] = None) -> None:
|
|
568
|
+
"""
|
|
569
|
+
Update the properties associated with a relationship. Async version.
|
|
570
|
+
|
|
571
|
+
Parameters
|
|
572
|
+
----------
|
|
573
|
+
relationship_guid : str
|
|
574
|
+
Unique identifier of the relationship.
|
|
575
|
+
body : dict | UpdatePropertiesRequestBody, optional
|
|
576
|
+
The updated properties.
|
|
577
|
+
|
|
578
|
+
Notes
|
|
579
|
+
-----
|
|
580
|
+
Sample JSON body:
|
|
581
|
+
{
|
|
582
|
+
"class" : "UpdatePropertiesRequestBody",
|
|
583
|
+
"externalSourceGUID" : "",
|
|
584
|
+
"externalSourceName" : "",
|
|
585
|
+
"forLineage" : false,
|
|
586
|
+
"forDuplicateProcessing" : false,
|
|
587
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
588
|
+
}
|
|
589
|
+
"""
|
|
590
|
+
url = f"{self.command_root}/related-elements/{relationship_guid}/update-properties"
|
|
591
|
+
await self._async_update_properties_body_request(url, body)
|
|
592
|
+
|
|
593
|
+
@dynamic_catch
|
|
594
|
+
def update_related_elements_properties(self, relationship_guid: str, body: Optional[dict | UpdatePropertiesRequestBody] = None) -> None:
|
|
595
|
+
"""
|
|
596
|
+
Update the properties associated with a relationship.
|
|
597
|
+
"""
|
|
598
|
+
return asyncio.run(self._async_update_related_elements_properties(relationship_guid, body))
|
|
599
|
+
|
|
600
|
+
@dynamic_catch
|
|
601
|
+
async def _async_update_related_elements_effectivity(self, relationship_guid: str, body: Optional[dict | UpdateEffectivityDatesRequestBody] = None) -> None:
|
|
602
|
+
"""
|
|
603
|
+
Update the effectivity dates of a specific relationship between metadata elements. Async version.
|
|
604
|
+
|
|
605
|
+
Parameters
|
|
606
|
+
----------
|
|
607
|
+
relationship_guid : str
|
|
608
|
+
Unique identifier of the relationship.
|
|
609
|
+
body : dict | UpdateEffectivityDatesRequestBody, optional
|
|
610
|
+
The new effectivity dates.
|
|
611
|
+
|
|
612
|
+
Notes
|
|
613
|
+
-----
|
|
614
|
+
Sample JSON body:
|
|
615
|
+
{
|
|
616
|
+
"class" : "UpdateEffectivityDatesRequestBody",
|
|
617
|
+
"externalSourceGUID" : "",
|
|
618
|
+
"externalSourceName" : "",
|
|
619
|
+
"effectiveFrom" : "2024-01-01T00:00:00.000+00:00",
|
|
620
|
+
"effectiveTo": "2024-12-31T23:59:59.000+00:00",
|
|
621
|
+
"forLineage" : false,
|
|
622
|
+
"forDuplicateProcessing" : false,
|
|
623
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
624
|
+
}
|
|
625
|
+
"""
|
|
626
|
+
url = f"{self.command_root}/related-elements/{relationship_guid}/update-effectivity"
|
|
627
|
+
await self._async_update_effectivity_dates_body_request(url, body)
|
|
628
|
+
|
|
629
|
+
@dynamic_catch
|
|
630
|
+
def update_related_elements_effectivity(self, relationship_guid: str, body: Optional[dict | UpdateEffectivityDatesRequestBody] = None) -> None:
|
|
631
|
+
"""
|
|
632
|
+
Update the effectivity dates of a specific relationship between metadata elements.
|
|
633
|
+
"""
|
|
634
|
+
return asyncio.run(self._async_update_related_elements_effectivity(relationship_guid, body))
|
|
635
|
+
|
|
636
|
+
@dynamic_catch
|
|
637
|
+
async def _async_delete_related_elements(self, relationship_guid: str, body: Optional[dict | OpenMetadataDeleteRequestBody] = None) -> None:
|
|
638
|
+
"""
|
|
639
|
+
Delete a relationship between two metadata elements. Async version.
|
|
640
|
+
|
|
641
|
+
Parameters
|
|
642
|
+
----------
|
|
643
|
+
relationship_guid : str
|
|
644
|
+
Unique identifier of the relationship to delete.
|
|
645
|
+
body : dict | OpenMetadataDeleteRequestBody, optional
|
|
646
|
+
Deletion details.
|
|
647
|
+
|
|
648
|
+
Notes
|
|
649
|
+
-----
|
|
650
|
+
Sample JSON body:
|
|
651
|
+
{
|
|
652
|
+
"class" : "OpenMetadataDeleteRequestBody",
|
|
653
|
+
"externalSourceGUID" : "",
|
|
654
|
+
"externalSourceName" : "",
|
|
655
|
+
"forLineage" : false,
|
|
656
|
+
"forDuplicateProcessing" : false,
|
|
657
|
+
"effectiveTime" : "2024-01-01T00:00:00.000+00:00"
|
|
658
|
+
}
|
|
659
|
+
"""
|
|
660
|
+
url = f"{self.command_root}/related-elements/{relationship_guid}/delete"
|
|
661
|
+
await self._async_open_metadata_delete_body_request(url, body)
|
|
662
|
+
|
|
663
|
+
@dynamic_catch
|
|
664
|
+
def delete_related_elements(self, relationship_guid: str, body: Optional[dict | OpenMetadataDeleteRequestBody] = None) -> None:
|
|
665
|
+
"""
|
|
666
|
+
Delete a relationship between two metadata elements.
|
|
667
|
+
"""
|
|
668
|
+
return asyncio.run(self._async_delete_related_elements(relationship_guid, body))
|